Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

242 views

Published on

Short version of my talk on how to keep CI/CD pipelines as fast as needed. This presentation delves into why fast build pipelines are important and explores different approaches to achieve and measure this.

Published in: Technology
  • Login to see the comments

Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

  1. 1. Abraham Marin-Perez @AbrahamMarin fromfragiletoagile.com Keeping Your CI / CD Pipeline as Fast as It Needs to Be #FastCI @AbrahamMarin @EqualExperts
  2. 2. About Me
  3. 3. About Me
  4. 4. About Me
  5. 5. About Me
  6. 6. About Me
  7. 7. About Me
  8. 8. About Me
  9. 9. About This Talk
  10. 10. About This Talk
  11. 11. About This Talk
  12. 12. About This Talk
  13. 13. About This Talk
  14. 14. Slow feedback Impact on ability to meet our SLAs Pay per use The Problems Of Size
  15. 15. SUPER APP # Files: 169 # Tests: 1800 Build Time: 9 min Output: superapp.war APP BACKEN D SUPER APP # Files: 115 # Tests: 1200 Build Time: 6 min Output: superapp.war # Files: 72 # Tests: 800 Build Time: 4 min Output: appbackend.jar
  16. 16. Microservices?
  17. 17. Microservices
  18. 18. Microservices
  19. 19. Microservices
  20. 20. Microservices
  21. 21. Microservices
  22. 22. Microservices
  23. 23. Build Pipeline Becomes a Network
  24. 24. A real case scenario
  25. 25. Service Service Service Parent POM Logging
  26. 26. Service Service Service Parent POM Logging 28%
  27. 27. Service Service Service Parent POM Logging 28% 28% 28%
  28. 28. Service Service Service Parent POM Logging 28% 28% 28% 20%
  29. 29. Service Service Service Parent POM Logging 48% 28% 28% 20%
  30. 30. Service Service Service Parent POM Logging Highest run frequency Lowest run frequency
  31. 31. Service Service Service Highest run frequency Lowest run frequency
  32. 32.  Build Time (BT): time an individual build takes to run  Change Rate (CR): percentage of commits upon an individual build with respect to the whole system Useful Metrics
  33. 33. Service Service Service Highest run frequency Lowest run frequency
  34. 34. Service Service Service Parent POM Logging 28%
  35. 35.  Impact Time (IT): total time to run a build and all the builds that will be triggered as a result Useful Metrics
  36. 36. No dependants  IT(A) = BT(A) A Useful Metrics
  37. 37. Serial execution  IT(A) = BT(A) + IT(B) + IT(C) B A C Useful Metrics
  38. 38. Parallel execution  IT(A) = BT(A) + max(IT(B), IT(C)) B A C Useful Metrics
  39. 39. Service Service Service Highest run frequency Lowest run frequency
  40. 40. Weighted Impact Time (WIT): impact time of a build weighted according to its change rage WIT(A) = IT(A) * CR(A) Useful Metrics
  41. 41. Average Impact Time (AIT): total time needed, on average, to execute all necessary builds after any given commit anywhere in the system AIT = WIT(A) + WIT(B) + ... + WIT(Z) Useful Metrics
  42. 42. Sample Thresholds
  43. 43. Average Impact Time Average Impact Time is what indicates how well you have scaled your system Sample Thresholds
  44. 44. Maximum Impact Time In a worst-case scenario, a build won’t take longer than this. Sample Thresholds
  45. 45. Maximum Impact Time for Critical Components The same, but only for your most sensitive modules (log-in, payment gateway, etc.) Beware of dependencies! Sample Thresholds
  46. 46. Service Service Service Highest run frequency Lowest run frequency
  47. 47. Manual processing takes time...
  48. 48. https://commons.wikimedia.org/wiki/File:2012_Italian_GP_-_Lotus_wheel.jpg
  49. 49. Thank You @EqualExper ts equal- experts equalexperts.com Thank You fromfragiletoagile.com @AbrahamMarin #FastCI

×