SlideShare uma empresa Scribd logo
1 de 23
Running CI at scale with containers at PayPal
Sathiya Narayanan
© 2015 PayPal Inc. All rights reserved. Confidential and proprietary. 2
At PayPal, we take CI seriously
©2015 PayPal Inc. Confidential and proprietary. 3
o One Ginormous Jenkins Instance, customized for
PayPal
o 40,000 runnable jobs
o 24,000 builds run each day on Single Instance
o Stack: Java, Node, Python, C++
o CD : UnitTest, Static analysis and code coverage, &
deployments
o One Jenkins master with a pool of a hundred
Jenkins slaves
o Custom build system for 50 MLOC in <1 Min
Single Jenkins instance
One Giant Jenkins
Butler!
©2015 PayPal Inc. Confidential and proprietary. 4
o SPOF
o Scalability
o Change Management
o No freedom for users
o Inefficient resource management
o Plugins don’t scale
Limitations with single Jenkins instance
Too much load!
©2015 PayPal Inc. Confidential and proprietary. 5
o 1:1 model
o Individual VMs running Jenkins for each Application
o 2,500+VMs in use
o Each Jenkins instance would have 2 executor on
master to perform builds
o Freedom for users
Users loved it!
Dedicated VM for each Jenkins Instance
Jenkins on Mesos
o Light weight
o Long running task
o Marathon scheduler
©2015 PayPal Inc. Confidential and proprietary. 6
Jenkins Master
o Provisioned on demand with Jenkins
Mesos plugin
o Flavors of slaves based on the application
stack
Jenkins slave
©2015 PayPal Inc. Confidential and proprietary. 7
Optimized Resource Utilization with Mesos
©2015 PayPal Inc. Confidential and proprietary. 8
Operating cost reduced 10X times
After Mesos
o ~2400 CPU’s,
o 18 TB,
o 7.2 TB RAM
Before Mesos
o ~ 24,000 CPU’s,
o 180 TB Disk,
o 54 TB RAM
©2015 PayPal Inc. Confidential and proprietary. 9
After:
~2400 CPU’s, 18 TB, 7.2 TB RAM
~300K
2.7 million saving could buy:
- A personal Jet for GPI
10X Savings
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
Recovery was slow without Mesos
©2015 PayPal Inc. Confidential and proprietary. 10
1
0
After:
~2400 CPU’s, 18 TB, 7.2 TB RAM
~300K
2.7 million saving could buy:
- A personal Jet for GPI
10X Savings
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
Instant Recovery with Mesos
©2015 PayPal Inc. Confidential and proprietary. 11
After:
~2400 CPU’s, 18 TB, 7.2 TB RAM
~300K
2.7 million saving could buy:
- A personal Jet for GPI
10X Savings
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
Our workload was too much for Marathon
©2015 PayPal Inc. Confidential and proprietary. 12
o Zero outages and no customer impact.
o Aurora was more stable
o Aurora was able to scale to more than 5,000 jobs
Replaced Marathon with Aurora
©2015 PayPal Inc. Confidential and proprietary. 13
After:
~2400 CPU’s, 18 TB, 7.2 TB RAM
~300K
2.7 million saving could buy:
- A personal Jet for GPI
10X Savings
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
13
CIAPI
Aurora
Mesos Master
Mesos Cluster
Swift / Object
Storage
Zookeeper
Jenkins Master Jenkins Slave
Nginx
Highly available setup
Devxdash
Challenges
©2015 PayPal Inc. Confidential and proprietary. 14
o Inconsistent build environments between user
workstation and CI build system
o Tasks stepping onto each other
o Providing conflicting tool set for different
technology stacks
o Different DevOps teams/applications had their own
Mesos cluster
o Slower rollout of new tools to the build environment
o Inconsistent build environments within the CI build
system
Why Docker?
o Task isolation
o Cloud Native
o Eliminates the dependency on the host
o Reproducibility
o Portability
o Immutability
o Homogenous cluster
©2015 PayPal Inc. Confidential and proprietary. 15
©2015 PayPal Inc. Confidential and proprietary. 16
10X Savings
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
Dockerized Jenkins Masters
o Immutable containers for
consistency
o Eliminates the need to have
tools installed on slave
o Provides task isolation
o Other work loads can co-exist in
Mesos cluster
o Easy to cater to conflicting OS / toolset
requirements in a polyglot environment
o Easy to roll out updates
o Other work loads can co-exist in Mesos cluster
o Users can bake their own build environment
Dockerized Jenkins Slaves
Jenkins with Docker
©2015 PayPal Inc. Confidential and proprietary. 17
10X Savings
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
Adoption to Docker containers
BC [ Before Containers ] AD [ After Docker ]
SSH key / Tokens /
Maven credentials
Stored in local disk Injected only during build
time and rotating them
Toolsets like JDK, Maven
etc.
Installed in host Installed within Docker
container
©2015 PayPal Inc. Confidential and proprietary. 18
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
What is state for Jenkins master ?
o Jenkins war
o Plugins
o Global configuration
o Job configuration
o Build history
o Console output
o Reports like code coverage, test result trend etc.
o Archived artifacts
©2015 PayPal Inc. Confidential and proprietary. 19
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
Backing up Jenkins state
Superviso
rd
Archive
the
directory
Encrypt
the data
Store in
cloud storage
©2015 PayPal Inc. Confidential and proprietary. 20
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
When Jenkins Master container moves to another VM
Untar the
files into
Jenkins
home
Decrypt
the
backup
Check if a backup
exists in cloud
storage
Provisioning
script [Entry
point for Docker]
©2015 PayPal Inc. Confidential and proprietary. 21
10X Savings
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
Use case - Maven build
Total build time - 4 minutes
Persisting workspace for subsequent builds
Decreased build time
Source code
[Clone]
Artifacts
Time taken 0m27.618s 2m56.000s
Number of files 10570 4456
Total Size 158 M 173 M
©2015 PayPal Inc. Confidential and proprietary. 22
10X Savings
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million
CIAAS with Docker Architecture
Public cloud
Private cloud
©2015 PayPal Inc. Confidential and proprietary. 23
After:
~2400 CPU’s, 18 TB, 7.2 TB RAM
~300K
2.7 million saving could buy:
- A personal Jet for GPI
Before:
~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM
~3 Million

