SlideShare a Scribd company logo
Continuous Delivery
In Practice
Lessons from Kenshoo’s RTB project
Who, What, Where
Tzach Zohar:
● System Architect
● tzach.zohar@kenshoo.com
Kenshoo:
● Founded 2006
● Online Marketing Technology
● >500 employees
● 12 World Wide locations
Agenda
● Continuous Delivery: What? Why?
● RTB Project
● How: 10 Field Tested Tips
● The Process
● Appendices
Continuous Delivery:
Definition(s)
“Continuous Delivery (CD) is a design
practice …blah blah blah… Techniques such as
automated testing, continuous integration …blah
blah blah... resulting in the ability to rapidly, reliably and
repeatedly push out enhancements ...blah blah blah.”
- Wikipedia
Continuous Delivery:
Definition(s)
TL;DR
Continuous Delivery:
Definition(s)
“Continuous delivery is a set of principles
and practices to reduce the cost, time, and
risk of delivering incremental changes to
users.”
- Jez Humble
Continuous Delivery:
Definition(s)
“Continuous Delivery is a software
development discipline where you build
software in such a way that the software can
be released to production at any time”
- Martin Fowler
Continuous Delivery:
Why bother?
“Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software”
First principle of the Agile Manifesto
Continuous Delivery:
Why bother?
Better suited product
Responsiveness
Less waste
Higher quality
Simplicity
Recommended Further Reading on ThoughtWorks
Background: RTB Project
● ~1.5 years
● ~3 developers, 1 PM, 0.5 Ops (no QA)
● ~Dozens of paying clients
● ~50 servers (AWS)
● ~1.5M requests per minute
● ~7ms average response time
● ~99.9% availability
Background: RTB Project
Frontend Cluster
Highly available, high throughput ~20 node cluster
Backend
Single node,
internal APIs
FBX
Facebook RTB API
Reporting Cluster
Elastic Map Reduce (EMR)
on-demand 16-node cluster
Cassandra Cluster
Highly available, high throughput ~24 node cluster
S3
Raw traffic logs
Background: RTB Project
~5-10 deployments / week
How?
1.
The Obvious
● Single branch (details later)
● Full, Fast, Reliable coverage
● Full deployment automation
● Fast feedback
● ABCD - Always Be Continuously
Deploying
● Unit: complete functional coverage
● Integration: with external systems - thin!
● Behavioral: we use Cucumber
● Staging: verify actual server upgrade
2.
Four-Layer Test Suite
2.
Four-Layer Test Suite
Staging: verify compatibility of new build
with other components’ production builds
2.
Four-Layer Test Suite
3.
Keep Builds Stable
Do not overlook a test that “sometimes
fails”, trusting build status is crucial
3.
Keep Builds Stable
● Random data tests
● Asynchronous tests
● Integration tests
Be suspicious of:
4.
Master Is Always Shippable
On every commit? Not Quite
We follow the “GitHub Flow”:
Local Master
Local Feature Branch
Master
Feature Branch
1. pull
3. push
2.
checkout
4. Merge
4.
Master Is Always Shippable
“Merge” == Build and Deploy
credit: tal.salmona@kenshoo.com
5.
Rigorous Code Reviews
● Because “merge” means “deploy”!
● Insist on proper coverage
● Insist on code cleanliness
● Insist on consistent design
● Insist!
5.
Rigorous Code Reviews
https://github.com/tzachz/github-comment-counter
6.
Real-Time Feedback
Detect issues immediately and visually
7.
Keep Upgrade in Mind (1)
Use the “Parallel Change” pattern when
changing cross-node APIs / Data
1.
Write: old
Read: both
2.
Write: new
Read: both
3.
Write: new
Read: new
deploy deploy
8.
Keep Upgrade in Mind (2)
Verify backward compatibility in tests
9.
A/B Testing
Apply new features to a limited user-group
Measure business results per-group
(Not by branching)
9.
A/B Testing
Splitting into groups correctly is important
9.
A/B Testing
It’s easy to mess up (neglecting biases,
wrong grouping, wrong comparison
methods)
This excellent talk by LivePerson’s Shlomo
Lahav helped us a lot
10.
Own It
Constantly check builds
Constantly collect feedback
Constantly check monitors
Answer the phone at 3am
10.
Own It
That’s It.
The Process
● Greenfield? That’s easy:
○ Start with deployment and build
○ Deploy a Hello World application
○ Every new feature is test-covered
The Process (RTB)
1.
Increase Unit+Integration Coverage
Create naive deployment Automation
Create monitoring
Manual Staging tests
2.
Automated staging
Downtime eradicated
Manual (but often) deployment trigger
3.
Autopilot - deploy upon commit
~ 9 Months
~ 3 Months
Appendix A.
Partial Tool List
Testing: JUnit, Cucumber, Nose
Build / CI: Jenkins, Gradle, JaCoCo
Code Review: GitHub
Provisioning: Puppet
Deployment: Fabric, boto
Monitoring: Metrics, Graphite
Appendix B.
Are You Ready?
Unit
Coverage
> 90%?
Good
Staging
Tests?
Informative
Monitors?
Builds Are
Kept
Green?
No API
Breaking
Changes?
Rigorous
Code
Reviews?
Support
Has Your
Phone
Number?
Do You
Own it?
Not
Ready
No Yes
credit: tal.salmona@kenshoo.com
Thanks.
Questions?

