Nesse projeto foi realizada a construção de uma página estática feita com HTML, CSS e JS que roda dentro de um contêiner docker através de um web-server NGINX.

O contêiner então tem sua imagem enviada para um repositório ECR através de uma Pipeline CI/CD feita com o Github Actions, e por fim é associado a um Cluster da ECS através de um arquivo com suas definições de tarefa.

O objetivo desse projeto é de rodar uma aplicação serverless na nuvem AWS podendo ser acessada por qualquer usuário através de um endereço de IP público.

O que é o Docker?

O Docker é um projeto de…


The original vision of cloud computing was automated, on-demand services that scaled dynamically to meet demand.

While this vision is now a reality, it doesn’t happen on its own. Cloud automation is complex and requires specialized tools, expertise, and hard work.

In this post, we continue our exploration further.

The plan is to build a container and push it to a container registry, all from within Bitbucket Pipelines.

What are Bitbucket Pipelines?

What Is a CI/CD Pipeline Anyway?

A DevOps pipeline can be defined as the setup for a software project which delivers continuous integration (CI), continuous deployment and eventually continuous delivery (CD).

The idea behind creating a pipeline is to be able to create a repeatable, reliable system and be able to continuously improve the proccess of software development and delivery from the concept stage to the customer.

This is done by enabling a constant flow of changes into production and using an automated proccess through various tools.

A typical pipeline proccess done during a software development life-cycle.

The first steps of the proccess consist of getting the code to work properly.

Where it all begins?

Supposing I have a simple goal of running a container with Ubuntu and Java inside.

There are two possible outcomes to solve this problem.

  1. Writing a Dockerfile with the necessary instructions and creating a container from it.
  2. Using docker run so it runs the given container for us.

But, what does the command docker run do? It downloads an image from Docker Hub. And how was that image generated?

That’s right, with a Dockerfile made by someone else.

What is the Dockerfile?

The dockerfile is nothing more than a means to creating our own images.

Docker can build images automatically by reading the instructions…


In 2006, Amazon Web Services (AWS) began offering IT infrastructure services to businesses as a cloud computing pioneer.

One of the key benefits of cloud computing is the opportunity to replace upfront capital infrastructure expenses with low variable costs that scale with your business.

With the cloud, businesses no longer need to plan for and procure servers and other IT infrastructure weeks or months in advance.

Instead, they can instantly spin up hundreds or thousands of servers in minutes and deliver results faster.

What Is Cloud Computing?

Cloud computing is the on-demand delivery of compute power, database, storage, applications, and other IT resources through…


O ideal da educação não é aprender ao máximo, maximizar os resultados, mas é antes de tudo aprender a aprender, é aprender a se desenvolver e aprender a continuar a se desenvolver depois da escola.

Jean Piaget

Recentemente tive a oportunidade de completar o curso “Aprendendo a Aprender” e decidi escrever esse resumo para assimilar melhor os conceitos ensinados durante suas quatro semanas de duração.

Os ensinamentos desse curso servem para todos aqueles interessados na psicologia por trás do aprendizado e também para os que desejam se beneficiar sendo mais produtivos no trabalho, estudo ou em qualquer área da vida…

What is Websocket?

WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection.

WebSocket is distinct from HTTP. The protocol enables interaction between a web browser (or other client application) and a web server with lower overhead than half-duplex alternatives such as HTTP polling, facilitating real-time data transfer from and to the server.

Once a websocket connection is established between a client and a server, both can exchange information until the connection is closed by any of the parties.

This is the main reasion which websocket is preferred over the HTTP protocol when building a chat-like communication service…


In software development, testing each part of a program is crucial to assert that all individual parts are correct.

In the previous article we covered some testing strategies, which you can check it here.

A unit is the smallest testable part of the software and in object-oriented programming it’s also called a method, which may belong to a super class, abstract class or a child class. Either way, unit tests are an important step in the development phase of an application.

Here are some key reasons to not skip the proccess of creating unit tests :

  • They help to fix…


In a previous article, which you can check here, we started the development of a simple users API using Spring boot. We recommend it to be read before continuing with this article.

Spring Boot is a powerful tool when creating a RESTful web service and Swagger is a powerful tool when documenting a RESTful web service, which can also be used for quick testing the API.

When building a back-end API layer, it’s necessary to also think about the users that’ll be interacting with the API, thus the point of documentation.

A good documentation should have a informative structure and…


This guide aims to help you create from scratch a CRUD RESTful API with Spring Boot. We’ll create an User entity and develop its endpoints accordingly with a Rest Controller and a Service class.

To learn more about HTTP methods click here , and RESTful APIs, click here.

Later on we’ll be using this project as a base and evolve it, adding new functionalities.

We’ll cover the following topics in this tutorial :

  • Building our User class with its own repository and particular attributes.
  • Creating CRUD (Create, Read, Update, Delete) endpoints for our User class with a respective Controller and…

Gabriel Pulga

Engineering student and software enthusiast. Check out my github profile at @gabrielpulga.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store