You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Em cima da thread no bluesky, vou transcrever aqui o que entendi e nos comentários ir adicionando algumas possibilidades que vejo pra gente definir o melhor caminho dessas implementações. Fique a vontade para editar, comentar, fechar a issue se achar necessário ;)
Cenário
Hoje a API web da Minha Receita é executada em:
Banco de dados: uma VM com 8 CPU / 16 Gb / 512 GB SSD (ao custo de $ 13-15 USD/mês)
Instâncias menores na Fly.io para o servidor HTTP (custo variável 2-8 USD/mês)
Serviço de armazenamento compatível com S3 para manter o espelho dos dados
A VM do banco de dados precisa ser acessada todo mês para criar o banco de dados atualizados (~150GB), depoisé necessário apontar a aplicação para o novo e depois de tudo certo apagar o antigo (ficando nesse meio tempo com 2 banco de dados ativos, ~300GB).
A aplicação atende em torno de 30req/s (100MM req/mo) em sua API REST.
Desejado
Automatizar o processo de atualização de dados, incluindo:
a criação de um banco de dados novo
ajuste de configuração na app
validação e exclusão do banco antigo
subir os arquivos novos para o armazenamento responsável pelo espelho de dados
Reduzir o custo mensal (como consequência da redução do requisito de hardware - hoje o principal gargalo são os 300GB de disco necessário durante a atualização do banco)
Não incluir complexidade desnecessária (ex: implementar k8s só porquê sim)
Possíveis caminhos
Utilizar o próprio Github Actions para disparar e executar a atualização de dados, removendo a necessidade de conectar diretamente no servidor
Implementar a automação do processo com Bash ou Ansible, evitando a adição de muitas dependências novas
The text was updated successfully, but these errors were encountered:
Muito obrigada, @CauanCabral — eu editei só para separar um pouco o que ee banco de dados, o que é o servidor web, e aproveitei para adicionar o espelho de dados.
Agora comentando sobre os possíveis caminhos: dado que o projeto é em Go, uma solução usando algo como Pulumi seria viável? Digo isso pois, pessoalmente, acho Bash e GitHub Actions muito difícil de manter, e não queria só escolher Ansible por eliminação hehehe…
Olá!
Em cima da thread no bluesky, vou transcrever aqui o que entendi e nos comentários ir adicionando algumas possibilidades que vejo pra gente definir o melhor caminho dessas implementações. Fique a vontade para editar, comentar, fechar a issue se achar necessário ;)
Cenário
Hoje a API web da Minha Receita é executada em:
8 CPU / 16 Gb / 512 GB SSD
(ao custo de $ 13-15 USD/mês)A VM do banco de dados precisa ser acessada todo mês para criar o banco de dados atualizados (~150GB), depoisé necessário apontar a aplicação para o novo e depois de tudo certo apagar o antigo (ficando nesse meio tempo com 2 banco de dados ativos, ~300GB).
A aplicação atende em torno de 30req/s (100MM req/mo) em sua API REST.
Desejado
Possíveis caminhos
The text was updated successfully, but these errors were encountered: