CI -> CD apenas com
ferramentas open-source
Raphael Paiva e Carlos Felippe Cardoso
Raphael Paiva
● B.Sc. em Ciência da Computação pela UFRJ
● Agile Coach da Equipe SIGA-UFRJ
● Ajudei a implantar práticas á...
Carlos Felippe Cardoso (CFC)
● CSD Trainer
● Auxiliou e guiou a implementação do Ágil
em diversas Organizações
● Consultor...
Público-alvo
● Já conhece/pratica CI
● Desconhece tranquilidade em dia de release
● Realiza deploys manualmente
● "Termine...
Integração Contínua
O que é Integração Contínua (CI), quais
são e pra quem são os benefícios
imediatos? Usuário ou Time?
Integração Contínua
● Fail Fast -- detectamos problemas mais cedo
● + Qualidade
● + Tempo desenvolvendo e - apagando incêndios
● - Estresse
In...
CI agrega muito valor
Mas quando e quão
frequentemente este valor é
entregue ao cliente?
O que acontece depois da
integração?
● Build gera um pacote pronto para deploy?
● Como é o deploy para os diferentes
ambientes?
○ Testes exploratórios
○ Homolo...
O que é pronto?
Commitado?
Buildado?
O que é pronto?
Pronto deveria significar
Produção!
Por que usamos CI?
● Identificamos problemas rápido
● Os resolvemos mais cedo
● Reduzimos drasticamente o efeito bola de
neve
● Nos estressam...
Entrega Contínua
Por que não utilizar as mesmas idéias para
a etapa pós-integração?
Ou pior, o time de DevOps
Não percam a palestra do Carlos Felippe
Mas tem o time de
operações...
Todos devem ser
responsáveis pelo
processo de entrega
Como?
1. O processo de entrega precisa ser reprodutível e
confiável
2. Automatize tudo!
3. Se algo é doloroso, faça-o mais freqü...
As 4 práticas da entrega contínua
● Construa binários uma só vez
● Use o mesmo mecanismo para o deploy em
todos os ambient...
O que pode me ajudar?
Ferramentas Open-Source
jenkins-ci.org
Jenkins
● Robô de Integração Contínua
● Canivete Suíço
○ Integração Contínua
○ Agendamento de processos
○ Executor de Smoke Tests
...
Visibilidade
Visibilidade
Fabric
http://www.fabfile.org/
● Se precisarmos fazer um deploy em 100
servidores ao mesmo tempo?
● Rodar um comando em todas as máquinas
de produção?
Fa...
Fabric
Fabric
Docker
www.docker.com
● Empacote uma aplicação com um sistema de arquivos
com tudo que ela precisa:
○ Código
○ Ferramentas e bibliotecas de sist...
Docker
Docker
● Milhares de imagens prontas
● Disponíveis em um registro web
● Assim como o NPM, Ruby Gems, CPAN etc.
Como Integrar essas
ferramentas?
Slave
“Code, please!”
“Deploy, please!”
Integration Server
github.com/diegomartins/fabricio
A REST/web-ui approach to fabric
Vejamos na prática
Dúvidas?
raphaeldpaiva@gmail.com
cfc@k21.com.br
Obrigado!
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Próximos SlideShares
Carregando em…5
×

Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source

559 visualizações

Publicada em

Apresentado no Scrum Gathering Rio 2015.

Nesta apresentação falo sobre os princípios de Continuous Delivery e como implementar um release pipeline apenas com ferramentas gratuitas e de código aberto, como Docker, Fabric e Jenkins.

