5. Uma empresa democrática
•
•
•
•
Sem gerentes ou estrutura hierárquica
Livros abertos
Decisões por consenso
100% ágil
http://bit.ly/lambda3democracia
7. Primeiro princípio do manifesto
ágil
“Nossa maior prioridade é satisfazer o
cliente através da entrega contínua
(continuous delivery) e adiantada de
software com valor agregado.”
http://agilemanifesto.org/principles.html
8. Continuous Delivery
Software sempre pronto para ir para produção
Todo commit pode ir para produção sem
interferência do desenvolvedor
Decisão de ir pra produção vem do negócio, não de
TI
9. Continuous Deployment
Não é Continuous Delivery
É ir para produção a cada commit que passar nos
critérios de publicação
Continuous Deployment demanda Continuous
Delivery
10. Como fazer?
Testes automatizados
Integração contínua (build server, fast build, etc)
Branches de vida curta
Feature toggles
One click deployment/rollback
Binaries Repository
Deployment pipeline
Sempre produzindo código pronto para produção
11. Build
Um build por push (ou commit)
Testes rápidos rodam
Análises de código rodam
Scripts de deployment gerados
Dados de testes preparados
Repositório de binários recebe o resultado do build,
dos script e dos dados
12. Feature Toggles
Funcionalidade presente no código mas ainda não
finalizada fica desabilitada e pode ir para produção
Pode substituir o uso de branches
Mais complexo de escrever e testar
Pode ser feito facilmente “escondendo” uma
funcionalidade
Em alguns cenários não é possível usar
13. Feature branches, do or do not?
Sem resposta simples, idealmente evite
Se existir, sempre de vida curta
Use pull requests
Devem ser vistos como “ambientes de staging
privados”
* branches de ambiente (staging, UAT) são ok
14. Releasing
Os resultados da compilação progridem de
ambiente para ambiente dentro do deployment
pipeline
Os resultados do build são usados durante todo o
processo, nunca o build é refeito
Ambientes idealmente são sempre criados do zero
19. Green blue deployments: nunca fora do
ar
Cada deploy sobe um ambiente completamente
novo
O ambiente antigo continua no ar
O novo ambiente tem outro endereço
Testes são feitos no novo endereço
Se tudo estiver ok, vire o interruptor e desligue o
ambiente antigo
Suportado pelos principais provedores de cloud