➔ Commits diários;
➔ Sem multíplas branchs - commits direto no “trunk”;
➔ Build automatizado;
➔ Todo commit gera um novo build;
➔ Ambiente de testes deve ser similar ao de produção;
➔ Deploy automatizado (sem exigir intervenção manual);
Estratégias Utilizadas
➔ Testa continuamente o projeto;
➔ Garante que a aplicação é compatível com o banco de dados;
➔ Mantém sempre a versão de testes atualizada;
➔ Os erros são identificados rapidamente;
➔ Testes automatizados == maior qualidade == menos tempo
necessário para colocar uma nova versão em produção;
➔ Auditoria de código é feita continuamente através do Sonar;
Quais os benefícios?
➔ Controle de versão para o banco de dados;
➔ Mudanças na base são executadas incrementalmente;
➔ Scripts ficam juntos com o código fonte da aplicação e são
executados automaticamente durante o deploy;
Quais os benefícios?
➔ Alguns testes podem ser feitos diretamente em produção;
➔ Rollback é imediato em caso de problema;
➔ É possível atualizar a versão durante o dia, mantendo 100% de
uptime;
➔ Load balance por request distribui a carga muito melhor do que por
afinidade de sessão;
Ainda sobre entrega contínua...
➔ Não se trata apenas de uma ferramenta ou conjunto de
ferramentas
➔ O desafio é a quebra de barreira entre desenvolvedores, área de
testes, infraestrutura...