Closed anapaulagomes closed 3 years ago
MInhas sugestões e perguntas:
Outra pergunta, esse servidor que hospedaremos o serviço, é apenas uma máquina, correto?
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.
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.
Os próximos passos para se discutir e decidir são:
Checklist para migração:
Migração realizada com sucesso pelo time de infra liderado por @gomex! Parabéns pelo excelente trabalho! 🎉🏆👏🏽
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:
[x] Python 3.8 (Docker ✔️)
[x] Java (JRE) 8 ou maior para o Apache Tika (Docker ✔️)
[x] Banco de dados: Postgres 11 (disponível via Cloud Database mas estamos rodando com 12.4 no Heroku e Docker)
[x] Broker: RabbitMQ (Docker ✔️)
[x]
Deploy automático depois que os testes estão passandoNão tem. Temos que implementar essa integração (ver mais abaixo).[x] Gerenciamento de logs
(Bem simples mas temos sempre a flexibilidade de rodar um serviço de logs ou ter uma maneira de fazer o download deles.logentries
)[x] Scheduler. Podemos usar um
crontab
mesmo (já que a máquina é Linux).[x] Backups. É possível fazer backups da máquina. O Postgres tem suporte ao pgadmin, por isso imagino que seja possível fazer backup de lá também (a confirmar).
Deploys
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.