Mais conteúdo relacionado

Mais procurados

Xen Project CI for OpenStack Overview
Xen Project CI for OpenStack OverviewXen Project CI for OpenStack Overview
Xen Project CI for OpenStack OverviewThe Linux Foundation
 
Head First to Container&Kubernetes
Head First to Container&KubernetesHead First to Container&Kubernetes
Head First to Container&KubernetesHungWei Chiu
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in KubernetesMinhan Xia
 
Container Orchestration from Theory to Practice
Container Orchestration from Theory to PracticeContainer Orchestration from Theory to Practice
Container Orchestration from Theory to PracticeDocker, Inc.
 
DockerCon EU 2015: Docker Networking Deep Dive
DockerCon EU 2015: Docker Networking Deep DiveDockerCon EU 2015: Docker Networking Deep Dive
DockerCon EU 2015: Docker Networking Deep DiveDocker, Inc.
 
Managing ceph through_oVirt_using_Cinder
Managing ceph through_oVirt_using_CinderManaging ceph through_oVirt_using_Cinder
Managing ceph through_oVirt_using_CinderMaor Lipchuk
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
Infinit filesystem, Reactor reloaded
Infinit filesystem, Reactor reloadedInfinit filesystem, Reactor reloaded
Infinit filesystem, Reactor reloadedInfinit
 
Kubernetes networking
Kubernetes networkingKubernetes networking
Kubernetes networkingSim Janghoon
 
