Sou um desenvolvedor, não tão experiente quanto gostaria de estar com a administração do servidor. Essencialmente, estou tentando descobrir como criar uma imagem de base (AMI) que possa ser usada no desenvolvimento, teste, preparação e produção.
DESENVOLVIMENTO
Meus pensamentos até agora têm usado o Packer para criar uma AMI, mas também exporte como uma caixa Vagrant . Então, para desenvolvimento, devemos ser capazes de facilmente vagrant up
no mesmo tipo de ambiente que a produção usa. Eu tenho testado isso e até agora sou incapaz de construir uma instância do EC2 com sucesso graças a problemas estranhos de SSH ... mas isso é um tópico para outra pergunta.
TESTE
Estamos tentando usar o Atlassian Bamboo para criar um servidor de compilação. Ele pode carregar uma AMI e criar uma instância do EC2 na AWS para executar o processo de criação / teste. Estou pensando que teríamos que carregar a AMI gerada no estágio de desenvolvimento, não tenho certeza se isso é possível. Alguém mais fez isso?
STAGING
Quando as compilações / testes passam no Bamboo, nós enviamos o código para um ramo de release e o testamos em staging que, como você pode ter previsto, também usaria o mesmo AMI.
PRODUÇÃO
Finalmente, quando o código é testado, ele é enviado para o branch master e implantado no (s) servidor (es) mestre (s) também executando a mesma AMI.
Em teoria, tudo isso parece tão simples e direto. Na prática, é um pesadelo de configuração. Este é um processo razoável e devo fazer um esforço para descobrir tudo ou existe uma maneira melhor de fazer isso? Devo apenas escrever um script bash que use as ferramentas do console da AWS para fazer tudo isso?