Article image
Inactive User
Inactive User13/10/2022 17:46
Compartilhe

O Heroku gratuito está perto do fim. E agora? Conheça o Render

  • #JavaScript
  • #Python
  • #Java

O Heroku deixará de oferecer um serviço de hospedagem de aplicações web gratuito no final de novembro, que deixou a comunidade dev bem triste. Mas... existem outras alternativas no mercado que podemo utilizar.

Vou falar aqui de uma bem simples, a Render. Da mesma forma que o Heroku, ele possui uma versão gratuita que permite ao usuário utilizar até 512 MB.

Para utilizar o serviço, basta se cadastrar no site - e pode usar sua conta do google, do github... Opte pela versão "free" e seja feliz para expor seu portfolio e projetos pessoais para o mundo.

Deploy de API Python (FastAPI)

Para este exemplo, vou usar uma API feita em Python, FastAPI e MongoDB, que tem como servidor o Uvicorn. Mas você pode usar o que quiser, na real.

No "Dashboard" (Painel de Controle), clique em "New" para criar seu projeto. Escolha o tipo da sua aplicação. No meu caso, é um Web Service, mesmo, mas há diversas opções disponíveis, veja só:

image

A seguir, conecte o repositório do seu projeto que está lá no Github. Você pode só colocar o link dele, caso seja um repo público, ou clicar no menu direito para se conectar à sua conta do Github, o que lhe permitirá escolher com qual projeto trabalhar. Note que há suporte também para o Gitlab ;)

image

Após a escolha do repositório, você vai precisar ajustar algumas configurações básicas (e é bem simples, mesmo, viu).

Um diferencial muito bacana é que você pode escolher o nome do seu site na url. Então, não precisa hospedar sua aplicação num site esdrúxulo, como http://jhdyeiwiwj63567.provedor.com, como oferecem outros provedores gratuitos.

image

As configurações a fazer são bem básicas. A maioria já vem por padrão, mas você pode alterar se necessário, como escolher uma outra branch, que não a main, como base do projeto, qual a sua pasta raiz etc.

Feito isso, no "Build Comand" informe o comando que executa aquele seu arquivo de instalação de bibliotecas e dependências (Aqui, no Python, estou usando o clássico requirements.txt), mas cada stack tem o seu.

Outro ponto importante: o "Start Command". Neste quesito você colocará, por exemplo, o comando para rodar o servidor da aplicação. No meu caso, estou usando o uvicorn. E, aqui, um adento. O render escolherá a porta para você, então use a tag --host 0.0.0.0 neste caso. Em outras palavras, não seja específico, não digite a porta.

image

Veja o exemplo (a minha app estava na pasta main):

uvicorn main:app --host 0.0.0.0 --reload


Agora, escolha o plano gratuito, claro:

image

Importante: As variáveis de ambiente. Para informá-las, clique no botão "Advanced". Você pode criar um arquivo "secreto", de acesso restrito do Render, com as suas variáveis de ambiente, como o ".env". Mas você pode simplesmente adicioná-las uma a uma, informando chave e valor, diretamente. Depende de como for melhor para você.

image

Aí basta clicar em "Create Web Service" e esperar ele fazer o build e o deploy para você <3

image

Não vou mentir, esse processo de deploy leva uns bons minutos... Mas, de graça, né mores, tudo bem ;)

Blueprints, o Procfile do Render

Assim como no Heroku, você pode criar um arquivo de configuração da infraestrutura do seu aplicativo, caso você esteja subindo apps mais complexas, com docker e afins. Basta nomear o arquivo como "render.yaml" e passar todas as informações. Neste link você pode obter mais detalhes de como estruturar esse arquivo: https://render.com/docs/blueprint-spec

Compartilhe
Comentários (3)
Diego Morais
Diego Morais - 13/10/2022 18:33

show de bola hein,parabéns pelo artigo.

Tawara Martins
Tawara Martins - 14/10/2022 14:59

Obrigada, Ana!

Tennison Capra
Tennison Capra - 13/10/2022 19:11

Muito bem! Obrigado por compartilhar!