SlideShare uma empresa Scribd logo
1 de 32
Dockerizing Aurea
Lukasz Piatkowski, PhD
Chief Docker Architect
Matias Lespiau
Soft. Eng. Manager
Agenda
Dockerizing Aurea:
- Goals
- Results
- Technical challenges
Dockerization at Aurea
Goals
● #1 - Decrease computing expenses by
consolidation and simplification
● #2 - Improve Ops team productivity through
standardization
1 app, 1 host, 2 CPUs
1GB RAM
4x average to peak
utilization
500 containers, 1 host,
128 CPUs, 2TB RAM
1.2x average to peak
utilization
Goal #1 - decrease computing expenses
Goal #2 - standardize Ops interfaces for operating products
Node app
PHP app
Python app
Java app
Application Runbooks
Dockerfiles Docker
compose
files
Docker CLI commands
Standard interface
Dockerization at Aurea
●1 year results
○ Replaced 2000+ VMs with 1900+ containers
○ Decrease infrastructure costs from 13M to 6M (53%)
○ Utilization increased from 5% to 72%
Ok, what’s edgy about our case?
Dockerization at Aurea
●Focus on the basics
○ Tried out swarm, ECS and plain docker with EE basic license.
○ Teams using plain docker reached our main goal faster
■ Simpler to onboard Ops and Eng
■ Avoids re engineering apps
Dense consolidation
● 2000 instances -> 7 docker hosts
● Benefits:
○ Higher utilization
○ Simpler to manage
● Don’t do this at home:
○ Issues when running more than 100 containers per node
○ Interested? Hallway track!
Technical challenges
Copyright: Daniel Stori - @turnoff_us
Performance and resource sharing
Performance & host sharing
●The biggest enemy: a noisy neighbour
●Fight him with resource limits:
○ CPU: --cpu-period, --cpu-quota, --cpus
○ Memory: --memory, --memory-swap (turn on accounting!)
○ IO: --device-[read|write]-bps, --device-[read|write]-iops
Performance - lessons learned
●Containers are not Virtual Machines
○ cgroups are not hypervisor
○ Remember the JVM
●Always set container’s resource limits
●Always label your containers
○ Owners info and container’s importance
●But how to make users comply?
Configuration compliance
Docker enforcer
●A tool to run validation rules against
containers and stop ‘bad ones’
● https://github.com/piontec/docker-enforcer
Docker enforcer - rules
“Dear users,
We have created a nice big disk for your containers’
data at /opt/big. Please use this location for any docker
volumes.
Admins”
Demo
Docker enforcer - rules
“Dear users,
Please always make sure your containers are
running with CPU and memory resource limits.
Admins”
Demo
Networking for legacy applications
Networking - legacy
●Not HTTP+JSON microservices
○ Old friends: FTP, SMTP, SIP, …
●New requirements
○ Individual IPs for containers, but from different subnets and
preserving external (AWS VPC) IP
○ Exposing massive number of ports (SIP)
Networking - per container IPs
# interface
ip addr add 10.10.0.2/24 dev eth1
ip route add default via 10.10.0.1 dev eth1 table 101
ip route add 10.10.0.0/24 dev eth1 src 10.10.0.2 table 101
ip rule add from 10.10.0.2 lookup 101
# container
ip r a 172.17.0.0/16 dev docker0 tab 101
ip rule add from 172.17.0.20 lookup 101
iptables -t nat -I POSTROUTING -s 172.17.0.20 -j SNAT --to-source 10.10.0.2
Recap
●Outcomes
○ Increase utilization from 5% to 72%
○ Decrease infrastructure costs from 13M to 6M
● Main challenges
○ Noisy neighbours
○ Configuration compliance
○ Networking
Roadmap
● Dockerize everything, our goal is to have 0 VMs out of our CaaS
platform
● New platform for stateless containers
○ Orchestration
○ Multi AZ on AWS Spot
● Invest in re-engeering non-dockerizable apps to make them
dockerizable and in dockerized app to make them cloud enabled.
We’re hiring?
Hallway tracks:
● Docker Enforcer
● Running 100+ containers per node
Q & A?

Mais conteúdo relacionado

Mais procurados

IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101HungWei Chiu
 
Head First to Container&Kubernetes
Head First to Container&KubernetesHead First to Container&Kubernetes
Head First to Container&KubernetesHungWei Chiu
 