IPTABLES Introduction
IPTABLES IntroductionIPTABLES Introduction
IPTABLES IntroductionHungWei Chiu
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance AnalysisBrendan Gregg
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerJeff Anderson
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...Docker, Inc.
 
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Michelle Antebi
 
Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)HungWei Chiu
 

Mais procurados (20)

The Open vSwitch and OVN Projects
The Open vSwitch and OVN ProjectsThe Open vSwitch and OVN Projects
The Open vSwitch and OVN Projects
 
Xen Project CI for OpenStack Overview
Xen Project CI for OpenStack OverviewXen Project CI for OpenStack Overview
Xen Project CI for OpenStack Overview
 
Secure Containers with EPT Isolation
Secure Containers with EPT IsolationSecure Containers with EPT Isolation
Secure Containers with EPT Isolation
 
Head First to Container&Kubernetes
Head First to Container&KubernetesHead First to Container&Kubernetes
Head First to Container&Kubernetes
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in Kubernetes
 
Container Orchestration from Theory to Practice
Container Orchestration from Theory to PracticeContainer Orchestration from Theory to Practice
Container Orchestration from Theory to Practice
 
DockerCon EU 2015: Docker Networking Deep Dive
DockerCon EU 2015: Docker Networking Deep DiveDockerCon EU 2015: Docker Networking Deep Dive
DockerCon EU 2015: Docker Networking Deep Dive
 
64-bit ARM Unikernels on uKVM
64-bit ARM Unikernels on uKVM64-bit ARM Unikernels on uKVM
64-bit ARM Unikernels on uKVM
 
Managing ceph through_oVirt_using_Cinder
Managing ceph through_oVirt_using_CinderManaging ceph through_oVirt_using_Cinder
Managing ceph through_oVirt_using_Cinder
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Infinit filesystem, Reactor reloaded
Infinit filesystem, Reactor reloadedInfinit filesystem, Reactor reloaded
Infinit filesystem, Reactor reloaded
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
 
Kubernetes networking
Kubernetes networkingKubernetes networking
Kubernetes networking
 
IPTABLES Introduction
IPTABLES IntroductionIPTABLES Introduction
IPTABLES Introduction
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support Engineer
 
OpenStack on AArch64
OpenStack on AArch64OpenStack on AArch64
OpenStack on AArch64
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...
 
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
 
Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)
 

Destaque

SWBC Lending Solutions_Brochure 2016
SWBC Lending Solutions_Brochure 2016SWBC Lending Solutions_Brochure 2016
SWBC Lending Solutions_Brochure 2016Kymberly Sims
 
Comarch Paiement Mobile
Comarch Paiement MobileComarch Paiement Mobile
Comarch Paiement MobileComarch SAS
 
Slide of the Month - Payment cards in Nigeria
Slide of the Month - Payment cards in NigeriaSlide of the Month - Payment cards in Nigeria
Slide of the Month - Payment cards in NigeriaMarc Zander
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlEd Leighton-Dick
 
CI/CD/DevOps 使用 travis ci 服務
CI/CD/DevOps 使用 travis ci 服務CI/CD/DevOps 使用 travis ci 服務
CI/CD/DevOps 使用 travis ci 服務Yu Lung Shao
 
Big data and the Future of Money (World Big Data Congress 2013)
Big data and the Future of Money (World Big Data Congress 2013)Big data and the Future of Money (World Big Data Congress 2013)
Big data and the Future of Money (World Big Data Congress 2013)Daniel Austin
 
PayPalアカウントを使った便利で安心なプラットフォーム運用
PayPalアカウントを使った便利で安心なプラットフォーム運用PayPalアカウントを使った便利で安心なプラットフォーム運用
PayPalアカウントを使った便利で安心なプラットフォーム運用Junichi Okamura
 
