SlideShare a Scribd company logo
Continuous Delivery @ Codemotion
Scaling up CI to a CD Pipeline
BUILD TEST DEPLOY
➔ Social Casino Startup
➔ Web and Mobile
➔ 250K DAU
➔ ~20 Technical Staff
➔ No QA
@Plumbee_Games
http://www.plumbee.com
Engineering Manager at Plumbee Ltd
@mserranom
miguel@plumbee.com
Scaling up CI to a CD Pipeline
BUILD TEST DEPLOY
Mission + People
BUILD TEST DEPLOY
Any organisation’s pipeline is shaped by:
● The requirements to achieve its mission
● The views of the team on Software Development
Decisions
● Tools
● Test Strategy
● Frequency on deployment
● On-call strategy
BUILD TEST DEPLOY
it’s all about building an
Engineering Culture
BUILD TEST DEPLOY
Trunk vs Branching
Trunk vs Branching
● Fast ● Safe
Trunk vs Branching
● Fast
● Minimises merge pain
● Safe
● Asynchronous
Trunk vs Branching
● Fast
● Minimises merge pain
● Old Fashioned
● Safe
● Asynchronous
● Git is cool!
Trunk
“The most direct way to improve as a
software developer is to be absolutely fearless
when it comes to changing your code”
Jeff Atwood
Stack Exchange/Discourse founder
Trunk
“Don’t be scared of changing your code.
Pave your way to not to break things”
Miguel Serrano
The guy talking right now
Versioning
JAR
1.0-SNAPSHOT
WAR
1.4-SNAPSHOT
JAR
1.4-SNAPSHOT
JAR
1.0-SNAPSHOT
WAR
1.4-SNAPSHOT
JAR
1.4-SNAPSHOT
Versioning
Nondeterministic!
The exact sequence of builds is not reproducible
JAR
1.0-SNAPSHOT
WAR
1.4-SNAPSHOT
JAR
1.4-SNAPSHOT
Versioning
Releases require:
● Update snapshots to static version number
● Ensure there are no snapshot dependencies
● Code freeze while releasing
● Manual updates
JAR
1.0
WAR
1.4
JAR
1.4
JAR
1.0-SNAPSHOT
WAR
1.4-SNAPSHOT
JAR
1.4-SNAPSHOT
Versioning
Releases require:
● Update snapshots to a static number
● Ensure there are no snapshot dependencies
● Code freeze while releasing
● Manual updates
}
mvn release:prepare
mvn release:perform
JAR
1.0
WAR
1.4
JAR
1.4
Versioning
Rules
● Every artifact is assigned a new version at build time
● Every artifact gets its dependencies versions updated to
the latest version in every build
● Every artifact is ready to be deployed
JAR
1.0
WAR
1.4
JAR
1.4
JAR
1.0-SNAPSHOT
WAR
1.4-SNAPSHOT
JAR
1.4-SNAPSHOT
Versioning
JAR
JAR
JAR
JAR
JAR
WAR
Test
DEPLOY
JAR
JAR WAR DEPLOY
JAR
JAR
JAR
JAR
JAR
WAR
Test
DEPLOY
JAR
JAR WAR DEPLOY
Actual Pipeline ~= 154 builds
Pipeline Graph
C
E
D
A
StagingTestB
A developer makes a change in module A
Pipeline Graph
B
C
E
D
A
StagingTest
Pipeline Graph
B
C
E
D
A
StagingTest
Pipeline Graph
B
C
E
D
A
StagingTest
#1
#2
Pipeline Graph
B
C
E
D
A
StagingTest
x2
x3 x3
● 7 Modules, 12 Builds
● 1 changeset triggers 3 deploys
#Builds(n) = #UniquePaths(A->n)
Build Explosion!
#Builds grow exponentially when the graph grows
...but computing power is cheap (linux)
Build Explosion!
#Builds grow exponentially when the graph grows
...but computing power is cheap (linux)
Option: ignore intermediate results
… while wasting resources
Test
#1
#2
#3
the only one with
changeset applied to all
nodes
#Builds
B
C
D
C
A
WAR Test
● Join: Build doesn’t start until all the previous one have
succeeded
● #Build = #Modules
● Test runs once per changeset
Smart pipelines in Jenkins
● Build Flow Plugin
○ https://github.com/jenkinsci/build-flow-plugin
● Workflow Plugin
○ https://github.com/jenkinsci/workflow-plugin
Build Flow Plugin
join = parallel ({
build(“B”)
build(“C”),
})
build(“D”, param1 : join )
B
C
D
BUILD TEST STAGING PRODUCTION
Engineering
Business
+ Engineering
Continuous Delivery
BUILD TEST DEPLOY
STAGING PRODUCTION
Continuous Delivery
Schema Update
IT Provisioning
Config updates
Roll out
Non-Technical
BUILD TEST STAGING PRODUCTION
Continuous Delivery
BUILD TEST PRODUCTION
Continuous Deployment
BUILD TEST
PRODUCTION
DEPLOY
RELEASE
Release and Deploy are decoupled
● Changes in Production are incremental -> Less risky
● Bug Fixes are the sole responsibility of the Engineers
Engineering Business
Continuous Deployment
BUILD TEST
PRODUCTION
DEPLOY
RELEASE
Feature Toggles allow decoupling Release from Deployment
Also helpful for:
● Canary Releases (release features to subset of users)
● A/B Tests
Engineering Business
Continuous Deployment
BUILD TEST PRODUCTION
Continuous Deployment
Limitations:
➔ Legal & Regulatory
➔ Distribution (App Stores!)
➔ Not suitable for critical software
Q&A

