E aí pessoal! A comunidade de desenvolvedores tem falado muito sobre a heroku nas últimas semanas. Ela é uma plataforma usada principalmente para fazer deploy de aplicações backend e muitos a consideram uma ótima opção para deploy de APIs gratuitamente. Embora ainda seja uma ótima opção para deploys, muitos desenvolvedores estão buscando novas plataformas gratuitas para fazer deploy. Neste artigo, vou falar um pouco sobre deploys no backend, destacar pontos importantes e sugerir algumas plataformas gratuitas para fazer deploy no backend.
Pontos para observar em deploy para backend
Se você já fez deploy de alguma aplicação, seja para testes ou produção, deve ter percebido que fazer deploy de aplicações frontend é geralmente mais fácil do que de aplicações backend. Existem várias razões para isso, mas acredito que algumas sejam mais importantes. Em primeiro lugar, o servidor onde você hospeda sua aplicação backend precisa ser capaz de processar uma certa quantidades de dados, pois essas aplicações geralmente consomem mais dados e processamento do que as aplicações frontend. Além disso, a segurança do servidor é crucial, especialmente porque o banco de dados pode estar hospedado no mesmo servidor (mesmo que em clusters ou containers diferentes). Isso evita vazamento de dados entre as requisições. Por fim, a hospedagem da aplicação é importante, pois muitas vezes é pensada apenas para o Brasil, mas, se um cliente tentar acessar a sua aplicação dos Estados Unidos? O que pode resultar em tempos de resposta longos ou até mesmo a falta de resposta para usuários de outros países que tentam acessar a aplicação.
Existe forma de deploy perfeita?
Na maioria das vezes não. Em muitos casos é preferível fazer deploy “separado” para cada ponto da aplicação. Por exemplo, a hospedagem é realizada pela “vercel” para o frontend, enquanto o backend é hospedado pela heroku, por exemplo. Algumas soluções para o deploy de aplicações backend que mostro aqui, embora o foco seja em aplicações backend, algumas podem ser utilizadas para fazer deploy não só de backend, mas também de front, banco de dados, entre outras coisas.
Railway
Essa é uma plataforma de deploy bastante interessante. A mesma oferece um tipo de “pagamento por uso”, onde eles calculam quanto de processamento você usou e quanto tempo você passou com determinada aplicação rodando. Com isso, eles fazem um calculo, em dolar, e o cliente só precisa pagar aquilo que ele usou. Todas as contas veem com 5 dolares “por conta da casa”. Então, se caso sua aplicação atinga o processamento de até 5 dolares, você não precisa pagar pela hospedagem da aplicação. Há mais também um limite de 500 horas gratuitas para hospedagem. Em outras palavras, se caso sua aplicação atinga o consumo equivalente a 5 dolares, ou passo até 500 horas executando, você terá que pagar o consumo excedendo eles. Além desses pontos, o principal fator, na minha opinião, que tornam essa plataforma bastante interessenta é a vercatilidade dela. A Railway oferece uma serie de alternativas para deploy, incluindo repositorio vinculados ao github (configurando “automaticamente” o CI/CD da aplicação), como também, uma lista até extensa de banco de dados:
Para acessar essa plataforma, basta entrar no link: https://railway.app.
Render
Apesar de o Render oferecer um pouco “menos” serviços do que o Railway, ele também é uma ótima opção se levar em conta a praticidade. O mesmo também permite fazer deploy de aplicações direto do github, com ele identificando atualizações, e ainda, permite fazer deploy serviços ou scripts específicos no qual você quer deixar executando em alguma aplicação, ou servidor, por exemplo. Além disso, ele também oferece deploy direto de um container docker:
E você vem do heroku, ele oferece um serviço bem interessante, onde o mesmo faz uma “comparação” entre as duas plataformas, não só de preço como também de hospedagem:
Fly.io
Uma das principais coisas que faz o fly ter destaque, na minha visão, é o fato dele ter sua própria CLI. Através dela, você consegue fazer login para sua conta, mandar um deploy direto pelo terminal, escolher a região no qual você vai hospedar, dentre outras coisas:
Um outro ponto que acredito que ele se destaca é o fato dele ter servidores físicos hospedados em vários países pelo mundo. Se caso você queira que sua aplicação seja hospedada não só para clientes do Brasil, mas também para dos Estados Unidos, por exemplo, ele vai permitir graças a hospedagem desses servidores:
Por fim ele também possui uma tecnologia chamada “LiteFS – Distributed SQLite”. A mesma permite que um banco sqlite sejá replicado em vários clusters, podendo assim, executar um banco SQLite em produção. Obviamente que esse não é um banco pensado para produção, e apesar de ser uma feature em beta, acredito que ela seja bem interessante:
Conclusão
Com isso vale frisar alguns pontos. Não só as apresentadas aqui, como varias outras plataformas, são excelentes alternativas para hospedagem de aplicações backend. É difícil apenas uma suprir todas as necessidades da aplicação, ou até, apenas uma ter as configurações ideais entre preço e execução. Se você quer hospedar sua aplicação de graça para testes ou afins, todas essas são excelentes opções, porém, vale considerar que se caso você queira realmente deixar sua aplicação em produção para vários clientes, é de se considerar pagar pelos serviços dessas plataformas, ou outras do seu interesse.