Continuous integration (CI) and continuous deployment (CD) have been key to increasing the pace at which development teams can deliver value to the business while keeping quality high. However, many teams are finding that their build pipelines are hard to manage, with builds taking so long that they often halt the development process. Abraham Marin-Perez explores the negative effects of long builds and discusses the most common solutions that organizations apply—many of which involve unfortunate compromises that reduce the benefits of CI/CD. In order to fix this problem without compromises, Abraham shares a technique to rebuild only the parts of the system affected by a change and metrics that you can use to assess the overall health of the build pipeline. Learn how to equip your team with the necessary tools to identify when builds are too long—and what to do about it.
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Make Your Continuous Deployment Pipeline as Fast as Possible
1. DW4
DevOps Implementation
11/16/2016 1:30:00 PM
Make Your Continuous Deployment
Pipeline as Fast as Possible
Presented by:
Abraham Marin-Perez
Equal Experts
Brought to you by:
350 Corporate Way, Suite 400, Orange Park, FL 32073
888--‐268--‐8770 ·∙ 904--‐278--‐0524 - info@techwell.com - http://www.stareast.techwell.com/
2. Abraham Marin-Perez
Equal Experts
Abraham Marin-Perez is a Java programmer, author, speaker, and agile
consultant. Abraham has been working in software development for a decade,
paying special attention to what maximizes a team's capacity to deliver in the
long term. This has led him to study everyday programming habits and
techniques that ensure the sustainability of the development process, sharing his
views in Real-World Maintainable Software and more informally in his blog and
on Twitter (@AbrahamMarin). He helps run the London Java Community—an
organization which is an elected member of the Java Community Process
Executive Committee, and contributes as a Java news editor at InfoQ.
3. 11/1/2016
1
Keeping Your CI / CD Pipeline
Abraham Marin-Perez
@AbrahamMarin
Keeping Your CI / CD Pipeline
as Fast as It Needs to Be
@AbrahamMarin
fromfragiletoagile.com
#BetterSoftwareCon#BetterSoftwareCon @AbrahamMarin @EqualExperts@AbrahamMarin @EqualExperts
About Me
8. 11/1/2016
6
About This Talk
Continuous Integration: check everything is still
working after every commit
Continuous Deployment: every successful
commit turns into a releasecommit turns into a release
About This Talk
11. 11/1/2016
9
SUPER
APP
# Files: 75
# Tests: 800
Build Time: 4 min
Output: superapp.war
SUPER
APP
# Files: 113
# Tests: 1200
Build Time: 6 min
Output: superapp.war
12. 11/1/2016
10
SUPER
APP
# Files: 169
# Tests: 1800
Build Time: 9 min
Output: superapp.war
Slow feedback
The Problems Of Size
Broken builds mask issues
Development paralysis
Impact on ability to meet our SLAsp y
Pay per use
Missed business opportunities
13. 11/1/2016
11
Live with it
How Organisations Manage Size
Partial CD: only quick tests
Phased CD: split into components
Test Deprecation Policy
Microservices
Microservices
27. 11/1/2016
25
Impact Time (IT): total time to run a build and all the
builds that will be triggered as a result
Useful Metrics
builds that will be triggered as a result
No dependants
Useful Metrics
IT(A) = BT(A)
A
30. 11/1/2016
28
Average Impact Time (AIT): total time needed on
Useful Metrics
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)AIT WIT(A) WIT(B) ... WIT(Z)
Sample Thresholds
31. 11/1/2016
29
Sample Thresholds
Average Impact Time
Average Impact Time is what indicates how well you
have scaled your systemy y
M i I t Ti
Sample Thresholds
Maximum Impact Time
In a worst-case scenario, a build won’t take longer
than this.
32. 11/1/2016
30
Maximum Impact Time for Critical Components
Sample Thresholds
Maximum Impact Time for Critical Components
The same, but only for your most sensitive modules
(log-in, payment gateway, etc.)
Beware of dependencies!
Service
Service
Service
33. 11/1/2016
31
M l iManual processing
takes time...
Automating Build Analysis
Most CI systems provide an API
Calculations aren’t complex
Multiple graphical tools availablep g p