More Related Content

PDF
Tech Talk #5 : Apply CI tools in iOS development - Trương Minh Khôi
PPT
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên
PPTX
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
PDF
Webinar - Unbox GitLab CI/CD
PDF
カエルと実践する CI/CD CI 編
PDF
Trunk-Based Development
PDF
猿でもわかる CI/CD
PDF
No more video loss - Alex Rivkin, Motorola Solutions
Tech Talk #5 : Apply CI tools in iOS development - Trương Minh Khôi
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Webinar - Unbox GitLab CI/CD
カエルと実践する CI/CD CI 編
Trunk-Based Development
猿でもわかる CI/CD
No more video loss - Alex Rivkin, Motorola Solutions

What's hot (20)

PDF
カエルと実践する CI/CD CD 編
PDF
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
PPTX
Spring Boot & Spring Cloud on k8s and PCF
PPTX
Cloud Native CI/CD with Spring Cloud Pipelines
PDF
Docker from a team perspective
PDF
Docker at MoneyBird
PPTX
PDF
Pipeline as code for your infrastructure as Code
PDF
Terraform GitOps on Codefresh
PDF
Delivery at Scale
PPTX
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
PDF
GitOps is IaC done right
PDF
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
PDF
Debugging Effectively in the Cloud - Felipe Fidelix - Presentation at eZ Con...
PDF
The Evolving Role of Build Engineering in Managing Open Source
PDF
GraalVM: Run Programs Faster Everywhere
PDF
gopaddle-meetup
ODP
Deploying your SaaS stack OnPrem
PPTX
Why You Need to Stop Using "The" Staging Server
カエルと実践する CI/CD CD 編
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Spring Boot & Spring Cloud on k8s and PCF
Cloud Native CI/CD with Spring Cloud Pipelines
Docker from a team perspective
Docker at MoneyBird
Pipeline as code for your infrastructure as Code
Terraform GitOps on Codefresh
Delivery at Scale
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
GitOps is IaC done right
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Debugging Effectively in the Cloud - Felipe Fidelix - Presentation at eZ Con...
The Evolving Role of Build Engineering in Managing Open Source
GraalVM: Run Programs Faster Everywhere
gopaddle-meetup
Deploying your SaaS stack OnPrem
Why You Need to Stop Using "The" Staging Server
Ad

Viewers also liked (17)

