SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Delivery at Scale
Manu Cupcic and Adrian Perreau
Scale 
● > 38 PB on our HDFS 
● > 1 billion ad impressions per day 
● > 5000 servers world wide
cost of change 
number of devs 
The problem
Once upon a time
Single C# Repository
Build on local machines
Build on local machines
Build on local machines
Continuous Integration??
Running applications
No Testing Culture
Weekly Merges 
20 engineers 
50 engineers
Weekly Merges: Disaster! 
140 engineers
First attempt 
at fixing
Bring in the horse power
Internal Open Source Model
Splitting the Repository
Hmmmm… NuGets!
Problems
Repositories everywhere 
2012 => 33 repositories 
2013 => 160+ repositories
Spaghetti and NuGets 
criteo.frontend 
criteo.display 
criteo.cookies 
criteo.display 
common.utils 
criteo.serve 
criteo.bidding 
criteo.rendering criteo.objects criteo.urls 
criteo.sql 
criteo.data 
criteo.banners 
criteo.memcache 
flash 
criteo.biere
Repository Ownership 
All repos to be owned by a team 
Merge requests for repos you don’t own
Component Teams
Conway’s Vengeance 
“Organizations which design 
systems are constrained to 
produce designs which are copies 
of the communication structures of 
these organizations.” 
Teams dealt with unclear 
interfaces, animosity grew 
stronger.
Propagating changes
SOX compliance (an example) 
Required updating the SDK (lowest level repository) 
Program Manager full time for over one month 
Some TLAs were 5 SDK versions behind
Release problem 
Code Freeze during peak season: 
Development continued 
When code unfroze: 
One month worth of code to integrate 
Took 5 months to release again
It wasn’t scaling! 
Team had almost doubled 
TLAs could take over a 
year to release next time 
We could lose our ability 
to release forever
So why did we fail ? 
ae64ca3 
4567a81 
47ac581 f478ff3 
57d21a9 
9aad4cb 
71da3b5 
developers owners of application
Integrate early 
developers 
4567a81 57d21a9 f478ff3 9aad4cb 71da3b5 47ac581
Trunk based development
Trunk based development
TBD is a real pain... 
“Branch by Abstraction" is a technique for making a large-scale 
change to a software system in gradual way that 
allows you to release the system regularly while the 
change is still in-progress. 
Martin Fowler
But we love it
What did it take ?
Build infrastructure 
Virtual team for 6 months. 
Afterwards, team became 
permanent.
Killing the NuGet lag 
● Move every git repository to the new code review tool 
● Revert to the last version in production 
● Build master continuously and show progress 
● Deploy in preproduction then production
Test plans progress
Our setup 
in great (technical) details
Code reviews with gerrit 
M 
O 
A 
B
The MOAB 
... 
... 
... 
Building and publishing project 70783/70784 : XXX ... [OK] 
Building and publishing project 70784/70784 : XXX.UTest... [OK] 
70784 projects successfully built (100.0 %). 
10:09:12 cbs assembly-set update --moabId 13998 
assemblyset.json written. 
10:09:20 cbs export 
Build 6a306a43dd147cd6a6fcacbf40e20b25f3f69845 exported. 
10:10:23 cbs assembly-set upload 
Assemblyset pushed to git@git.corp.criteo.com:qa/moab.git 
10:10:31 cbs tag HEAD build/current
The MOAB pipeline
The sandboxes 
a datacenter 
a sandbox
How we deploy 
datacenter 
1. scp 
2. bittorrent
How we deploy
Automatic metrics checks
cost of change 
number of devs * 
Conclusion 
* including 5% working full time on engineering tools
We’re not the only ones
Mandatory “we’re hiring” slide
Questions ?

Contenu connexe

Tendances

Real Agile: Continuous Delivery with HuskyCode's Foresee Project
Real Agile: Continuous Delivery with HuskyCode's Foresee ProjectReal Agile: Continuous Delivery with HuskyCode's Foresee Project
Real Agile: Continuous Delivery with HuskyCode's Foresee Project
Theerapol Muangyoung
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
amscanne
 

Tendances (20)

CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlc
 
Real Agile: Continuous Delivery with HuskyCode's Foresee Project
Real Agile: Continuous Delivery with HuskyCode's Foresee ProjectReal Agile: Continuous Delivery with HuskyCode's Foresee Project
Real Agile: Continuous Delivery with HuskyCode's Foresee Project
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.js
 
