DadosAbertosDeFeira / maria-quiteria

Backend para coleta e disponibilização dos dados 📜
https://mq.dadosabertosdefeira.com.br/painel
MIT License
166 stars 69 forks source link

Migrar do Heroku para a Absam #134

Closed anapaulagomes closed 3 years ago

anapaulagomes commented 4 years ago

A Absam (http://absam.io) está apoiando o nosso projeto! 🎉😍 Nessa issue vamos fazer um levantamento dos serviços que precisamos configurar, questões em aberto e como fazer a migração.

O que temos na infraestrutura atual e vamos precisar na próxima:

A Absam ainda não tem suporte para deploys automatizados usando webhooks. Geralmente as pessoas clonam o repositório, com uma chave ssh com permissão leitura no servidor. Assim é possível fazer o pull da branch sem alterar o código diretamente. Essa instrução veio do suporte da Absam.

Uma boa ideia pode ser usar algo como o webhook combinado com Github webhooks + Github Actions.

Funcionalidades da Absam que podem ser interessantes:

Arquitetura proposta

À definir.

gomex commented 4 years ago

MInhas sugestões e perguntas:

gomex commented 4 years ago

Outra pergunta, esse servidor que hospedaremos o serviço, é apenas uma máquina, correto?

gomex commented 4 years ago

Sobre isso "API (apenas para checar o status dos servidores e ligar/desligar/reiniciar)" a minha sugestão é que a API tenha uma rota em seu código que retorne apenas HTTP code 200, pois usaremos isso como healthcheck.

anapaulagomes commented 4 years ago

Banco de dados: Postgres 11 (Cloud Database): A ideia seria usar um RDS? Não entendi aqui; Cloud Database é a nomenclatura da Absam. Eles oferecem o Postgres como serviço mesmo.

Broker: RabbitMQ: Essa máquina será gerida por esse projeto tb? Caso positivo, precisamos pensar na automação dela tb;

Isso. Teríamos que ver se colocamos numa máquina separada etc

Deploy automático: Isso é tranquilo via github actions, precisamos apenas pensar no que validar antes de mandar automaticamente para produção. Podemos usar deploy baseado em branch para começar e depois evoluir para usar master apenas ;)

Boa. Se os testes e os checks de migrations estiverem passando, tudo certo. Geralmente precisamos fazer coisas como atualizar as dependências e rodar as migrações no banco.

Outra pergunta, esse servidor que hospedaremos o serviço, é apenas uma máquina, correto?

Temos 500 reais de crédito pra usar. Podemos aplicar em máquinas diferentes (https://absam.io/cloud-server/planos-e-precos).

Sobre isso "API (apenas para checar o status dos servidores e ligar/desligar/reiniciar)" a minha sugestão é que a API tenha uma rota em seu código que retorne apenas HTTP code 200, pois usaremos isso como healthcheck.

Acho que o endpoint de status já serve.

@gomex, se quiser já dar uma olhada me manda teu email no telegram que eu te adiciono na nossa conta aí você pode dar uma olhadinha. O suporte deles é bem bom também, então dá pra tirar as dúvidas pelo chat.

gomex commented 4 years ago

Os próximos passos para se discutir e decidir são:

anapaulagomes commented 3 years ago

Checklist para migração:

anapaulagomes commented 3 years ago

Migração realizada com sucesso pelo time de infra liderado por @gomex! Parabéns pelo excelente trabalho! 🎉🏆👏🏽