How to Achieve Canary Deployment on Kubernetes
How to Achieve Canary Deployment on KubernetesHow to Achieve Canary Deployment on Kubernetes
How to Achieve Canary Deployment on KubernetesHanLing Shen
 
Driving containerd operations with gRPC
Driving containerd operations with gRPCDriving containerd operations with gRPC
Driving containerd operations with gRPCDocker, Inc.
 
Automatically Renew Certificated In Your Kubernetes Cluster
Automatically Renew Certificated In Your Kubernetes ClusterAutomatically Renew Certificated In Your Kubernetes Cluster
Automatically Renew Certificated In Your Kubernetes ClusterHungWei Chiu
 
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SI
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SIDeep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SI
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SIDocker, Inc.
 
Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling LinuxCon ContainerCon CloudOpen China
 
Leveraging the Power of containerd Events - Evan Hazlett
Leveraging the Power of containerd Events - Evan HazlettLeveraging the Power of containerd Events - Evan Hazlett
Leveraging the Power of containerd Events - Evan HazlettDocker, Inc.
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance AnalysisBrendan Gregg
 
Breaking the RpiDocker challenge
Breaking the RpiDocker challenge Breaking the RpiDocker challenge
Breaking the RpiDocker challenge Nicolas De Loof
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryDocker, Inc.
 
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.
 
Chris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networkingChris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networkingCohesive Networks
 
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...Docker, Inc.
 
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu VenugopalDocker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu VenugopalMichelle Antebi
 
Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Jace Liang
 
Addressing DHCP and DNS scalability issues in OpenStack Neutron
Addressing DHCP and DNS scalability issues in OpenStack NeutronAddressing DHCP and DNS scalability issues in OpenStack Neutron
Addressing DHCP and DNS scalability issues in OpenStack NeutronVikram G Hosakote
 

Mais procurados (20)

IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101
 
Head First to Container&Kubernetes
Head First to Container&KubernetesHead First to Container&Kubernetes
Head First to Container&Kubernetes
 
How to Achieve Canary Deployment on Kubernetes
How to Achieve Canary Deployment on KubernetesHow to Achieve Canary Deployment on Kubernetes
How to Achieve Canary Deployment on Kubernetes
 
Driving containerd operations with gRPC
Driving containerd operations with gRPCDriving containerd operations with gRPC
Driving containerd operations with gRPC
 
Automatically Renew Certificated In Your Kubernetes Cluster
Automatically Renew Certificated In Your Kubernetes ClusterAutomatically Renew Certificated In Your Kubernetes Cluster
Automatically Renew Certificated In Your Kubernetes Cluster
 
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SI
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SIDeep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SI
Deep Dive in Docker Overlay Networks - Laurent Bernaille - Architect, D2SI
 
Running Legacy Applications with Containers
Running Legacy Applications with ContainersRunning Legacy Applications with Containers
Running Legacy Applications with Containers
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
 
Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling Is there still room for innovation in container orchestration and scheduling
Is there still room for innovation in container orchestration and scheduling
 
Leveraging the Power of containerd Events - Evan Hazlett
Leveraging the Power of containerd Events - Evan HazlettLeveraging the Power of containerd Events - Evan Hazlett
Leveraging the Power of containerd Events - Evan Hazlett
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 
Breaking the RpiDocker challenge
Breaking the RpiDocker challenge Breaking the RpiDocker challenge
Breaking the RpiDocker challenge
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and Notary
 
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 ...
 
Chris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networkingChris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networking
 
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
DockerCon EU 2015: It's in the game: the path to micro-services at Electronic...
 
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu VenugopalDocker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
 
What's New in Docker 1.12?
What's New in Docker 1.12?What's New in Docker 1.12?
What's New in Docker 1.12?
 
Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology
 
Addressing DHCP and DNS scalability issues in OpenStack Neutron
Addressing DHCP and DNS scalability issues in OpenStack NeutronAddressing DHCP and DNS scalability issues in OpenStack Neutron
Addressing DHCP and DNS scalability issues in OpenStack Neutron
 

Semelhante a Dockerizing Aurea - Docker Con EU 2017

DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaŁukasz Piątkowski
 
Containerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated ApplicationsContainerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated ApplicationsDocker, Inc.
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkJérôme Petazzoni
 
Docker at DevTable
Docker at DevTableDocker at DevTable
Docker at DevTabledotCloud
 
Docker at DevTable
Docker at DevTableDocker at DevTable
Docker at DevTableDocker, Inc.
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDocker, Inc.
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices worldKarol Chrapek
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessDocker-Hanoi
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Simon Storm
 