Online Security and Payment System - PayPal
Online Security and Payment System - PayPalOnline Security and Payment System - PayPal
Online Security and Payment System - PayPalgaschan
 
Iot_algyan_hands-on_20161129
Iot_algyan_hands-on_20161129Iot_algyan_hands-on_20161129
Iot_algyan_hands-on_20161129Junichi Okamura
 
PayPal MasterBrand Guidelines
PayPal MasterBrand GuidelinesPayPal MasterBrand Guidelines
PayPal MasterBrand GuidelinesBill Smith
 
Tokyo nodefestival workshop_20161112
Tokyo nodefestival workshop_20161112Tokyo nodefestival workshop_20161112
Tokyo nodefestival workshop_20161112Junichi Okamura
 
The Future of Payments: Next-Gen Payment Processing Technologies
The Future of Payments: Next-Gen Payment Processing TechnologiesThe Future of Payments: Next-Gen Payment Processing Technologies
The Future of Payments: Next-Gen Payment Processing TechnologiesDustin Lichey, PRM
 
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache MesosCI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache MesosCarlos Sanchez
 
Introducing Apache Mesos
Introducing Apache MesosIntroducing Apache Mesos
Introducing Apache MesosMatthias Furrer
 
Accelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft AzureAccelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft AzurePerficient, Inc.
 
Most promising current and future payment technologies | SG Analytics
Most promising current and future payment technologies | SG AnalyticsMost promising current and future payment technologies | SG Analytics
Most promising current and future payment technologies | SG AnalyticsSG Analytics
 

Destaque (20)

SWBC Lending Solutions_Brochure 2016
SWBC Lending Solutions_Brochure 2016SWBC Lending Solutions_Brochure 2016
SWBC Lending Solutions_Brochure 2016
 
Comarch Paiement Mobile
Comarch Paiement MobileComarch Paiement Mobile
Comarch Paiement Mobile
 
Slide of the Month - Payment cards in Nigeria
Slide of the Month - Payment cards in NigeriaSlide of the Month - Payment cards in Nigeria
Slide of the Month - Payment cards in Nigeria
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source Control
 
CI/CD/DevOps 使用 travis ci 服務
CI/CD/DevOps 使用 travis ci 服務CI/CD/DevOps 使用 travis ci 服務
CI/CD/DevOps 使用 travis ci 服務
 
Big data and the Future of Money (World Big Data Congress 2013)
Big data and the Future of Money (World Big Data Congress 2013)Big data and the Future of Money (World Big Data Congress 2013)
Big data and the Future of Money (World Big Data Congress 2013)
 
PayPalアカウントを使った便利で安心なプラットフォーム運用
PayPalアカウントを使った便利で安心なプラットフォーム運用PayPalアカウントを使った便利で安心なプラットフォーム運用
PayPalアカウントを使った便利で安心なプラットフォーム運用
 
Online Security and Payment System - PayPal
Online Security and Payment System - PayPalOnline Security and Payment System - PayPal
Online Security and Payment System - PayPal
 
Iot_algyan_hands-on_20161129
Iot_algyan_hands-on_20161129Iot_algyan_hands-on_20161129
Iot_algyan_hands-on_20161129
 
PayPal MasterBrand Guidelines
PayPal MasterBrand GuidelinesPayPal MasterBrand Guidelines
PayPal MasterBrand Guidelines
 
Tokyo nodefestival workshop_20161112
Tokyo nodefestival workshop_20161112Tokyo nodefestival workshop_20161112
Tokyo nodefestival workshop_20161112
 
The Future of Payments: Next-Gen Payment Processing Technologies
The Future of Payments: Next-Gen Payment Processing TechnologiesThe Future of Payments: Next-Gen Payment Processing Technologies
The Future of Payments: Next-Gen Payment Processing Technologies
 
PayPal Case Analysis
PayPal Case AnalysisPayPal Case Analysis
PayPal Case Analysis
 
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache MesosCI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
 
