Eu trabalho em uma pequena equipe de desenvolvimento e nossa infraestrutura atual é configurada com GitHub para código, CircleCI para implantá-los em nossos droplets DigitalOcean Ubuntu sempre que algo é mesclado no branch de desenvolvimento (vai para o servidor de desenvolvimento) e no branch master (vai para o servidor Prod ).
Está se tornando muito demorado criar 2 novos servidores por produto o tempo todo e configurá-los em servidores web. Já transferi bancos de dados para o cluster de banco de dados gerenciado para economizar tempo. Existe uma maneira mais eficiente de fazer isso em vez de ter que criar um novo droplet, instalar tudo e configurar tudo e fazer atualizações e resolver SSH e permissões e etc.
Agora tenho cerca de 8 droplets (mais produtos em nuvem a caminho!) e simplesmente não tenho tempo para continuar visitando todos esses droplets para resolver, adicionar ou atualizar algo.
Estou principalmente procurando ser apontado na direção certa para que eu possa pesquisar mais e ler sobre. Parece que é possível automatizar a maior parte disso, mas não sei como proceder, pois há muitas informações confusas e conflitantes sobre quais serviços usar.
Responder1
As palavras-chave que você procura são infrastructure as code
e configuration management
.
Use uma infrastructure as code
ferramenta comoTerraformapara implantar recursos no Digital Ocean, use uma configuration management
ferramenta comoAnsiblepara configurar suas VMs (configurar aplicativo, acesso ssh, etc.). Dependendo da complexidade da configuração também pode ser uma opção ignorar o gerenciamento de configuração e usar instantâneosfeito à mãoou com a ajuda de uma ferramenta comoEmpacotador.