SlideShare a Scribd company logo
1 of 20
Download to read offline
Tales of
Training: Scaling
CodeLabs with
Swarm Mode
and Compose
Damien DUPORTAL
Training Engineer - CloudBees
@DamienDuportal - github.com/dduportal
Agenda
What is this talk about?
● Trench Story
● Drinking champagne
● Training / CodeLabs
● VM workload
● Container workload
● Orchestration
What is this talk NOT about?
● Toolings wars:
○ Kubernetes vs. Swarm
○ AWS vs. Azure
● Showing code (20 min only!)
○ Help yourself (GitHub):
http://bit.ly/2yoYG0v
Drinking my own champagne
Learn by TRYING:
● Experimentation never wastes
time
● Build something that works
and iterate
“CodeLab”?
● Part of a training (learning experience)
● Practical Exercise
● Using an isolated environment
● Dedicated to a single user
● Synonym of “workshop” or
“hands on lab”
CodeLab == Production
Constraints:
● Network
● Configuration diversity
● User Error (Learning process)
● Time boxed Sessions
CodeLab VM Content:
● Jenkins Training:
○ Store Git SCM (Gitea - Go)
○ Jenkins Master + Build Agents (JVMs)
○ Web Command Line (TTYDs - Python)
○ WebIDE (Codiad - PHP)
○ Store Artifacts (Artifactory - JVM)
○ Docker Registry (Go)
Challenges
● CodeLab defined by service list
○ Docker-compose
● Portability
○ Docker as blueprint
● Explicit definition
○ Definition as code
Step 1: VMs
Consul Servers
AWS EC2 VM
Host OS: Ubuntu
Docker & Compose
CodeLab Service Stack
Consul
AWS EC2 VM
Host OS: Ubuntu
Docker & Compose
CodeLab Service Stack
Consul
AWS EC2 VM
Host OS: Ubuntu
Docker & Compose
CodeLab Service Stack
Consul
AWS EC2 VM
Host OS: Ubuntu
Docker & Compose
CodeLab Service Stack
Consul
AWS EC2 VM
Host OS: Ubuntu
Docker & Compose
CodeLab Service Stack
Consul
AWS EC2 VM
Host OS: Ubuntu
Docker & Compose
CodeLab Service Stack
Consul
SSH Bastion
Reverse Proxies
Register into
Consul
End User
Trainer
Deploys with
Terraform
Load-Balancer
Reconfigure with
Consul-Template
Step 1: Take Aways
It works!
Easy to begin with and to operate
Cost (1 attendee per VM)
TTP (Time To Play)
Road to Native Orchestration
● Solving Costs Issue: More attendees per VM
● Solving TTP Issue:
○ Moving to container-based workload
(Look at PWD speed!)
○ Un-tie Infra from Services
Step 2.1: Provide Infra
SSH Bastion“Infra
Admin”
Deploys with
Terraform
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Manager (EC2 VM)
Swarm Manager (EC2 VM)
Swarm Manager (EC2 VM)
Step 2.2: Provide Services
SSH Bastion“Infra
Admin”
Deploys with
Docker
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Manager (EC2 VM)
Swarm Manager (EC2 VM)
Swarm Manager (EC2 VM)
Deploys with
Docker
Trainer
CodeLab Service Stack
Support Services
Support Services
Step 2.3: Benefits
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Worker (EC2 VM)
Swarm Manager (EC2 VM)
Swarm Manager (EC2 VM)
Swarm Manager (EC2 VM)
CodeLab Service Stack
Support Services
Support Services
End User
Step 2: Positive Side Effect
● Relying on Docker ecosystem
● Less side-kicks to maintain
Step 2: Nice problems to have
● CodeLab Scaling Pattern
○ (Deploy N times, NOT Scaling)
● Monitoring / Metrics
● Resource Management
CodeLab Scaling Pattern
● Compose and Swarm:
○ Define a stack of services
○ Scale each horizontally
● Concern here:
○ Deploy N times the same stack
Monitoring/Metrics
It is NOT a challenge
● Should have done it at Step 1
● Feedback loop
● A LOT of “Working Out
of the box” tools
Resource Management
● Resource sharing patterns:
○ VM workloads: 1 stack for 1 VM resources
○ Container workload: N stacks for
N VMs resources
● JVM pattern: Capping Memory (OOM)
● Need to measure and iterate
○ Automation
Step 2: Take Aways
● It still works!
● Easier to begin with and to operate
● Cost: 4x less (4 attendees per VM)
● TTP: ~10 s instead of ~10 min
● Maintaining: 5 tools instead of 8
Thank you and enjoy DockerCon!