The future of money
The future of moneyThe future of money
The future of money
 
Introducing Apache Mesos
Introducing Apache MesosIntroducing Apache Mesos
Introducing Apache Mesos
 
Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...
 
Accelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft AzureAccelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft Azure
 
Most promising current and future payment technologies | SG Analytics
Most promising current and future payment technologies | SG AnalyticsMost promising current and future payment technologies | SG Analytics
Most promising current and future payment technologies | SG Analytics
 
DevOps with Chef
DevOps with ChefDevOps with Chef
DevOps with Chef
 

Semelhante a Paradigm shift in CI at PayPal with Docker and Mesos

OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4OpenEBS
 
Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Matias Lespiau
 
2016-JAN-28 -- High Performance Production Databases on Ceph
2016-JAN-28 -- High Performance Production Databases on Ceph2016-JAN-28 -- High Performance Production Databases on Ceph
2016-JAN-28 -- High Performance Production Databases on CephCeph Community
 
It's Time to Debloat the Cloud with Unikraft
It's Time to Debloat the Cloud with UnikraftIt's Time to Debloat the Cloud with Unikraft
It's Time to Debloat the Cloud with UnikraftScyllaDB
 
Database as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesDatabase as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesObjectRocket
 
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per SecondAmazon Web Services
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Amazon Web Services
 
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
[WSO2Con Asia 2018] Deploying Applications in K8S and DockerWSO2
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Odinot Stanislas
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaŁukasz Piątkowski
 
Microservices using relocatable Docker containers
Microservices using relocatable Docker containersMicroservices using relocatable Docker containers
Microservices using relocatable Docker containersMauricio Garavaglia
 
Heroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyHeroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyJérémy Wimsingues
 
Disenchantment: Netflix Titus, Its Feisty Team, and Daemons
Disenchantment: Netflix Titus, Its Feisty Team, and DaemonsDisenchantment: Netflix Titus, Its Feisty Team, and Daemons
Disenchantment: Netflix Titus, Its Feisty Team, and DaemonsC4Media
 
Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Idan Atias
 
Kubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesKubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesJian-Kai Wang
 
Container Attached Storage (CAS) with OpenEBS - SDC 2018
Container Attached Storage (CAS) with OpenEBS -  SDC 2018Container Attached Storage (CAS) with OpenEBS -  SDC 2018
Container Attached Storage (CAS) with OpenEBS - SDC 2018OpenEBS
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...DynamicInfraDays
 
1 Million Writes per second on 60 nodes with Cassandra and EBS
1 Million Writes per second on 60 nodes with Cassandra and EBS1 Million Writes per second on 60 nodes with Cassandra and EBS
1 Million Writes per second on 60 nodes with Cassandra and EBSJim Plush
 
LINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE Corporation
 

Semelhante a Paradigm shift in CI at PayPal with Docker and Mesos (20)

OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4
 
Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017
 
2016-JAN-28 -- High Performance Production Databases on Ceph
2016-JAN-28 -- High Performance Production Databases on Ceph2016-JAN-28 -- High Performance Production Databases on Ceph
2016-JAN-28 -- High Performance Production Databases on Ceph
 
It's Time to Debloat the Cloud with Unikraft
It's Time to Debloat the Cloud with UnikraftIt's Time to Debloat the Cloud with Unikraft
It's Time to Debloat the Cloud with Unikraft
 
Database as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesDatabase as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on Kubernetes
 
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
(BDT323) Amazon EBS & Cassandra: 1 Million Writes Per Second
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
 
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing Aurea
 
Microservices using relocatable Docker containers
Microservices using relocatable Docker containersMicroservices using relocatable Docker containers
Microservices using relocatable Docker containers
 
Heroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyHeroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success story
 
