Problemas de integração no Heroku, e agora?
Recentemente precisei dar deploy em uma aplicação POC [Proof of Concept/Prova de conceito] e sempre que o assunto era publicar sites de baixo fluxo e open-source eu costumava recorrer a ferramenta Heroku, porém um problema de segurança recente fez com que eu buscasse algumas outras alternativas.
O que aconteceu?
Não sei se ouviram falar ou tiveram algum problema com o Heroku e sua integração com o GitHub recentemente, mas diversos usuários têm relatado nos últimos meses problemas dessa integração onde tem sido apresentada a mensagem Internal Server Error
ao tentar sincronizar esses repositórios.
Resumidamente o que houve foi uma falha de segurança identificada no dia 13 de Abril de 2022 que envolve o Heroku, o Sales Force e o GitHub, onde foi detectado um download ilegal de subsets em repositórios privados armazenados no Heroku através do GitHub devido a problemas com o token OAuth, mais detalhes do que ocorreu você pode verificar nessa página de status do heroku. (Só lembrando que os updates estão em ordem crescente, então o primeiro relato se encontra ao fim da página)
Tenho um repositório que precisa dessa integração, o que devo fazer?
Bom, como disse anteriormente eu precisava fazer um deploy e quando o destemido Internal Server Error
apareceu em um pop-up eu comecei a me questionar a queda da plataforma e acabei descobrindo esse problema com a plataforma.
Saber do problema real fez com que eu ficasse com medo, não do meu projeto ser explorado por hackers (ele é open-source, então se eles quisessem colaborar ajustando a segurança do projeto eu até ficaria feliz), mas sim dessa questão do meu token do GitHub ser vazado de alguma forma, e então eu fui atrás de algumas soluções:
Heroku CLI
Alguns usuários preferiram continuar usando a plataforma do Heroku por ser robusta, popular e ter planos gratuitos, mas pra isso tiveram que fazer algumas adaptações no seu projeto para ter acesso remoto ao repositório direto do Heroku.
Para ter o passo-a-passo basta ir para este post do Stack Overflow onde é detalhada essa sincronização.
Alternativas ao Heroku
Como eu disse, fiquei um pouco apreensivo com a plataforma e como estava fazendo um projeto novo resolvi ir atrás de alguma solução parecida ao Heroku que me ajudasse a fazer um deploy sem necessitar tanto de um DevOps, encontrei diversas dessas através do site Alternative To mas resolvi trazer algumas plataformas que se destacaram aos meus olhos para ajudar na pesquisa. (Os links das plataformas estão nos títulos das mesmas)
Vercel
Acredito que provavelmente já tenham escutado falar da nossa queridinha Vercel, a criadora e mantenedora do Next JS e a famosa plataforma do "click to deploy", os planos gratuitos da Vercel definitivamente são muito bons e a forma de CD(Continuous Deploy) é muito interessante, mas para mim não iria funcionar pois meu objetivo era utilizar WebSocket e existem alguns probleminhas quanto a metodologia serverless utilizada pela Vercel e a utilização de WebSocket.
Render
Essa plataforma foi uma surpresa, nunca tinha ouvido falar dela antes e ela tinha diversos favoritos no site Alternative To (80 "curtidas"), e para meu caso caiu como uma luva, essa plataforma possui alguns planos gratuitos bem simples, mas que pro meu projeto eram perfeitos. A ferramenta possui uma forma de deploy utilizando um Dockerfile da aplicação em questão, uma documentação instruindo como hospedar determinadas stacks e uma dashboard muito detalhada trazendo logs e até conexões SSH. Além de tudo ela não exige o cadastro do cartão de crédito para planos gratuitos melhores como o Heroku, que era algo que eu não gostava muito. Uma desvantagem é que achei os preços um pouco salgados caso queira melhorar os servidores das suas aplicações, mas pode ser por conta de estar por fora dessas precificações do mercado a algum tempo
Cloudify
Essa foi uma ferramenta que chamou muito minha atenção por possuir alguns projetos open-source mas não tive oportunidade de explorar muito esse serviço.
Planos gratuitos da GCP/AWS/Azure
Essas plataformas possuem ótimos planos gratuitos, porém algumas coisas não me agradaram muito, o meu objetivo com o Heroku era o deploy simplificado que ele oferecia e essas ferramentas geralmente possuem um processo um tanto quanto complexo e por conta disso acaba até precisando de um especialista em DevOps muitas vezes o que fez com que eu não fosse muito atrás delas.
Conclusão
A plataforma Heroku sempre foi ótima e problemas de segurança constumam surgir em grandes empresas, o que me fez preocupar quanto a isso foi o tempo que está perdurando esse problema, até agora não foi publicada nenhuma solução pra integração e isso me gerou certa preocupação, mas acabou sendo uma ótima oportunidade de explorar novas plataformas e entender melhor como anda esse mercado de serviços de hospedagem.
E vocês, já utilizavam o Heroku ou alguma das ferramentas que listei? Essa falha de segurança gerou alguma preocupação em vocês? Tem alguma outra ferramenta que goste bastante?
Espero que possa ter ajudado vocês de alguma forma :D Valeu!