More Related Content

PPTX
Continuous delivery in practice (public)
PDF
Extreme Programming - to the next-level
PDF
Fast end-to-end-tests
PPTX
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
PDF
Introduction to Automated Testing
PDF
Constinuous Integration
PPTX
Creating a continuous delivery pipeline with docker
PDF
Test driven development_continuous_integration
Continuous delivery in practice (public)
Extreme Programming - to the next-level
Fast end-to-end-tests
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to Automated Testing
Constinuous Integration
Creating a continuous delivery pipeline with docker
Test driven development_continuous_integration

What's hot (20)

PPTX
Test Driven Development & CI/CD
PPTX
Agile Testing in Enterprise: Way to transform - SQA Days 2014
PPTX
Domenico Musto "Continuous Delivery Made Possible"
PPTX
Continuous integration introduction
PDF
Trunk-Based Development and Toggling
PPTX
Continuous test automation
PPTX
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
PDF
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
PPT
Continuous deployment steve povilaitis
PDF
Manage a Complex Test Effort with Lean and Kanban
PDF
Introduction to test_driven_development
PDF
Essentielle værktøjer for det agile team
PPT
How engineering practices help business
PDF
Improve the deployment process step by step
PPT
How to Build and Maintain Quality Drupal Sites with Automated Testing
PPTX
CI/CD Overview
PPTX
Test Automation Canvas
PPT
Continuous Integration and Builds
PPTX
Tuenti Release Workflow v1.1
Test Driven Development & CI/CD
Agile Testing in Enterprise: Way to transform - SQA Days 2014
Domenico Musto "Continuous Delivery Made Possible"
Continuous integration introduction
Trunk-Based Development and Toggling
Continuous test automation
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
Continuous deployment steve povilaitis
Manage a Complex Test Effort with Lean and Kanban
Introduction to test_driven_development
Essentielle værktøjer for det agile team
How engineering practices help business
Improve the deployment process step by step
How to Build and Maintain Quality Drupal Sites with Automated Testing
CI/CD Overview
Test Automation Canvas
Continuous Integration and Builds
Tuenti Release Workflow v1.1
Ad

Similar to Continuous Delivery in Practice (extended) (20)

PDF
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
PPTX
Road to Continuous Delivery - Wix.com
PDF
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...
PDF
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
PDF
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
PDF
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
PDF
Developers Testing - Girl Code at bloomon
PDF
Continuous delivery @wcap 5-09-2013
PDF
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
PDF
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
PDF
CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...
PDF
2016 09-dev opsjourney-devopsdaysoslo
PPTX
Lean-Agile Development with SharePoint - Bill Ayers
PPTX
Continuous integration
PPTX
Introduction to Continuous Integration
PPTX
DevOps Overview in my own words
PPTX
Dev/Test scenarios in DevOps world
PPTX
Hudson
 
PDF
Continuous Integration - What even is it?
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
Road to Continuous Delivery - Wix.com
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
Developers Testing - Girl Code at bloomon
Continuous delivery @wcap 5-09-2013
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...
2016 09-dev opsjourney-devopsdaysoslo
Lean-Agile Development with SharePoint - Bill Ayers
Continuous integration
Introduction to Continuous Integration
DevOps Overview in my own words
Dev/Test scenarios in DevOps world
Hudson
 
Continuous Integration - What even is it?
Ad

Recently uploaded (20)

PDF
Nekopoi APK 2025 free lastest update
PDF
System and Network Administraation Chapter 3
PDF
medical staffing services at VALiNTRY
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
ai tools demonstartion for schools and inter college
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
top salesforce developer skills in 2025.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
System and Network Administration Chapter 2
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
AI in Product Development-omnex systems
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
Nekopoi APK 2025 free lastest update
System and Network Administraation Chapter 3
medical staffing services at VALiNTRY
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Softaken Excel to vCard Converter Software.pdf
PTS Company Brochure 2025 (1).pdf.......
ai tools demonstartion for schools and inter college
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
2025 Textile ERP Trends: SAP, Odoo & Oracle
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
VVF-Customer-Presentation2025-Ver1.9.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
ISO 45001 Occupational Health and Safety Management System
top salesforce developer skills in 2025.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administration Chapter 2
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
AI in Product Development-omnex systems
Upgrade and Innovation Strategies for SAP ERP Customers

Continuous Delivery in Practice (extended)