![Page 1: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/1.jpg)
Beyond CI to Production Scale PaaS with Docker
![Page 2: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/2.jpg)
Platform Engineering @ PayPal
➢ Several thousand OpenStack servers across multiple data centers
➢ More than 3000 PayPal developers supported
➢ Thousands of application deployments performed every day
➢ 165 Million active PayPal customer accounts
➢ Presence in 203 markets and 100 currencies
➢ $235 Billion payment volume
➢ 12.5 million payment transactions every day
Boost developer productivity
Support ever increasing scale of operations
![Page 3: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/3.jpg)
Last year at DockerCon 2014…
➢ Thousands of VMs dedicated to run Jenkins! ➢ Utilization is less than 5% ☹ ➢ VMs idle most of time (no one runs CI builds frequently)
VM sprawl and poor resource utilization
➢ Polyglot application stacks (Java, C++, Node.js, Python, Scala) ➢ Different OS flavors (Ubuntu & RHEL) ➢ Software version conflicts ➢ Special hardware requirements
Build slave management and maintenance is a nightmare
![Page 4: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/4.jpg)
How PaaS Orchestrates The Docker PDLC
![Page 5: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/5.jpg)
Building & Storing Docker Images
![Page 6: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/6.jpg)
Docker Registry HA Setup
➢ Supervisord as the process manager
➢ Logrotate for registry and nginx logs
➢ Elasticsearch plugin for indexing
➢ Swift plugin for storage
➢ Basic authentication
➢ Ansible playbook for setting up the registry
➢ HA running behind F5 load balancer
➢ Docker load used to deploy the registry for the first time
➢ Swift auto-sync between data centers
Features
![Page 7: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/7.jpg)
Docker Image Index
Challenges
➢ Production firewalls block multicast clustering protocol
➢ ES sniffing timeout issues when ES nodes were unavailable
➢ ES split-brain problems with clustering
Solutions
➢ ES indexing plugin for the Docker Registry
➢ Zookeeper transport plugin for ES Python client
➢ Persisting ES index data using OpenStack Cinder
![Page 8: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/8.jpg)
Cross-datacenter View
![Page 9: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/9.jpg)
Deploying Docker Images In Production
➢ DNS-based ATS discovery per DC
➢ Header rewrite plugin
➢ Custom Cache rules
➢ Custom SSL certs
➢ ATS Ansible deployment
Features
![Page 10: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/10.jpg)
Dockerized Development Environments
➢ Building an application stack should be simple, but it’s not!
➢ Development environments are snow-flakes
➢ Development environments should be self-contained
![Page 11: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/11.jpg)
Container with Dev configuration
![Page 12: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/12.jpg)
Container with Stage configuration
![Page 13: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/13.jpg)
Demo
![Page 14: Beyond CI to Production Scale PaaS with Docker7u2psl.com5.z0.glb.qiniucdn.com/dockercon/Beyond CI to Production... · Zookeeper transport plugin for ES Python client Persisting ES](https://reader033.vdocuments.us/reader033/viewer/2022052708/5a741e6d7f8b9a0d558b91fe/html5/thumbnails/14.jpg)
Thank youAshish Hunnargikar Software Engineer @hunnarg
Mohit SoniSoftware Engineer @mosoni
#dockercon