Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Delivery com ArgoCD

Continuous Delivery com ArgoCD

Para otimizar nosso tempo e diminuir incidentes causados por erro humano, adotamos o conceito de CI/CD no nosso dia a dia. Acontece que, muitas vezes, por limitações técnicas e dificuldade de integração entre plataformas, deixamos a automatização de deploy de lado e ficamos, no melhor das hipóteses, só com os testes automatizados.

Não seria ótimo se os desenvolvedores pudessem se preocupar só com o versionamento de código, e todo o resto acontecesse magicamente por debaixo dos panos?

Nessa talk aprenderemos como automatizar o seu deploy de maneira fácil com o ArgoCD, uma ferramenta de automatização de deploy para Kubernetes, e porque é importante separar o CI do CD.

Rodrigo Souza

October 30, 2020
Tweet

More Decks by Rodrigo Souza

Other Decks in Programming

Transcript

  1. 1 C O N T I N U O U

    S D E L I V E R Y C O M A R G O C D DEVOPS T D C R E C I F E 2 0 2 0
  2. 3 Além do deploy, melhorias, testes, trunk-based development Apêndice B

    Exemplos de scripts de CI separados por vendor Apêndice A F I M
  3. 4 RODRIGO SOUZA S O F T W A R

    E E N G I N E E R Sami rasouza rasouza rasouza.com.br
  4. 5 Desenhando a Pipeline de Integração Contínua e separando as

    responsabilidades das ferramentas ATÉ ONDE VAI O MEU CI?
  5. 6 Nossa Pipeline Dockerfiles Teste unitário Teste de integração Imagem

    do container no Dockerhub ArgoCD Build Test Push Deploy Commerce
  6. 8 Nossa Pipeline Dockerfiles Teste unitário Teste de integração Imagem

    do container no Dockerhub ArgoCD Build Test Push Deploy Commerce
  7. 9 Nossa Pipeline Dockerfiles Teste unitário Teste de integração Imagem

    do container no Dockerhub ArgoCD Build Test Push Deploy Commerce
  8. 10 Nossa Pipeline Dockerfiles Teste unitário Teste de integração Imagem

    do container no Dockerhub ArgoCD Build Test Push Deploy Commerce
  9. 12

  10. 14 Footprint mais enxuto para produção Multi-stage Build 01 Erros

    são captados mais cedo no ciclo de vida de desenvolvimento Shift Left 02
  11. 15 Mesmos comandos produzem o mesmo resultado Standards 03 Footprint

    mais enxuto para produção Multi-stage Build 01 Erros são captados mais cedo no ciclo de vida de desenvolvimento Shift Left 02
  12. 16 Mesmos comandos produzem o mesmo resultado Standards 03 Código

    está mais perto do desenvolvedor e o processo não está escondido Developer Ownership 04 Footprint mais enxuto para produção Multi-stage Build 01 Erros são captados mais cedo no ciclo de vida de desenvolvimento Shift Left 02
  13. 17 Mesmos comandos produzem o mesmo resultado Standards 03 Código

    está mais perto do desenvolvedor e o processo não está escondido Developer Ownership 04 Footprint mais enxuto para produção Multi-stage Build 01 Erros são captados mais cedo no ciclo de vida de desenvolvimento Shift Left 02
  14. 19 Mesmos comandos produzem o mesmo resultado Standards 03 Código

    está mais perto do desenvolvedor e o processo não está escondido Developer Ownership 04 Footprint mais enxuto para produção Multi-stage Build 01 Erros são captados mais cedo no ciclo de vida de desenvolvimento Shift Left 02
  15. 23 INFRASTRUCTURE AS A CODE P R O G R

    A M M I N G D I A R Y Versione seus manifestos do Kubernetes em um repositório separado!
  16. 26 DEPLOYMENT M A N I F E S T

    O Precisamos trocar a imagem do container no manifesto que está versionado.
  17. 27 DEPLOYMENT M A N I F E S T

    O Precisamos trocar a imagem do container no manifesto que está versionado. Algumas ferramentas podem ajudar: Kustomize HELM
  18. 28

  19. 29

  20. 31 QUAL O PROBLEMA QUE ESTAMOS RESOLVENDO? I M P

    O R T A N T E O último commit da master é o estado atual da infraestrutura. INFRAESTRUTURA REPLICÁVEL
  21. 32 QUAL O PROBLEMA QUE ESTAMOS RESOLVENDO? I M P

    O R T A N T E Mais de um desenvolvedor pode evoluir a infraestrutura ao mesmo tempo. COLABORAÇÃO O último commit da master é o estado atual da infraestrutura. INFRAESTRUTURA REPLICÁVEL
  22. 33 QUAL O PROBLEMA QUE ESTAMOS RESOLVENDO? I M P

    O R T A N T E Mais de um desenvolvedor pode evoluir a infraestrutura ao mesmo tempo. COLABORAÇÃO O último commit da master é o estado atual da infraestrutura. INFRAESTRUTURA REPLICÁVEL Infraestrutura e produto evoluem separadamente. Ferramentas especializadas trabalham melhor. SEPARAÇÃO DE RESPONSABILIDADES
  23. 34 QUAL O PROBLEMA QUE ESTAMOS RESOLVENDO? I M P

    O R T A N T E Mais de um desenvolvedor pode evoluir a infraestrutura ao mesmo tempo. COLABORAÇÃO Os desenvolvedores não precisam se preocupar mais com deploy, apenas com código! FOCO NO VALOR O último commit da master é o estado atual da infraestrutura. INFRAESTRUTURA REPLICÁVEL Infraestrutura e produto evoluem separadamente. Ferramentas especializadas trabalham melhor. SEPARAÇÃO DE RESPONSABILIDADES
  24. 36

  25. 39 FEATURES A R G O C D Auto-Sync Log

    das aplicações Rollback
  26. 40 FEATURES A R G O C D Auto-Sync Log

    das aplicações Rollback Recursos do Kubernetes
  27. 41 FEATURES A R G O C D Auto-Sync Log

    das aplicações Rollback Recursos do Kubernetes App Of Apps Pattern
  28. 42 C u s t o m R e s

    o u r c e D e f i n i t i o n
  29. 43

  30. 45 CONTINUOUS INTEGRATION F E R R A M E

    N T A S CircleCI GitLab CodeShip
  31. 46 CONTINUOUS INTEGRATION F E R R A M E

    N T A S BuildKite Jenkins
  32. 47 CONTINUOUS DEPLOYMENT F E R R A M E

    N T A S FluxCD ArgoCD Spinnaker
  33. 48 CIRCLECI C L I Q U E PA R

    A A B R I R O C Ó D I G O
  34. 49 BUILDKITE C L I Q U E PA R

    A A B R I R O C Ó D I G O
  35. 50 GITLAB C L I Q U E PA R

    A A B R I R O C Ó D I G O
  36. 51 JENKINS C L I Q U E PA R

    A A B R I R O C Ó D I G O
  37. 53 CONTINUOUS DELIVERY T E M A Até agora cobrimos

    apenas alguns tópicos do tema Continuous Delivery. Se quisermos completar a roda, temos que estudar a fundo mais alguns tópicos
  38. 54 CONTINUOUS DELIVERY T E M A Até agora cobrimos

    apenas alguns tópicos do tema Continuous Delivery. Se quisermos completar a roda, temos que estudar a fundo mais alguns tópicos
  39. 58 SLACK NOTIFICATION C I R C L E C

    I É importante aproximar o desenvolvedor com a sua pipeline de desenvolvimento. Promover o feedback de maneira prática é um caminho. Podemos integrar notificações do Slack (local que já estamos acostumados a usar) de maneira bem fácil, gastando pouco esforço mas entregando um grande valor Configuring notifications for your CI builds with Slack
  40. 60 BIBLIOGRAFIA ArgoCD https://argoproj.github.io/argo-cd/ Guide to GitOps https://www.weave.works/technologies/gitops/ Shifting Left

    with Continuous Delivery https://dzone.com/refcardz/shifting-left-with-continuous-delivery?chapter=2 Using Multi-Stage Builds to Simplify And Standardize Build Processes https://medium.com/capital-one-tech/multi-stage-builds-and-dockerfile-b5866d9e2f84 The Benefits of Continuous Delivery https://dzone.com/articles/the-benefits-of-continuous-delivery