Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Sensible defaults for CI and CD in 2019

242 vues

Publié le

CI and CD are nothing new. But learning more about how to do them better is where we should be focusing our energy – the goal is after all to enhance our ability to deliver value.

Publié dans : Technologie
  • Soyez le premier à commenter

Sensible defaults for CI and CD in 2019

  1. 1. 1 1 SENSIBLE DEFAULTS FOR CI/CD IN 2019 Charles Korn
  2. 2. Ready to make your mark? /careers
  3. 3. Sensible defaults for CI/CD in 2019 Charles Korn
  4. 4. 👋 4
  5. 5. Some assumptions 5
  6. 6. 6 Mean time 
 to recovery Deployment frequency Lead time 
 to change Change 
 failure rate
  7. 7. 7 Time Seconds Minutes Hours Days Weeks Dev working locally Pipeline Production compilation unit tests linting integration tests business metrics customer feedbackincidents technical metricsperformance tests security scanning
  8. 8. 8 Image credit: mindgamesbrisbane.com
  9. 9. Sensible default? 9
  10. 10. Culture Pipeline 10 Testing Tooling Development Deployment
  11. 11. Culture Pipeline 11 Testing Tooling Development Deployment
  12. 12. 12 Sensible default #2: Trunk-based development 🌴
  13. 13. 13 Sensible default #3: Pairing 🍐
  14. 14. Culture Pipeline 14 Testing Tooling Development Deployment
  15. 15. 15 Com pile Lint U nittest Contracttest Integration test Static analysis Journey test CFR tests D eploy to pre-prod Sm oke testD eploy to prod Sm oke test D ependency license check D ependency
 vulnerability
 check D ependency
 update
 check Image credit: https://martinfowler.com/bliki/TestPyramid.html Com m it
  16. 16. 16 Sensible default #4: The pipeline is the
 only way $
  17. 17. 17 Sensible default #5: Decoupled pipelines ⛓
  18. 18. 18 Sensible default #6: Build once, 
 use everywhere ☝
  19. 19. 19 Sensible default #7: Two (or three) environments 🏭
  20. 20. Culture Pipeline 20 Testing Tooling Development Deployment
  21. 21. 21 Sensible default #8: Deployment ≠ release 🎉
  22. 22. 22 Sensible default #9: Automated 
 deployments 🤖
  23. 23. 23 Sensible default #1: Continuous
 Deployment ✨
  24. 24. 24 Sensible default #10: Zero-downtime deployments ⏱
  25. 25. 25 Sensible default #11: Gradual
 deployments 🦜
  26. 26. 26 Sensible default #12: Verified
 deployments 🦜 💨
  27. 27. 27 Sensible default #13: Roll forward ➡
  28. 28. Culture Pipeline 28 Testing Tooling Development Deployment
  29. 29. 29 Sensible default #14: Always be testing 🔬
  30. 30. 30 Sensible default #15: CFRs in pipeline 🔨
  31. 31. 31 Sensible default #16: Automated, repeatable, isolated tests ⚙
  32. 32. Culture Pipeline 32 Testing Tooling Development Deployment
  33. 33. 33 Sensible default #17: The pipeline is not special 🎲
  34. 34. 34 Sensible default #18: Automated 
 compliance 📋
  35. 35. 35 Sensible default #19: Pipeline is code 📜
  36. 36. 36 Sensible default #20: Config is code 📚
  37. 37. 37 Sensible default #21: Logging, monitoring
 and alerting owned by dev team 🚨
  38. 38. 38 Sensible default #22: Synthetic monitoring 🧐
  39. 39. Culture Pipeline 39 Testing Tooling Development Deployment
  40. 40. 40 Sensible default #23: You build it, you run it
 (it breaks, you wake) 🛌
  41. 41. Culture Pipeline 41 Testing Tooling Development Deployment
  42. 42. How can I make this happen? 42
  43. 43. Establish Continuous Deployment as goal
 and work backwards 43
  44. 44. 44 Sensible default #24: Paved roads and 
 building blocks 🛣
  45. 45. Recap 45
  46. 46. 46 Logging, monitoring and alerting owned by dev team Zero-downtime deployments Two (or three) environments Continuous Deployment Decoupled pipelines Build once, 
 use everywhere The pipeline is not special Synthetic monitoring Always be testing Automated, repeatable, isolated tests Pairing The pipeline is the only way Roll forward Gradual deployments Config is code You build it, 
 you run it Automated deployments Paved roads and building blocks Trunk-based development CFRs in pipeline Deployment 
 ≠ release Pipeline is code Automated compliance Verified deployments
  47. 47. 47

×