SlideShare a Scribd company logo
1 of 35
Download to read offline
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/
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.
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
11/1/2016
2
About Me
About Me
11/1/2016
3
About Me
About Me
11/1/2016
4
About Me
About Me
11/1/2016
5
About This Talk
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/1/2016
7
About This Talk
About This Talk
11/1/2016
8
About This Talk
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
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
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
11/1/2016
12
Microservices
Microservices
11/1/2016
13
11/1/2016
14
SUPER
APP
# Files: 169
# Tests: 1800
Build Time: 9 min
Output: superapp.war
APP
# Files: 72
# Tests: 800
Build Time: 4 min
APP
BACKEN
D
SUPER APP
# Files: 115
# Tests: 1200
Build Time: 6 min
Output: superapp.war
Build Time: 4 min
Output: appbackend.jar
Microservices?
11/1/2016
15
Microservices
Microservices
11/1/2016
16
Microservices
Microservices
11/1/2016
17
Microservices
Microservices
11/1/2016
18
Build Pipeline Becomes aBuild Pipeline Becomes a
Network
Scalable Continuous Deployment
With Maven
https://goo.gl/LvkkRq
11/1/2016
19
A real case scenario
11/1/2016
20
Service
Service
Service
Parent
POM
Logging
Service
28%
Service
Service
Parent
POM
Logging
11/1/2016
21
Service
28%
28%
Service
28%
Service
Parent
POM
Logging
Service28%
28%
20%
Service
28%
Service
Parent
POM
Logging
11/1/2016
22
Service
48%
28%
20%
Service
28%
Service
Parent
POM
Logging
Service
Service
Service
Parent
POM
Logging
11/1/2016
23
Service
Service
Service
Useful Metrics
 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
11/1/2016
24
Service
Service
Servi
ce
Service28%
Service
Service
Parent
POM
Logging
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
11/1/2016
26
Serial execution 
Useful Metrics
IT(A) = BT(A) + IT(B) + IT(C)
B
A
C
Parallel execution 
IT(A) BT(A) + ma (IT(B) IT(C))
Useful Metrics
IT(A) = BT(A) + max(IT(B), IT(C))
B
A
C
11/1/2016
27
Service
Service
Service
Useful Metrics
Weighted Impact Time (WIT): impact time of a build
weighted according to its change rage
WIT(A) = IT(A) * CR(A)
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
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.
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
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
11/1/2016
32
github.com/quiram/build-hotspots
Build Hotspots
https://https://commons.wikimedia.orgcommons.wikimedia.org/wiki/File:2012_Italian_GP_/wiki/File:2012_Italian_GP_--_Lotus_wheel.jpg_Lotus_wheel.jpg
11/1/2016
33
Thank YouThank You
fromfragiletoagile.com
@AbrahamMarin
#FastCI #BetterSoftwareCon
@EqualExper
ts
equal-
experts
equalexperts.com

More Related Content

Viewers also liked

Viewers also liked (17)

Five XP Practices for Agile Development
Five XP Practices for Agile DevelopmentFive XP Practices for Agile Development
Five XP Practices for Agile Development
 
Your Agile Team Needs a Therapist
Your Agile Team Needs a TherapistYour Agile Team Needs a Therapist
Your Agile Team Needs a Therapist
 
The Business of Agile: Better, Faster, Cheaper
The Business of Agile: Better, Faster, CheaperThe Business of Agile: Better, Faster, Cheaper
The Business of Agile: Better, Faster, Cheaper
 
Step-by-Step Guide to Leading a Large-Scale Agile Transformation
Step-by-Step Guide to Leading a Large-Scale Agile TransformationStep-by-Step Guide to Leading a Large-Scale Agile Transformation
Step-by-Step Guide to Leading a Large-Scale Agile Transformation
 
Testing and Measurement in DevOps: Find Solutions—Not More Problems
Testing and Measurement in DevOps: Find Solutions—Not More ProblemsTesting and Measurement in DevOps: Find Solutions—Not More Problems
Testing and Measurement in DevOps: Find Solutions—Not More Problems
 
Agile Requirements—From Breadth to Depth
Agile Requirements—From Breadth to DepthAgile Requirements—From Breadth to Depth
Agile Requirements—From Breadth to Depth
 
Testing Transformation in the IoT Era
Testing Transformation in the IoT EraTesting Transformation in the IoT Era
Testing Transformation in the IoT Era
 
Enable Your Workers … You’ll Be Amazed What They Can Do
Enable Your Workers … You’ll Be Amazed What They Can DoEnable Your Workers … You’ll Be Amazed What They Can Do
Enable Your Workers … You’ll Be Amazed What They Can Do
 
The Past, Present, and Future of Scrum
The Past, Present, and Future of ScrumThe Past, Present, and Future of Scrum
The Past, Present, and Future of Scrum
 
Them’s the Rules: Using a Rules Engine to Wrangle Complexity
Them’s the Rules: Using a Rules Engine to Wrangle ComplexityThem’s the Rules: Using a Rules Engine to Wrangle Complexity
Them’s the Rules: Using a Rules Engine to Wrangle Complexity
 
The Lean Agile Portfolio
The Lean Agile PortfolioThe Lean Agile Portfolio
The Lean Agile Portfolio
 
Teamwork Tools: Movement Games for Collaboration and Creativity
Teamwork Tools: Movement Games for Collaboration and CreativityTeamwork Tools: Movement Games for Collaboration and Creativity
Teamwork Tools: Movement Games for Collaboration and Creativity
 
Conquer the Murky Waters of Test Automation
Conquer the Murky Waters of Test AutomationConquer the Murky Waters of Test Automation
Conquer the Murky Waters of Test Automation
 
The Three Pillars Approach to an Agile Testing Strategy
The Three Pillars Approach to an Agile Testing StrategyThe Three Pillars Approach to an Agile Testing Strategy
The Three Pillars Approach to an Agile Testing Strategy
 
Removing the Silos: When Agile, Lean, and DevOps Aren’t Enough
Removing the Silos: When Agile, Lean, and DevOps Aren’t EnoughRemoving the Silos: When Agile, Lean, and DevOps Aren’t Enough
Removing the Silos: When Agile, Lean, and DevOps Aren’t Enough
 
SISTEMA DE TELECOMUNICACIONES II UNIVERSIDAD FERMIN TORO. PORTUGUESA
SISTEMA DE TELECOMUNICACIONES II UNIVERSIDAD FERMIN TORO. PORTUGUESASISTEMA DE TELECOMUNICACIONES II UNIVERSIDAD FERMIN TORO. PORTUGUESA
SISTEMA DE TELECOMUNICACIONES II UNIVERSIDAD FERMIN TORO. PORTUGUESA
 
Jodie Boland for GQ
Jodie Boland for GQJodie Boland for GQ
Jodie Boland for GQ
 

More from TechWell

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

Recently uploaded (20)

WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration Tooling
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 

Make Your Continuous Deployment Pipeline as Fast as Possible