Guia Rápido: Como Fazer Deploy de uma API Python na Cloud Usando Containers

Guia Rápido: Como Fazer Deploy de uma API Python na Cloud Usando Containers

Está aprendendo a programar e gostaria e publicar sua primeira aplicação? Neste post faremos o deploy de uma API python em cloud de maneira simples e rápida utilizando containers!

 

Criar conta na cloud

O primeiro passo é criar uma conta em uma cloud, uma plataforma que oferece entre outros recursos a possibilidade de hospedarmos uma máquina virtual ou toda uma infraestrutura.
Neste post estaremos utilizando a cloud da google, Google Cloud Plataform (GCP).

Para acessar o console da GCP, basta seguir para: https://console.cloud.google.com/

Será necessário criar uma conta caso ainda não possua uma, informando seus dados para o cadastro. Após o cadastro e acesso à cloud, teremos esta página inicial:

Criar e Acessar VM na cloud

Em seguida precisaremos criar uma máquina virtual na cloud, começamos clicando em “Compute Engine” na página inicial.
Será necessário habilitar a opção de cobranças na conta em questão, clicando em “Enable”:

Lembre-se de desabilitar esta opção antes que seu periodo de testes acabe ou poderá receber cobranças indesejadas.

Em seguida, ao acessar o “Compute Engine” novamente teremos a seguinte tela contendo todas as máquinas virtuais que possuimos atualmente; Clicaremos na opção “Create Instance” no topo para criar nossa máquina:

Na página seguinte estaremos configurando nossa máquina virtual, segue nas imagens abaixo um exemplo de configuração para uma máquina simples que hospedará nossa aplicação:

Após configurar a máquina clique em “Create” para criá-la, e volte para a lista de máquinas em “Compute Engine”.

Note que há uma máquina na lista de instancias, a máquina que acabou de ser criada, selecione-a e clique em “SSH” para se conectar a ela em uma nova janela que se abrirá:

Instalar o Docker na VM

 

Uma vez dentro da máquina virtual, faremos a instalação do Docker, o que nos possibilitará o uso de containers nessa instancia, rodando os comandos:

– sudo -i
– curl -fsSL https://get.docker.com -o get-docker.sh
– sudo sh ./get-docker.sh

 

Criar app.py e Dockerfile

 

Após a instalação do Docker, criaremos nossa aplicação, neste post estaremos utilizando uma aplicação simples em Python, apenas para testar o funcionamento.

Crie um arquivo de texto com seu editor de texto de preferencia e escreva sua aplicação:

– vim app.py

Segue um exemplo de API em python usando Flask:

Além da aplicação, também precisaremos de um arquivo “Dockerfile” que será utilizado pelo Docker:

– vim Dockerfile

 

Segue também um exemplo de Dockerfile que criará uma imagem para nossa API:

Criar a imagem e rodar o container

 

Com ambos os arquivos prontos, podemos criar uma imagem de container usando o Docker e o Dockerfile que criamos, e criar um container usando tal imagem:

– docker build -t python-app .
– docker run -dit -p 5000:5000 python-app

 

Para checar se o container está em execução, podemos rodar o comando:

– docker container ls

Liberar a porta nos firewalls

 

Por ultimo, antes de testarmos a conexão a nossa aplicação, precisamos liberar o acesso a porta que nossa aplicação usa (5000) no firewall da GCP:

Primeiramente acessamos a página do “Compute Engine”, e clicamos no nome da nossa aplicação, no exemplo abaixo seria “python”:

Na página da instancia, clicaremos no nome da subnetwork usada pela instancia, no exemplo abaixo seria “default”:

Na página da subnet, clicaremos na aba “Firewall” no menu à esquerda:

E na aba do Firewall, clicaremos em “Create Firewall Rule” no topo da página, para criarmos uma nova regra no firewall que permite o acesso a nossa aplicação:

Iremos configurar a regra da seguinte maneira:

Com a configuração acima, estamos liberando o acesso à nossa máquina virtual de qualquer IP, através da porta tcp 5000.

E com isso finalizamos todos os passos necessários, temos agora uma aplicação rodando em um container em uma máquina virtual em cloud, que pode ser acessada de qualquer lugar! Para fazer este acesso, tudo o que precisamos saber é o IP da instancia e a porta da aplicação, sabemos que nossa aplicação usa a porta 5000, e podemos checar o IP da nossa máquina na página da instancia, sob “Network Interfaces” no campo “External IP address”:

Com ambas as informações em mãos, podemos abrir uma nova aba em qualquer navegador de qualquer disponsitivo e acessar nossa aplicação em cloud digitando o IP:porta, desta maneira:

E aí está, temos a resposta da nossa aplicação de teste!

Ficou interessado? Quer aprender mais? Dê uma olhada em nosso curso de Python para API e DevOps:

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

 

Anterior Guia para atualizar o AWS Load Balancer Controller após migração do Kubernetes 1.21 para 1.22
Próxima Como implementar a funcionalidade de autocompletar com Elasticsearch

About author

Você pode gostar também

Cloud

Como modificar recursos existentes com Terraform na Google Cloud

Vimos no post anterior uma introdução ao Terraform e como criar de forma prática e simples uma máquina virtual na cloud da Google – GCP, porém não vimos como realizar

DevOps

Como fazer deploy de uma aplicação Go no Google Cloud Run com Github Actions

Eai galera! Nesse post, o objetivo é mostrar que nem sempre é preciso um Kubernetes ou Jenkins para colocar as suas aplicações no ar. Vamos criar uma Instância no Cloud

DevOps

Descubra como o Skaffold pode otimizar seu trabalho com Kubernetes

Olá pessoal! A ideia para este post surgiu quando me deparei com o problema, que todos que trabalham ou vão trabalhar com Kubernetes enfrentam: a necessidade de a cada simples