Publicada em: Tecnologia
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
559
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source

  1. 1. CI -> CD apenas com ferramentas open-source Raphael Paiva e Carlos Felippe Cardoso
  2. 2. Raphael Paiva ● B.Sc. em Ciência da Computação pela UFRJ ● Agile Coach da Equipe SIGA-UFRJ ● Ajudei a implantar práticas ágeis como TDD, CI, CD, automatização e cultura DevOps durante 7 anos (e contando). Raphael Paiva @raphaelmacoli /raphaelmacoli
  3. 3. Carlos Felippe Cardoso (CFC) ● CSD Trainer ● Auxiliou e guiou a implementação do Ágil em diversas Organizações ● Consultorias técnicas e sobre agilidade
  4. 4. Público-alvo ● Já conhece/pratica CI ● Desconhece tranquilidade em dia de release ● Realiza deploys manualmente ● "Terminei, agora é problema do pessoal de ops/infra" ● Não faz perguntas difíceis :p
  5. 5. Integração Contínua
  6. 6. O que é Integração Contínua (CI), quais são e pra quem são os benefícios imediatos? Usuário ou Time? Integração Contínua
  7. 7. ● Fail Fast -- detectamos problemas mais cedo ● + Qualidade ● + Tempo desenvolvendo e - apagando incêndios ● - Estresse Integração Contínua
  8. 8. CI agrega muito valor
  9. 9. Mas quando e quão frequentemente este valor é entregue ao cliente?
  10. 10. O que acontece depois da integração?
  11. 11. ● Build gera um pacote pronto para deploy? ● Como é o deploy para os diferentes ambientes? ○ Testes exploratórios ○ Homologação ○ Produção O que acontece depois da integração?
  12. 12. O que é pronto?
  13. 13. Commitado? Buildado? O que é pronto?
  14. 14. Pronto deveria significar Produção!
  15. 15. Por que usamos CI?
  16. 16. ● Identificamos problemas rápido ● Os resolvemos mais cedo ● Reduzimos drasticamente o efeito bola de neve ● Nos estressamos menos Por que usamos CI?
  17. 17. Entrega Contínua Por que não utilizar as mesmas idéias para a etapa pós-integração?
  18. 18. Ou pior, o time de DevOps Não percam a palestra do Carlos Felippe Mas tem o time de operações...
  19. 19. Todos devem ser responsáveis pelo processo de entrega
  20. 20. Como?
  21. 21. 1. O processo de entrega precisa ser reprodutível e confiável 2. Automatize tudo! 3. Se algo é doloroso, faça-o mais freqüentemente. 4. Mantenha tudo sob versionamento 5. Pronto significa entregue 6. Integre qualidade 7. Todos devem ter responsabilidade sobre o processo de entrega 8. Melhore continuamente Os 8 princípios da entrega contínua
  22. 22. As 4 práticas da entrega contínua ● Construa binários uma só vez ● Use o mesmo mecanismo para o deploy em todos os ambientes. ● Faça Smoke Tests ● Se alguma coisa falhar, pare (stop the line)! ○ Todos devem ser responsáveis pelo processo de entrega!
  23. 23. O que pode me ajudar? Ferramentas Open-Source
  24. 24. jenkins-ci.org Jenkins
  25. 25. ● Robô de Integração Contínua ● Canivete Suíço ○ Integração Contínua ○ Agendamento de processos ○ Executor de Smoke Tests ○ Visibilidade/Monitoramento ○ Pipeline Jenkins
  26. 26. Visibilidade
  27. 27. Visibilidade
  28. 28. Fabric http://www.fabfile.org/
  29. 29. ● Se precisarmos fazer um deploy em 100 servidores ao mesmo tempo? ● Rodar um comando em todas as máquinas de produção? Fabric
  30. 30. Fabric
  31. 31. Fabric
  32. 32. Docker www.docker.com
  33. 33. ● Empacote uma aplicação com um sistema de arquivos com tudo que ela precisa: ○ Código ○ Ferramentas e bibliotecas de sistema ○ Middleware ○ Tudo que você instalaria em um servidor ● Garantia de que o software rodará da mesma forma, independente de ambiente. Docker
  34. 34. Docker
  35. 35. Docker ● Milhares de imagens prontas ● Disponíveis em um registro web ● Assim como o NPM, Ruby Gems, CPAN etc.
  36. 36. Como Integrar essas ferramentas?
  37. 37. Slave “Code, please!” “Deploy, please!” Integration Server
  38. 38. github.com/diegomartins/fabricio A REST/web-ui approach to fabric Vejamos na prática
  39. 39. Dúvidas? raphaeldpaiva@gmail.com cfc@k21.com.br Obrigado!

×