PDF
Vanvasa resort gallery
PPT
Presentation - Automated Variable Weighting in k-Means Type Clustering
PPTX
Socialbakers launching Analytics for Vkontakte
PPTX
Behind the Social at PBS' Largest Content Provider
PDF
Alternative Methods for Qualifying EEE Parts for CubeSats
PDF
Ocean | idea pitch 2011
PDF
Hunches, Instincts, and Trusting Your Gut (Warm Gun 2014)
PPTX
البرمجة (2) - اللقاء الافتراضي الثاني
PPTX
10 Benefits of Chiropractic Care for the Elderly
DOCX
40 eu e dois amigos estávamos pescando peixes
PDF
Facts About The Future Of Enterprise Mobile Apps You Need To Know
PDF
The economic value of grouse hunting in the UK
PPTX
要求開発を補完する現状分析
PDF
Recorte Web - SD - Young lions Cannes
PPTX
Digitalisaatio - päättäjän näkökulma
PDF
Introduction to the science of happiness at work
PPTX
Agrotecnia 3 propagacion sexual
Vanvasa resort gallery
Presentation - Automated Variable Weighting in k-Means Type Clustering
Socialbakers launching Analytics for Vkontakte
Behind the Social at PBS' Largest Content Provider
Alternative Methods for Qualifying EEE Parts for CubeSats
Ocean | idea pitch 2011
Hunches, Instincts, and Trusting Your Gut (Warm Gun 2014)
البرمجة (2) - اللقاء الافتراضي الثاني
10 Benefits of Chiropractic Care for the Elderly
40 eu e dois amigos estávamos pescando peixes
Facts About The Future Of Enterprise Mobile Apps You Need To Know
The economic value of grouse hunting in the UK
要求開発を補完する現状分析
Recorte Web - SD - Young lions Cannes
Digitalisaatio - päättäjän näkökulma
Introduction to the science of happiness at work
Agrotecnia 3 propagacion sexual
Ad

Similar to Continuous Delivery @ Codemotion (20)

PPTX
Snowflake Automated Deployments / CI/CD Pipelines
PDF
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
PDF
Prepare to defend thyself with Blue/Green
ODP
Continuous Delivery of (y)our infrastructure.
PDF
Delivery Pipelines as a First Class Citizen @deliverAgile2019
PDF
Distributed and Scalable JMeter
PPTX
Creating a reasonable project boilerplate
PDF
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
PDF
Distributed Versioning Tools, BeJUG 2010
PDF
Kubernetes Multi-cluster without Federation - Kubecon EU 2018
PDF
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
PDF
Voxxed Banff 2018 : Containers & Integration tests
PDF
Craftsmanship in Computational Work
PPTX
Upgrade Kubernetes the boring way
ODP
Continous Delivery of your Infrastructure
PDF
Achieving Full Stack DevOps at Colonial Life
PDF
Kafka Summit SF 2017 - Riot's Journey to Global Kafka Aggregation
PDF
Functional IoT: Hardware and Platform
PDF
Continuous Deployment: Beyond Continuous Delivery
PDF
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
Snowflake Automated Deployments / CI/CD Pipelines
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
Prepare to defend thyself with Blue/Green
Continuous Delivery of (y)our infrastructure.
Delivery Pipelines as a First Class Citizen @deliverAgile2019
Distributed and Scalable JMeter
Creating a reasonable project boilerplate
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
Distributed Versioning Tools, BeJUG 2010
Kubernetes Multi-cluster without Federation - Kubecon EU 2018
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
Voxxed Banff 2018 : Containers & Integration tests
Craftsmanship in Computational Work
Upgrade Kubernetes the boring way
Continous Delivery of your Infrastructure
Achieving Full Stack DevOps at Colonial Life
Kafka Summit SF 2017 - Riot's Journey to Global Kafka Aggregation
Functional IoT: Hardware and Platform
Continuous Deployment: Beyond Continuous Delivery
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert

Recently uploaded (20)

PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Transform Your Business with a Software ERP System
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Introduction to Artificial Intelligence
PDF
medical staffing services at VALiNTRY
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
history of c programming in notes for students .pptx
PDF
System and Network Administration Chapter 2
PDF
top salesforce developer skills in 2025.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Digital Strategies for Manufacturing Companies
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Which alternative to Crystal Reports is best for small or large businesses.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Transform Your Business with a Software ERP System
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Introduction to Artificial Intelligence
medical staffing services at VALiNTRY
Operating system designcfffgfgggggggvggggggggg
wealthsignaloriginal-com-DS-text-... (1).pdf
Wondershare Filmora 15 Crack With Activation Key [2025
history of c programming in notes for students .pptx
System and Network Administration Chapter 2
top salesforce developer skills in 2025.pdf
Design an Analysis of Algorithms I-SECS-1021-03
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
VVF-Customer-Presentation2025-Ver1.9.pptx
Odoo Companies in India – Driving Business Transformation.pdf
Nekopoi APK 2025 free lastest update
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Digital Strategies for Manufacturing Companies
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)

Continuous Delivery @ Codemotion