More Related Content

What's hot

Containerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated ApplicationsContainerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated Applications
Docker, Inc.
 
Packaging software for the distribution on the edge
Packaging software for the distribution on the edgePackaging software for the distribution on the edge
Packaging software for the distribution on the edge
Docker, Inc.
 

What's hot (20)

Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in Docker
 
Containerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated ApplicationsContainerizing Hardware Accelerated Applications
Containerizing Hardware Accelerated Applications
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Docker on Docker
Docker on DockerDocker on Docker
Docker on Docker
 
Packaging software for the distribution on the edge
Packaging software for the distribution on the edgePackaging software for the distribution on the edge
Packaging software for the distribution on the edge
 
DCEU 18: State of the Docker Engine
DCEU 18: State of the Docker EngineDCEU 18: State of the Docker Engine
DCEU 18: State of the Docker Engine
 
The Fairy Tale of the One Command Build Script
The Fairy Tale of the One Command Build ScriptThe Fairy Tale of the One Command Build Script
The Fairy Tale of the One Command Build Script
 
Back to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy ApplicationsBack to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy Applications
 
Building Your Docker Swarm Tech Stack
Building Your Docker Swarm Tech StackBuilding Your Docker Swarm Tech Stack
Building Your Docker Swarm Tech Stack
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
 
Advanced Access Control with Docker EE
Advanced Access Control with Docker EEAdvanced Access Control with Docker EE
Advanced Access Control with Docker EE
 
Docker Platform Internals: Taking runtimes and image creation to the next lev...
Docker Platform Internals: Taking runtimes and image creation to the next lev...Docker Platform Internals: Taking runtimes and image creation to the next lev...
Docker Platform Internals: Taking runtimes and image creation to the next lev...
 
Docker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamDocker to the Rescue of an Ops Team
Docker to the Rescue of an Ops Team
 
Troubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineersTroubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineers
 
Efficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura FrankEfficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura Frank
 
How Docker EE Helps Open Doors at Assa Abloy
How Docker EE Helps Open Doors at Assa AbloyHow Docker EE Helps Open Doors at Assa Abloy
How Docker EE Helps Open Doors at Assa Abloy
 
Modernizing .NET Apps
Modernizing .NET AppsModernizing .NET Apps
Modernizing .NET Apps
 
Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker Meetup 08 03-2016
Docker Meetup 08 03-2016
 
Docker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to DockerDocker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to Docker
 
Docker for Java Developers - Fabiane Nardon and Arun gupta
Docker for Java Developers - Fabiane Nardon and Arun guptaDocker for Java Developers - Fabiane Nardon and Arun gupta
Docker for Java Developers - Fabiane Nardon and Arun gupta
 

Viewers also liked

My Journey To Go
My Journey To GoMy Journey To Go
My Journey To Go
Docker, Inc.
 
Experience the Swarm API in Virtual Reality
Experience the Swarm API in Virtual RealityExperience the Swarm API in Virtual Reality
Experience the Swarm API in Virtual Reality
Docker, Inc.
 

Viewers also liked (18)

Looking Under The Hood: containerD
Looking Under The Hood: containerDLooking Under The Hood: containerD
Looking Under The Hood: containerD
 
Repainting the Past with Distributed Machine Learning and Docker
Repainting the Past with Distributed Machine Learning and DockerRepainting the Past with Distributed Machine Learning and Docker
Repainting the Past with Distributed Machine Learning and Docker
 
