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
● ~450 employees
● 12 World Wide locations
Continuous Delivery:
Why bother?
Faster development, delivery and feedback
makes our clients and us happier.
The “us” alone is worth it.
Continuous Delivery:
Why bother?
Better suited product
Responsiveness
Less waste
Higher quality
Background: RTB Project
● ~1.5 years
● ~4 developers
● ~Dozens of paying clients
● ~50 servers (AWS)
● ~1.5M requests per minute
● ~7ms average response time
● ~99.9% availability
● ~5-10 deployments / week
How?
1.
The Obvious
● Single branch
● 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
Be Suspicious of:
● Random data tests
● Asynchronous tests
● Integration tests
4.
Master Is Always
Shippable
On every commit? Not Quite:
Use GitHub Pull Requests
“Merge” == Build and Deploy
credit: tal.salmona@kenshoo.com
5.
Rigorous Code Reviews
● Remember “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)
10.
Own It
Constantly check builds
Constantly collect feedback
Constantly check monitors
Answer the phone at 3am
10.
Own It
That’s It.
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 (extended)
PDF
Using Crowdsourced Testing to Turbocharge your Development Team
PPTX
How We Build Confidence with Continuous Integration and Automated Testing
PDF
QA Strategies for Testing Legacy Web Apps
PPTX
Bootstrapping Quality
PPTX
Continuous integration
PPTX
TFS Build - Continuous Integration
PPTX
CI with TFS
Continuous Delivery in Practice (extended)
Using Crowdsourced Testing to Turbocharge your Development Team
How We Build Confidence with Continuous Integration and Automated Testing
QA Strategies for Testing Legacy Web Apps
Bootstrapping Quality
Continuous integration
TFS Build - Continuous Integration
CI with TFS

What's hot (20)

PDF
Devops e a nova cultura - TDC Florianopolis 2015
ZIP
Introduction To Continuous Integration
PDF
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
PDF
Microservices Architecture: Nirvana or Nightmare
PDF
Sencha Roadshow 2017: What's New in Sencha Test
PDF
Learn Key Insights from The State of Web Application Testing Research Report
PPTX
Software development terminology
PDF
Continuous Integration
PDF
Continuous Integration - What even is it?
PDF
Continuous Integration at T3CON08
PDF
Continuous Integration 101
PPTX
Continuous Delivery With Team Foundation Server
PDF
Test driven development_continuous_integration
PDF
Continuous delivery in Qbon
PPTX
How to write better tests with Test Driven Development
ODP
Enterprise Workflows When You Aren't Enterprise
PPTX
Domenico Musto "Continuous Delivery Made Possible"
PPT
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
PDF
Simple Continous Integration
Devops e a nova cultura - TDC Florianopolis 2015
Introduction To Continuous Integration
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Microservices Architecture: Nirvana or Nightmare
Sencha Roadshow 2017: What's New in Sencha Test
Learn Key Insights from The State of Web Application Testing Research Report
Software development terminology
Continuous Integration
Continuous Integration - What even is it?
Continuous Integration at T3CON08
Continuous Integration 101
Continuous Delivery With Team Foundation Server
Test driven development_continuous_integration
Continuous delivery in Qbon
How to write better tests with Test Driven Development
Enterprise Workflows When You Aren't Enterprise
Domenico Musto "Continuous Delivery Made Possible"
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
Simple Continous Integration
Ad

Similar to Continuous delivery in practice (public) (20)

PDF
MeetingPoint 2015 - Swimming upstream in the container revolution
KEY
Continuous Deployment
PDF
Continuous integration at CartoDB March '16
PDF
Continuous Delivery for Front-End Engineers
PPTX
Continuously delivering software to big brands (fullscreen edition)
PDF
Testing in a continuous delivery environment
PDF
Continuous Delivery Distilled
PDF
NextBuild 2015 - Swimming upstream in the container revolution
PDF
Swimming upstream in the container revolution
PDF
Software Development 2020 - Swimming upstream in the container revolution
PPTX
How to deploy with confidence
PDF
Strong practices for rails applications continuous delivery
PDF
Continuous Integration as a Development Team’s Way of Life
PDF
STAQ Development Manual (Redacted)
PPT
Continuous Deployment
PPTX
Entaggle: an Agile Software Development Case Study
PDF
Continuous delivery
PPT
Continuous deployment steve povilaitis
PDF
Fine-Tuning of Agile Development
PDF
Slides from "Taking an Holistic Approach to Product Quality"
MeetingPoint 2015 - Swimming upstream in the container revolution
Continuous Deployment
Continuous integration at CartoDB March '16
Continuous Delivery for Front-End Engineers
Continuously delivering software to big brands (fullscreen edition)
Testing in a continuous delivery environment
Continuous Delivery Distilled
NextBuild 2015 - Swimming upstream in the container revolution
Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolution
How to deploy with confidence
Strong practices for rails applications continuous delivery
Continuous Integration as a Development Team’s Way of Life
STAQ Development Manual (Redacted)
Continuous Deployment
Entaggle: an Agile Software Development Case Study
Continuous delivery
Continuous deployment steve povilaitis
Fine-Tuning of Agile Development
Slides from "Taking an Holistic Approach to Product Quality"
Ad

Recently uploaded (20)

PDF
PTS Company Brochure 2025 (1).pdf.......
PPT
Introduction Database Management System for Course Database
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Transform Your Business with a Software ERP System
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Introduction to Artificial Intelligence
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
System and Network Administraation Chapter 3
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
AI in Product Development-omnex systems
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PTS Company Brochure 2025 (1).pdf.......
Introduction Database Management System for Course Database
ManageIQ - Sprint 268 Review - Slide Deck
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Transform Your Business with a Software ERP System
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Introduction to Artificial Intelligence
Operating system designcfffgfgggggggvggggggggg
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
System and Network Administraation Chapter 3
Which alternative to Crystal Reports is best for small or large businesses.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
AI in Product Development-omnex systems
ISO 45001 Occupational Health and Safety Management System
2025 Textile ERP Trends: SAP, Odoo & Oracle

Continuous delivery in practice (public)