Docker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker, Inc.
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Dockernklmish
 
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...NETWAYS
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tipsSamuel Chow
 
Docker and the K computer
Docker and the K computerDocker and the K computer
Docker and the K computerPeter Bryzgalov
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataInfluxData
 
Docker at Cloud9 IDE
Docker at Cloud9 IDEDocker at Cloud9 IDE
Docker at Cloud9 IDElennartkats
 

Semelhante a Dockerizing Aurea - Docker Con EU 2017 (20)

DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing Aurea
 
Containerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated ApplicationsContainerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated Applications
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New York
 
Docker handons-workshop-for-charity
Docker handons-workshop-for-charityDocker handons-workshop-for-charity
Docker handons-workshop-for-charity
 
Docker at DevTable
Docker at DevTableDocker at DevTable
Docker at DevTable
 
Docker at DevTable
Docker at DevTableDocker at DevTable
Docker at DevTable
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices world
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
Docker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker ee
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tips
 
Docker and the K computer
Docker and the K computerDocker and the K computer
Docker and the K computer
 
2 万林涛
2 万林涛2 万林涛
2 万林涛
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Docker at Cloud9 IDE
Docker at Cloud9 IDEDocker at Cloud9 IDE
Docker at Cloud9 IDE
 

Último

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Último (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Dockerizing Aurea - Docker Con EU 2017

  • 1. Dockerizing Aurea Lukasz Piatkowski, PhD Chief Docker Architect Matias Lespiau Soft. Eng. Manager
  • 2. Agenda Dockerizing Aurea: - Goals - Results - Technical challenges
  • 3.
  • 4. Dockerization at Aurea Goals ● #1 - Decrease computing expenses by consolidation and simplification ● #2 - Improve Ops team productivity through standardization
  • 5. 1 app, 1 host, 2 CPUs 1GB RAM 4x average to peak utilization 500 containers, 1 host, 128 CPUs, 2TB RAM 1.2x average to peak utilization Goal #1 - decrease computing expenses
  • 6. Goal #2 - standardize Ops interfaces for operating products Node app PHP app Python app Java app Application Runbooks Dockerfiles Docker compose files Docker CLI commands Standard interface
  • 7. Dockerization at Aurea ●1 year results ○ Replaced 2000+ VMs with 1900+ containers ○ Decrease infrastructure costs from 13M to 6M (53%) ○ Utilization increased from 5% to 72%
  • 8. Ok, what’s edgy about our case?
  • 9. Dockerization at Aurea ●Focus on the basics ○ Tried out swarm, ECS and plain docker with EE basic license. ○ Teams using plain docker reached our main goal faster ■ Simpler to onboard Ops and Eng ■ Avoids re engineering apps
  • 10. Dense consolidation ● 2000 instances -> 7 docker hosts ● Benefits: ○ Higher utilization ○ Simpler to manage ● Don’t do this at home: ○ Issues when running more than 100 containers per node ○ Interested? Hallway track!
  • 12. Copyright: Daniel Stori - @turnoff_us
  • 14. Performance & host sharing ●The biggest enemy: a noisy neighbour ●Fight him with resource limits: ○ CPU: --cpu-period, --cpu-quota, --cpus ○ Memory: --memory, --memory-swap (turn on accounting!) ○ IO: --device-[read|write]-bps, --device-[read|write]-iops
  • 15. Performance - lessons learned ●Containers are not Virtual Machines ○ cgroups are not hypervisor ○ Remember the JVM ●Always set container’s resource limits ●Always label your containers ○ Owners info and container’s importance ●But how to make users comply?
  • 17. Docker enforcer ●A tool to run validation rules against containers and stop ‘bad ones’ ● https://github.com/piontec/docker-enforcer
  • 18. Docker enforcer - rules “Dear users, We have created a nice big disk for your containers’ data at /opt/big. Please use this location for any docker volumes. Admins”
  • 19. Demo
  • 20. Docker enforcer - rules “Dear users, Please always make sure your containers are running with CPU and memory resource limits. Admins”
  • 21. Demo
  • 22. Networking for legacy applications
  • 23. Networking - legacy ●Not HTTP+JSON microservices ○ Old friends: FTP, SMTP, SIP, … ●New requirements ○ Individual IPs for containers, but from different subnets and preserving external (AWS VPC) IP ○ Exposing massive number of ports (SIP)
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Networking - per container IPs # interface ip addr add 10.10.0.2/24 dev eth1 ip route add default via 10.10.0.1 dev eth1 table 101 ip route add 10.10.0.0/24 dev eth1 src 10.10.0.2 table 101 ip rule add from 10.10.0.2 lookup 101 # container ip r a 172.17.0.0/16 dev docker0 tab 101 ip rule add from 172.17.0.20 lookup 101 iptables -t nat -I POSTROUTING -s 172.17.0.20 -j SNAT --to-source 10.10.0.2
  • 30. Recap ●Outcomes ○ Increase utilization from 5% to 72% ○ Decrease infrastructure costs from 13M to 6M ● Main challenges ○ Noisy neighbours ○ Configuration compliance ○ Networking
  • 31. Roadmap ● Dockerize everything, our goal is to have 0 VMs out of our CaaS platform ● New platform for stateless containers ○ Orchestration ○ Multi AZ on AWS Spot ● Invest in re-engeering non-dockerizable apps to make them dockerizable and in dockerized app to make them cloud enabled.
  • 32. We’re hiring? Hallway tracks: ● Docker Enforcer ● Running 100+ containers per node Q & A?

Notas do Editor

  1. “Wookash Piokowski” For the past year, we’d been running a Platform Engineering team in charge of Docker Infrastructure for Aurea products
  2. Our plan for today is to share our motivation to use Docker at Aurea, What goals we’ve set for the team What we were able to achieve in the past year Technical challenges we had to solve - not the only ones we had - but the ones that most teams have to address when moving their apps to docker
  3. Aurea owns a portfolio of 15 to 100 enterprise products for multiple domains: energy, telecommunication, marketing, pharmaceutics, IT, etc. It’s a global, remote first company. We are about 500 Software Engineers which all work from home. Actually yesterday was the first time I saw Lukasz in person.
  4. We have two graph. On each graph the green line shows the CPU utilization and the yellow lines show the memory utilization footprint. On the top we have the footprint of a standard application running in a single VM. We can see that the application has a 21% average utilization but that the utilization peaks to 50%, 75% or even 100% during the course of the day. Peak to AVG utilization is about 4x
  5. Ops team has to deal with multiple products and multiple backend and front end services which are part of the infrastructure. These systems are built in different tech stacks - node, java, C#, php, python, etc. and they might have different middlewares that must be operated as well (apache, nginx, tomcat, etc.) Each service requires a playbook
  6. Ok, in terms of results, this might be similar to what other companies have achieved - but why our case is different?
  7. Legacy apps Walk before you run approach to learn the technology
  8. So far, all seems like a fairy tale, but let’s see how our docker journey looked like
  9. Intro about challanges we faced and how we solved them Selection of top challenges we had to fix in Check next slide Monitoring Performance and resource sharing Networking Daniel stori
  10. When you run a shared docker host, with high load, you will hit performance problems sooner or later
  11. Why is it so important to set limits?
  12. What’s different between VM and a container? [Image]
  13. Let me show you some real life problems we ran into and how we solved them. Like this one:
  14. Lukasz: So we got one of our users here! Maybe you would like to run a container? Mind the latest email from admins! Matias: Sure! (Command with typo, container runs) Lukasz: And now, we will run into problems, probably disk space is gonna run out, as it’s wrong place to store data. Let’s try to enforce a correct config with enforcer (show rule, apply it). OK, Matias, can you please retry? Matias: Sure (run the previous command it fails, show the message you get, fix the command and run it again) Lukasz: (show API endpoints)
  15. Lukasz: Now admins have noticed the “lazy neighbor” problem, they want all users to set CPU and memory limits. But not all of them comply… [A scene like previously]
  16. Big issues with legacy and networking
  17. Why such requirements? One good reason is SMTP. SMTP servers need to have outgoing traffic from a very specific IP addresses - whitelists and such. Additionally, in AWS there’s a limit of about 30 IPs per interface. So let us dig in a little deeper into an example, where you want to run a container including SMTP server, that needs to use an IP from the 2nd interface of your host.
  18. Lukasz: This is how the default docker host setup looks like
  19. Lukasz: And this is a final packets path for container bound to an IP address from the default eth0 interface Why do we need a 2nd interface
  20. Matias: OK, but if I want to run a new container with IP from the 2nd interface, eth1, I can just do this like this, right?
  21. Lukasz: Unfortunately, no - this is why
  22. And here’s a solution