My Journey To Go
My Journey To GoMy Journey To Go
My Journey To Go
 
Cilium: Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium: Kernel Native Security & DDOS Mitigation for Microservices with BPFCilium: Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium: Kernel Native Security & DDOS Mitigation for Microservices with BPF
 
The Value Of Diverse Experiences
The Value Of Diverse ExperiencesThe Value Of Diverse Experiences
The Value Of Diverse Experiences
 
Continuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOpsContinuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOps
 
Experience the Swarm API in Virtual Reality
Experience the Swarm API in Virtual RealityExperience the Swarm API in Virtual Reality
Experience the Swarm API in Virtual Reality
 
Docker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamDocker to the Rescue of an Ops Team
Docker to the Rescue of an Ops Team
 
Skynet vs. Planet of The Apes: Duel!
Skynet vs. Planet of The Apes: Duel!Skynet vs. Planet of The Apes: Duel!
Skynet vs. Planet of The Apes: Duel!
 
The Truth Behind Serverless
The Truth Behind ServerlessThe Truth Behind Serverless
The Truth Behind Serverless
 
LinuxKit Deep Dive
LinuxKit Deep DiveLinuxKit Deep Dive
LinuxKit Deep Dive
 
Moby and Kubernetes entitlements
Moby and Kubernetes entitlements Moby and Kubernetes entitlements
Moby and Kubernetes entitlements
 
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
 
Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and Decide
 
What's New in Docker
What's New in DockerWhat's New in Docker
What's New in Docker
 
Learning Docker from Square One
Learning Docker from Square OneLearning Docker from Square One
Learning Docker from Square One
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Integrating Docker EE into Société Générale's Existing Enterprise IT Systems
Integrating Docker EE into Société Générale's Existing Enterprise IT SystemsIntegrating Docker EE into Société Générale's Existing Enterprise IT Systems
Integrating Docker EE into Société Générale's Existing Enterprise IT Systems
 

Similar to Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose

Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainIntroduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Puja Abbassi
 
Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013
Hendrik Ebbers
 

Similar to Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose (20)

Docker-machine
Docker-machineDocker-machine
Docker-machine
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
ILM - Pipeline in the cloud
ILM - Pipeline in the cloudILM - Pipeline in the cloud
ILM - Pipeline in the cloud
 
Building services on AWS in China region
Building services on AWS in China regionBuilding services on AWS in China region
Building services on AWS in China region
 
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux ContainersDevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containers
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainIntroduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
 
Docker 101
Docker 101Docker 101
Docker 101
 
Serverless in Java Lessons learnt
Serverless in Java Lessons learntServerless in Java Lessons learnt
Serverless in Java Lessons learnt
 
Using Kubernetes for Continuous Integration and Continuous Delivery
Using Kubernetes for Continuous Integration and Continuous DeliveryUsing Kubernetes for Continuous Integration and Continuous Delivery
Using Kubernetes for Continuous Integration and Continuous Delivery
 
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2daysUsing Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
 
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCome costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
 
Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013Vagrant Binding JayDay 2013
Vagrant Binding JayDay 2013
 
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersWSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on Containers
 

More from Docker, Inc.

Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 