Disenchantment: Netflix Titus, Its Feisty Team, and Daemons
Disenchantment: Netflix Titus, Its Feisty Team, and DaemonsDisenchantment: Netflix Titus, Its Feisty Team, and Daemons
Disenchantment: Netflix Titus, Its Feisty Team, and Daemons
 
Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)
 
Kubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesKubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and Services
 
Container Attached Storage (CAS) with OpenEBS - SDC 2018
Container Attached Storage (CAS) with OpenEBS -  SDC 2018Container Attached Storage (CAS) with OpenEBS -  SDC 2018
Container Attached Storage (CAS) with OpenEBS - SDC 2018
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
 
Container Days
Container DaysContainer Days
Container Days
 
1 Million Writes per second on 60 nodes with Cassandra and EBS
1 Million Writes per second on 60 nodes with Cassandra and EBS1 Million Writes per second on 60 nodes with Cassandra and EBS
1 Million Writes per second on 60 nodes with Cassandra and EBS
 
LINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native World
 

Último

Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 

Último (20)

Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 

Paradigm shift in CI at PayPal with Docker and Mesos

  • 1. Running CI at scale with containers at PayPal Sathiya Narayanan
  • 2. © 2015 PayPal Inc. All rights reserved. Confidential and proprietary. 2 At PayPal, we take CI seriously
  • 3. ©2015 PayPal Inc. Confidential and proprietary. 3 o One Ginormous Jenkins Instance, customized for PayPal o 40,000 runnable jobs o 24,000 builds run each day on Single Instance o Stack: Java, Node, Python, C++ o CD : UnitTest, Static analysis and code coverage, & deployments o One Jenkins master with a pool of a hundred Jenkins slaves o Custom build system for 50 MLOC in <1 Min Single Jenkins instance One Giant Jenkins Butler!
  • 4. ©2015 PayPal Inc. Confidential and proprietary. 4 o SPOF o Scalability o Change Management o No freedom for users o Inefficient resource management o Plugins don’t scale Limitations with single Jenkins instance Too much load!
  • 5. ©2015 PayPal Inc. Confidential and proprietary. 5 o 1:1 model o Individual VMs running Jenkins for each Application o 2,500+VMs in use o Each Jenkins instance would have 2 executor on master to perform builds o Freedom for users Users loved it! Dedicated VM for each Jenkins Instance
  • 6. Jenkins on Mesos o Light weight o Long running task o Marathon scheduler ©2015 PayPal Inc. Confidential and proprietary. 6 Jenkins Master o Provisioned on demand with Jenkins Mesos plugin o Flavors of slaves based on the application stack Jenkins slave
  • 7. ©2015 PayPal Inc. Confidential and proprietary. 7 Optimized Resource Utilization with Mesos
  • 8. ©2015 PayPal Inc. Confidential and proprietary. 8 Operating cost reduced 10X times After Mesos o ~2400 CPU’s, o 18 TB, o 7.2 TB RAM Before Mesos o ~ 24,000 CPU’s, o 180 TB Disk, o 54 TB RAM
  • 9. ©2015 PayPal Inc. Confidential and proprietary. 9 After: ~2400 CPU’s, 18 TB, 7.2 TB RAM ~300K 2.7 million saving could buy: - A personal Jet for GPI 10X Savings Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million Recovery was slow without Mesos
  • 10. ©2015 PayPal Inc. Confidential and proprietary. 10 1 0 After: ~2400 CPU’s, 18 TB, 7.2 TB RAM ~300K 2.7 million saving could buy: - A personal Jet for GPI 10X Savings Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million Instant Recovery with Mesos
  • 11. ©2015 PayPal Inc. Confidential and proprietary. 11 After: ~2400 CPU’s, 18 TB, 7.2 TB RAM ~300K 2.7 million saving could buy: - A personal Jet for GPI 10X Savings Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million Our workload was too much for Marathon
  • 12. ©2015 PayPal Inc. Confidential and proprietary. 12 o Zero outages and no customer impact. o Aurora was more stable o Aurora was able to scale to more than 5,000 jobs Replaced Marathon with Aurora
  • 13. ©2015 PayPal Inc. Confidential and proprietary. 13 After: ~2400 CPU’s, 18 TB, 7.2 TB RAM ~300K 2.7 million saving could buy: - A personal Jet for GPI 10X Savings Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million 13 CIAPI Aurora Mesos Master Mesos Cluster Swift / Object Storage Zookeeper Jenkins Master Jenkins Slave Nginx Highly available setup Devxdash
  • 14. Challenges ©2015 PayPal Inc. Confidential and proprietary. 14 o Inconsistent build environments between user workstation and CI build system o Tasks stepping onto each other o Providing conflicting tool set for different technology stacks o Different DevOps teams/applications had their own Mesos cluster o Slower rollout of new tools to the build environment o Inconsistent build environments within the CI build system
  • 15. Why Docker? o Task isolation o Cloud Native o Eliminates the dependency on the host o Reproducibility o Portability o Immutability o Homogenous cluster ©2015 PayPal Inc. Confidential and proprietary. 15
  • 16. ©2015 PayPal Inc. Confidential and proprietary. 16 10X Savings Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million Dockerized Jenkins Masters o Immutable containers for consistency o Eliminates the need to have tools installed on slave o Provides task isolation o Other work loads can co-exist in Mesos cluster o Easy to cater to conflicting OS / toolset requirements in a polyglot environment o Easy to roll out updates o Other work loads can co-exist in Mesos cluster o Users can bake their own build environment Dockerized Jenkins Slaves Jenkins with Docker
  • 17. ©2015 PayPal Inc. Confidential and proprietary. 17 10X Savings Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million Adoption to Docker containers BC [ Before Containers ] AD [ After Docker ] SSH key / Tokens / Maven credentials Stored in local disk Injected only during build time and rotating them Toolsets like JDK, Maven etc. Installed in host Installed within Docker container
  • 18. ©2015 PayPal Inc. Confidential and proprietary. 18 Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million What is state for Jenkins master ? o Jenkins war o Plugins o Global configuration o Job configuration o Build history o Console output o Reports like code coverage, test result trend etc. o Archived artifacts
  • 19. ©2015 PayPal Inc. Confidential and proprietary. 19 Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million Backing up Jenkins state Superviso rd Archive the directory Encrypt the data Store in cloud storage
  • 20. ©2015 PayPal Inc. Confidential and proprietary. 20 Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million When Jenkins Master container moves to another VM Untar the files into Jenkins home Decrypt the backup Check if a backup exists in cloud storage Provisioning script [Entry point for Docker]
  • 21. ©2015 PayPal Inc. Confidential and proprietary. 21 10X Savings Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million Use case - Maven build Total build time - 4 minutes Persisting workspace for subsequent builds Decreased build time Source code [Clone] Artifacts Time taken 0m27.618s 2m56.000s Number of files 10570 4456 Total Size 158 M 173 M
  • 22. ©2015 PayPal Inc. Confidential and proprietary. 22 10X Savings Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million CIAAS with Docker Architecture Public cloud Private cloud
  • 23. ©2015 PayPal Inc. Confidential and proprietary. 23 After: ~2400 CPU’s, 18 TB, 7.2 TB RAM ~300K 2.7 million saving could buy: - A personal Jet for GPI Before: ~ 24,000 CPU’s, 180 TB Disk, 54 TB RAM ~3 Million

Notas do Editor

  1. Varied workloads can co-exist without impacting one another We can ensure their’s isolation and the tasks are not tinkered Before containerization, it’s a painfully slow process for someone to have a new tool install for their builds – they have raise requests, we would go through testing, ensure it doesn’t result in any conflicts and push it to all the slave VMs. With containerization, the users can create their own jenkins slave docker images and use them after going through automated approval process. The containerization/individual jenkins slave docker image ensures no one else is adversely impacted.