O que é o Render?
Render é uma plataforma de nuvem que simplifica o processo de implantação e gerenciamento de aplicações. Ele oferece uma ampla gama de serviços, como:
Hospedagem de Aplicações Web: Permite implantar aplicações web em diversas linguagens, como Python, Node.js, Ruby, entre outras, com facilidade.
Deploy Automático: Render integra-se facilmente com repositórios do GitHub e GitLab, permitindo que você faça deploy automaticamente toda vez que houver um push para a branch principal.
Escalabilidade: A plataforma é projetada para escalar automaticamente suas aplicações, oferecendo planos de pagamento que variam de gratuito a soluções pagas, dependendo das necessidades do projeto.
Suporte a Servidores e Contêineres: Render suporta a execução de aplicações em contêineres Docker e também permite a criação de servidores dedicados.
Simplicidade e Facilidade de Uso: Com uma interface amigável e recursos de configuração simples, o Render torna o processo de implantação acessível para desenvolvedores de todos os níveis de experiência.
Em resumo, o Render é uma ótima escolha para desenvolvedores que buscam uma solução simples e eficaz para hospedar suas aplicações na nuvem, sem se preocupar com a complexidade da infraestrutura.
Outro ponto importante do Render, podemos usar para estudo sem gerar custo. =]
Antes de mais nada, você precisar criar sua conta no site do Render - https://render.com/
Depois de ter sua conta criada, vamos ao passo-a-passo.
Criando o Web Service no Render:
Alteração no app.py
Primeiramente, precisamos adicionar a configuração abaixo no app.py para que seja possível subir IP e Porta no Deploy do Render:
if __name__ == '__main__':
app.run(host='0.0.0.0', port=10000)
Ele ficará quase no final do arquivo:
Criar o arquivo de dependência
Dentro da pasta onde está nosso projeto, vamos criar o arquivo requeriments.txt com as dependências abaixo:
Flask==2.0.2
Werkzeug==2.0.3
Depois, vamos criar o path onde irá residir o arquivo do workflow:
mkdir -p .github/workflows
Lembre-se que aqui, ainda estamos dentro da pasta do projeto.
Vamos entrar dentro deste novo diretório:
cd .github/workflows
Criar o arquivo de deploy.yml e adicionar o seguinte conteúdo:
vi deploy.yml
name: Deploy to Render
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8' # ou a versão que você estiver usando
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Deploy to Render
env:
RENDER_API_KEY: ${{ secrets.RENDER_API_KEY }}
run: |
curl -X POST https://api.render.com/deploy/srv-xxxxxxxx # substitua 'srv-xxxxxxxx' pelo ID do seu serviço
** Essa informação da URL e ID do serviço, você encontra no site do Render - Dentro da estrutura do seu Web Service - Settings - Deploy hook.
Altere para o valor correspondente do seu seriço e salve o arquivo.
Fazendo o push das alterações
Depois de criar o requirements.txt,
workflow e alterar o app.py, adicione e faça o commit dessas alterações:
git add requirements.txt .github/workflows/deploy.yml app.py
git commit -m "Add requirements GitHub Actions workflow and app.py update"
git push origin main
curl -X POST https://task-api-5rkl.onrender.com/api/tasks -H "Content-Type: application/json" -d '{"title": "Tarefa 1", "completed": false}'
- Criação de uma aplicação com API exposta para gerenciamento de tarefas;
- Utilizar um repositório com versionamento de código;
- Automação do processo de Deploy e Publicação da aplicação;