More from Docker, Inc. (20)

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker Build
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINX
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and Compose
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker Hub
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices World
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio Code
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container Registry
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog Scale
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm Architecture
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose

  • 1. Tales of Training: Scaling CodeLabs with Swarm Mode and Compose Damien DUPORTAL Training Engineer - CloudBees @DamienDuportal - github.com/dduportal
  • 2. Agenda What is this talk about? ● Trench Story ● Drinking champagne ● Training / CodeLabs ● VM workload ● Container workload ● Orchestration What is this talk NOT about? ● Toolings wars: ○ Kubernetes vs. Swarm ○ AWS vs. Azure ● Showing code (20 min only!) ○ Help yourself (GitHub): http://bit.ly/2yoYG0v
  • 3. Drinking my own champagne Learn by TRYING: ● Experimentation never wastes time ● Build something that works and iterate
  • 4. “CodeLab”? ● Part of a training (learning experience) ● Practical Exercise ● Using an isolated environment ● Dedicated to a single user ● Synonym of “workshop” or “hands on lab”
  • 5. CodeLab == Production Constraints: ● Network ● Configuration diversity ● User Error (Learning process) ● Time boxed Sessions
  • 6. CodeLab VM Content: ● Jenkins Training: ○ Store Git SCM (Gitea - Go) ○ Jenkins Master + Build Agents (JVMs) ○ Web Command Line (TTYDs - Python) ○ WebIDE (Codiad - PHP) ○ Store Artifacts (Artifactory - JVM) ○ Docker Registry (Go)
  • 7. Challenges ● CodeLab defined by service list ○ Docker-compose ● Portability ○ Docker as blueprint ● Explicit definition ○ Definition as code
  • 8. Step 1: VMs Consul Servers AWS EC2 VM Host OS: Ubuntu Docker & Compose CodeLab Service Stack Consul AWS EC2 VM Host OS: Ubuntu Docker & Compose CodeLab Service Stack Consul AWS EC2 VM Host OS: Ubuntu Docker & Compose CodeLab Service Stack Consul AWS EC2 VM Host OS: Ubuntu Docker & Compose CodeLab Service Stack Consul AWS EC2 VM Host OS: Ubuntu Docker & Compose CodeLab Service Stack Consul AWS EC2 VM Host OS: Ubuntu Docker & Compose CodeLab Service Stack Consul SSH Bastion Reverse Proxies Register into Consul End User Trainer Deploys with Terraform Load-Balancer Reconfigure with Consul-Template
  • 9. Step 1: Take Aways It works! Easy to begin with and to operate Cost (1 attendee per VM) TTP (Time To Play)
  • 10. Road to Native Orchestration ● Solving Costs Issue: More attendees per VM ● Solving TTP Issue: ○ Moving to container-based workload (Look at PWD speed!) ○ Un-tie Infra from Services
  • 11. Step 2.1: Provide Infra SSH Bastion“Infra Admin” Deploys with Terraform Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Manager (EC2 VM) Swarm Manager (EC2 VM) Swarm Manager (EC2 VM)
  • 12. Step 2.2: Provide Services SSH Bastion“Infra Admin” Deploys with Docker Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Manager (EC2 VM) Swarm Manager (EC2 VM) Swarm Manager (EC2 VM) Deploys with Docker Trainer CodeLab Service Stack Support Services Support Services
  • 13. Step 2.3: Benefits Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Worker (EC2 VM) Swarm Manager (EC2 VM) Swarm Manager (EC2 VM) Swarm Manager (EC2 VM) CodeLab Service Stack Support Services Support Services End User
  • 14. Step 2: Positive Side Effect ● Relying on Docker ecosystem ● Less side-kicks to maintain
  • 15. Step 2: Nice problems to have ● CodeLab Scaling Pattern ○ (Deploy N times, NOT Scaling) ● Monitoring / Metrics ● Resource Management
  • 16. CodeLab Scaling Pattern ● Compose and Swarm: ○ Define a stack of services ○ Scale each horizontally ● Concern here: ○ Deploy N times the same stack
  • 17. Monitoring/Metrics It is NOT a challenge ● Should have done it at Step 1 ● Feedback loop ● A LOT of “Working Out of the box” tools
  • 18. Resource Management ● Resource sharing patterns: ○ VM workloads: 1 stack for 1 VM resources ○ Container workload: N stacks for N VMs resources ● JVM pattern: Capping Memory (OOM) ● Need to measure and iterate ○ Automation
  • 19. Step 2: Take Aways ● It still works! ● Easier to begin with and to operate ● Cost: 4x less (4 attendees per VM) ● TTP: ~10 s instead of ~10 min ● Maintaining: 5 tools instead of 8
  • 20. Thank you and enjoy DockerCon!