Continuous integrations - Basics
Continuous integrations - BasicsContinuous integrations - Basics
Continuous integrations - Basics
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
 
GitHub Pull Request Builder for Drupal
GitHub Pull Request Builder for DrupalGitHub Pull Request Builder for Drupal
GitHub Pull Request Builder for Drupal
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26
CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26
CNCF: Cross-cloud CI v1.0.0 Dashboard Release 2018-01-26
 
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc KiênTech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên
 
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
 
TDD with Python and App Engine
TDD with Python and App EngineTDD with Python and App Engine
TDD with Python and App Engine
 
Continuous Delivery @ Codemotion
Continuous Delivery @ Codemotion Continuous Delivery @ Codemotion
Continuous Delivery @ Codemotion
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cd
 
CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018
CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018
CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Henge
HengeHenge
Henge
 
Devops | CICD Pipeline
Devops | CICD PipelineDevops | CICD Pipeline
Devops | CICD Pipeline
 
Serving Pull Requests with Jenkins
Serving Pull Requests with JenkinsServing Pull Requests with Jenkins
Serving Pull Requests with Jenkins
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
 

En vedette

En vedette (17)

Agilar - When it comes to agility, let’s do it together
Agilar - When it comes to agility, let’s do it togetherAgilar - When it comes to agility, let’s do it together
Agilar - When it comes to agility, let’s do it together
 
Innovation culture
Innovation cultureInnovation culture
Innovation culture
 
Undercover Coach: Agente del cambio encubierto
Undercover Coach: Agente del cambio encubiertoUndercover Coach: Agente del cambio encubierto
Undercover Coach: Agente del cambio encubierto
 
Another model to team appraisals
Another model to team appraisalsAnother model to team appraisals
Another model to team appraisals
 
Agilar - Cuando se trate de agilidad, estaremos para acompañarte
Agilar - Cuando se trate de agilidad, estaremos para acompañarteAgilar - Cuando se trate de agilidad, estaremos para acompañarte
Agilar - Cuando se trate de agilidad, estaremos para acompañarte
 
Culture Accommodating to Physical Space
Culture Accommodating to Physical SpaceCulture Accommodating to Physical Space
Culture Accommodating to Physical Space
 
How not to scale agile
How not to scale agileHow not to scale agile
How not to scale agile
 
7 Techniques for change management
7 Techniques for change management7 Techniques for change management
7 Techniques for change management
 
SCRUM
SCRUMSCRUM
SCRUM
 
Take the Red Pill: How Criteo revamped its software development process
Take the Red Pill: How Criteo revamped its software development processTake the Red Pill: How Criteo revamped its software development process
Take the Red Pill: How Criteo revamped its software development process
 
INCEPTION DECK
INCEPTION DECKINCEPTION DECK
INCEPTION DECK
 
Conference Agile Spain 2013 - Formando una tribu
Conference Agile Spain 2013 - Formando una tribuConference Agile Spain 2013 - Formando una tribu
Conference Agile Spain 2013 - Formando una tribu
 
Bridging the Management Gap
Bridging the Management GapBridging the Management Gap
Bridging the Management Gap
 
Why agile?
Why agile?Why agile?
Why agile?
 
Agile in Vueling
Agile in Vueling Agile in Vueling
Agile in Vueling
 
Algunas lecciones aprendidas en la transformación de una compañía aérea
Algunas lecciones aprendidas en la transformación de una compañía aéreaAlgunas lecciones aprendidas en la transformación de una compañía aérea
Algunas lecciones aprendidas en la transformación de una compañía aérea
 
El arte de dar feedback (cnv)
El arte de dar feedback  (cnv)El arte de dar feedback  (cnv)
El arte de dar feedback (cnv)
 

Similaire à Delivery at Scale

Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Atlassian
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
DBmaestro - Database DevOps
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
Vladimir Bakhov
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
Simplilearn
 

Similaire à Delivery at Scale (20)

Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
 
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoAgile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
The challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automationThe challenges and pitfalls of database deployment automation
The challenges and pitfalls of database deployment automation
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
 
Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at Dashlane
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
 
Continuous integration at CartoDB
Continuous integration at CartoDBContinuous integration at CartoDB
Continuous integration at CartoDB
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
Accelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUpAccelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUp
 

Dernier

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Dernier (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
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
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

Delivery at Scale