Este é um projeto da Web escrito em Java.
Então, estou escrevendo os scripts de compilação e implantação. Para criar a compilação, usei ant. A construção contínua é feita com Jenkins.
A construção gera 3 artefatos diferentes:
- O arquivo de guerra
- Um zip com layouts
- Um zip com imagens
Até agora, tudo bem, mas agora preciso escrever o script de implantação, o que deve:
- Implemente a guerra (artefato 1) no tomcat em execução no servidor 1
- Coloque o artefato 2 no servidor 1 em um diretório específico
- Coloque o artefato 3 no servidor 2 em um diretório específico
Então, eu estava conversando com meu colega e ele disse que também deveríamos gerar um artefato (talvez deploy.xml ) que implante esses artefatos quando colocados no servidor correto.
Portanto, haveria outro script que:
- Faça o download dos artefatos de jenkins
- scp para cada servidor e coloque o deploy.xml lá
- chamar remotamente o deploy.xml
O que me deixa um pouco desconfortável é o ato de ter o deploy.xml como um artefato de construção. A motivação por trás disso seria ser capaz de fazer uma implantação sem precisar ter acesso aos repositórios VCS, para que uma construção fosse independente, ou seja, qualquer construção poderia entrar em produção apenas com o que foi gerado por Jenkins.
Onde os scripts de implantação devem ser colocados? Eles devem estar apenas no VCS ou também devem criar artefatos?
fonte
Respostas:
Minha experiência é que tudo o que pode ser automatizado deve ser. Se você pode descrevê-lo como etapa 1, etapa 2, .... então deve ser um script. Se o script puder ser gerado automaticamente para incluir informações específicas da compilação (por exemplo, tag de revisão), é isso que você deve fazer. Isso não é para ser preguiçoso, mas para ser previsível e reproduzível .
Nota: você também deve ter um script de reversão gerado automaticamente que possa ser usado por qualquer pessoa da equipe, caso o script de implantação gerado automaticamente fique totalmente louco e faça mangueiras no servidor de produção.
fonte
Tudo o que Peter Rowell escreveu, está correto, além disso eu:
Para o arquivo de script de implementação
Para o processo de implantação:
Isso depende bastante do seu processo e de como você gosta de lidar com implantações.
fonte