SlideShare a Scribd company logo
Running Docker in Production Successfully
John Fiedler
Sr. Director of Engineering @ SalesforceIQ
About me
● I work for SalesforceIQ formerly RelateIQ
● I’ve used Docker for over 2 years
● I’ve done a couple of talks on Docker
o http://blog.heavybit.com/blog/2015/3/2
3/dockermeetup
o https://engineering.twitter.com/universi
ty/videos/chef-versus-docker-at-
relateiq
o https://www.youtube.com/watch?v=z9
yNq-IjCcM
● I co-authored this book:
o http://bleedingedgepress.com/docker-
in-the-trenches/
Docker Book
● 50% off for everyone!
● Click here!
https://gum.co/lQGH/dockerconeu
● Only $11.50
● 200 pages
Agenda
Docker Journey with SalesforceIQ
Lessons Learned
PaaS/CaaS
Docker Journey with
SalesforceIQ
Two years in production...
What is production?
Production != test dev
Isolation, Security, Performance, Monitoring, Logging…
Scale, templates, automation…
What is successful?
>99% uptime or low # of outages?
Fast code deployment?
0 Security Incidents?
100% of our web infrastructure running with Docker
Boom
SalesforceIQ journey into production
2013 2014 2014 2014Q4Q4 Q1 Q2
Dev
Environment
Continuous
Deployment
in Teamcity
Web
Zero Downtime
Deployments
Full Stack
Container
Azkaban
DockerMe
Integrations
Batch Jobs
Mesos
Kafka
Dev/
Ops
CLI
Craft CMS
Main Website
Beanstalk
2015+
Devenv 2.0
P
a
a
S
Now2015
Database
CI/CD Server
Dev or Ops
Environment
Web Server
Api Server
Batch Jobs
Integrations
What we’ve put in containers
Rate of Change
Dependencies
Database
CI/CD Server
Dev or Ops
Environment
Web Server
Api Server
Batch Jobs
Integrations
Stateful
Long-Life
Stateless
Short-Life
What we’ve put in containers
Zoom in a little
Persistent Storage
Middleware / Integrations /
Internal Tools / Scripts / Jobs
Web
Monitoring
Logging
Security
Dev
Environment
Ops
Environment
CI / CD
Fully Somewhat No
Create Deploy Run Operate
Dockerized
Batch & Stream processing
Lessons Learned
Alot...
Lots of tidbits
● Docker is prod ready but many surrounding
solutions are not (alpha and beta)
o Caution with the new toys is required
● Don’t go straight towards a PaaS if you're just
starting out
o Kubernetes, Mesos, CoreOS, Swarm, ECS
● Keep it simple
o Know what works and what doesn’t
● Old tools still work great, and I’ll show you how
o Know how to scale what you're doing
● You're going to have to roll your own at some point
(orchestration)
o As of version 1.5.11, HAProxy does not
support zero downtime restarts or reloads
of configuration.
● Learn from others, Tons of people in production
now
o Read the whole internet
● You can secure running containers
o Twistlock, Conjur, Banyanops
● Get creative
o Docker is golden and mobile
You can docker with Chef, Ansible, SaltStack...
• You can use the tools you have today if you're not dockerized already
• What…
• But those are the tools i’m already using...
• Yes they still work and work great
Our current prod web server
● Worked with all our existing
tools!
○ Chef, Monitoring, Logging
● Security didn’t change
○ Security keys
○ Firewall
● Super easy to scale
○ Could pack with Packer to
create AMI
○ Shell script was super easy
● Zero downtime
● Rollbacks
Web Container
v1
Web Container
v2
Hipache/Redis Container
Amazon AMI setup with Chef
Cron job to run shell script to orchestrate containers
Demo
It’s time
#1 thing we found!!!!
You WILL have disk/file system issues...
File system...
Volumes not unmounting
Long deletion times on device mapper
–storage-opt dm.blkdiscard=false
Kernel version matters!
Great visual deep dive
http://merrigrove.blogspot.com/2015/10/visualizi
ng-docker-containers-and-images.html?m=1
What we used overtime
1. Started with AUFS - hit 42 layer limit
2. Then moved to device mapper
a. Device/Volume not found
b. NNOOOOOOOOOO
3. Back using AUFS again after bug fixes
and layer 42 limit removal
a. Continue to fight layer issues, mount
issues
4. Back to device mapper with Docker 1.7
dynamic binaries!
What we’ve landed on
Ubuntu = AUFS
Amazon Linux = Device mapper
Get a good registry
Great options
• Hub.docker.com
• Quay.io
• Trusted registry
• Google
• Azure
• AWS
• S3.. no registry…
save/load
1. We started private registry
a. went insane with buggy
releases, failed pulls/pushes
2. Went to quay.io
a. happy but slow, and costs
$$
3. Back to private registry 0.9
release… now stable
4. Scaled it and working great
5. Now working on upgrading to
Docker Registry 2.1
Storage
-Unlimited
-Cheap
Elasticache
-Redis
Beanstalk
-Autoscale
Scaling our registry
• 100% AWS
• Beanstalk
ELB
Auto scaling Group
Docker web service
• Redis Cache
Elasticache
Had issues when a node failed
• S3 Backend
Had huge issues on layer corruption
ELB
Docker
Registry Cache
S3
Isolation is your friend
Low container to host ratio
• Compute
Spikey Processing… no problem
• Storage
Out of disk… no problem
• Networking
Shared bandwidth… no problem
• Ram
Swapping issue… no problem
• Security Groups
Least privilege… no problem
Web Container
v2
Amazon AMI setup with Chef
Cron job to run shell script to orchestrate containers
Hipache/Redis Container
Web Container
v1
CI/CD with Docker
• The biggest ROI with Docker
• Teamcity
• Used to use Docker in Docker
https://jpetazzo.github.io/2015/09/03/do-not-
use-docker-in-docker-for-ci/
• Agents used to run in a docker container
Now built with chef and packer
• Autoscaling with Docker?
Github.com
Dockerfile
Teamcity
Agent Agent Agent
Registry
Server
Many PaaS/CaaS utilize sidekicks
• Amazon ECS
https://github.com/aws/amazon-ecs-agent
• Amazon Beanstalk
https://github.com/aws/aws-eb-python-
dockerfiles
• Netflix
Prana
• Smartstack
• Docker Ambassador
http://www.slideshare.net/Docker/slides
hare-burns
• CoreOS - Sidekick
• Rancher
• Logging
Container Container
Container
Container
(sidekick)
Rest Api
Service Discovery
Health checks
Orchestration
Container
Host
PaaS/CaaS
How you’ll scale a single service
Beanstalk
-Cloud formation
EC2 Server
Autoscaling
Isolation
Security Groups
Environment Variables
Beanstalk architecture
• Run Over 50+ services on
beanstalk today
• Automagically built web container
per branch of code
• Corp site/Help site
• 100% automated!!
• Great for Web services SOA
• You will have disk issues
Storage
Easy to spin up
DNS service discovery
Load balancer
SSL Termination ELB
Container
RDS
Demo
Beanstalk
One year ago
• CoreOS... so cool
• Mesos… cool with scale
• Beanstalk… with docker support
• Swarm… beta
• Deis… oooo saas
• ECS… ok now we're getting somewhere
• Kubernetes… where did that come from… looks cool too
Now…..
• Kubernetes on top of DCOS, on top of Mesos, on top of CoreOS…
facepalm
PaaS/CaaS Overview
CoreOS DCOS Kubernetes ECS
Orchestration
Scheduler
Resource Allocation
Service Discovery
More than Containers
Health Check
Storage clustering...
Live Migration...
Affinity rules...
DCOS
Mesos Private Slave
Auto Scaling
Health Checks
Intelligence
Being successful with a PaaS/CaaS
Our DCOS Architecture
Built a edge router
Built a Brain router
Infra CLI
This will run all of our
stateless services
Mesos Public Slave
Auto Scaling
Service Discovery
Public <> Private DNS
Can be Internal as well
Storage
SSL Termination
DNS
ELB
Edge
Router
DB2
ServiceService
Edge
Router
DB3DB1
Mesos Master
Marathon
Health Check
API
Change Event
Bus
InfraIQ
Demo
InfraIQ
Summary
• Starting out? Just use the same tools you have
• You’ll need to roll up your sleeves
• Security is not hard but you need to think about it
• Many vendors are entering container space
• Build towards a PaaS
• Many solutions to PaaS
• Know what you're trying to solve
• Have fun!
Thank you!
John Fiedler@johnfiedler
johnfiedler@gmail.com

More Related Content

What's hot

Scaling and Managing Selenium Grid
Scaling and Managing Selenium GridScaling and Managing Selenium Grid
Scaling and Managing Selenium Grid
dimakovalenko
 
Distributed automation sel_conf_2015
Distributed automation sel_conf_2015Distributed automation sel_conf_2015
Distributed automation sel_conf_2015
aragavan
 
CommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package ManagerCommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package Manager
bdw429s
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
Lalatendu Mohanty
 
Agile sites311training
Agile sites311trainingAgile sites311training
Agile sites311training
Michele Sciabarrà
 
Divide and Conquer: Easier Continuous Delivery using Micro-Services
Divide and Conquer: Easier Continuous Delivery using Micro-ServicesDivide and Conquer: Easier Continuous Delivery using Micro-Services
Divide and Conquer: Easier Continuous Delivery using Micro-Services
Carlos Sanchez
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
Puppet
 
Node.js and MongoDB from scratch, fully explained and tested
Node.js and MongoDB from scratch, fully explained and tested Node.js and MongoDB from scratch, fully explained and tested
Node.js and MongoDB from scratch, fully explained and tested
John Culviner
 
How to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud SolutionsHow to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud Solutions
Noam Zakai
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and Docker
John Rofrano
 
Opscode Webinar: Cooking with Chef on Microsoft Windows
Opscode Webinar: Cooking with Chef on Microsoft WindowsOpscode Webinar: Cooking with Chef on Microsoft Windows
Opscode Webinar: Cooking with Chef on Microsoft Windows
Chef Software, Inc.
 
Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?
John Rofrano
 
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
DCSF 19 Modernizing Insurance with Docker Enterprise:  The Physicians Mutual ...DCSF 19 Modernizing Insurance with Docker Enterprise:  The Physicians Mutual ...
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
Docker, Inc.
 
Play concurrency
Play concurrencyPlay concurrency
Play concurrency
Justin Long
 
ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
ColdFusionConference
 
Docker zero
Docker zeroDocker zero
Building with Virtual Development Environments
Building with Virtual Development EnvironmentsBuilding with Virtual Development Environments
Building with Virtual Development Environments
Oscar Merida
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
ColdFusionConference
 
Nginx Tutorial | Learn Nginx Fundamentals | Deploy a Web Application Using Ng...
Nginx Tutorial | Learn Nginx Fundamentals | Deploy a Web Application Using Ng...Nginx Tutorial | Learn Nginx Fundamentals | Deploy a Web Application Using Ng...
Nginx Tutorial | Learn Nginx Fundamentals | Deploy a Web Application Using Ng...
Edureka!
 
Learning chef
Learning chefLearning chef
Learning chef
Jonathan Carrillo
 

What's hot (20)

Scaling and Managing Selenium Grid
Scaling and Managing Selenium GridScaling and Managing Selenium Grid
Scaling and Managing Selenium Grid
 
Distributed automation sel_conf_2015
Distributed automation sel_conf_2015Distributed automation sel_conf_2015
Distributed automation sel_conf_2015
 
CommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package ManagerCommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package Manager
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 
Agile sites311training
Agile sites311trainingAgile sites311training
Agile sites311training
 
Divide and Conquer: Easier Continuous Delivery using Micro-Services
Divide and Conquer: Easier Continuous Delivery using Micro-ServicesDivide and Conquer: Easier Continuous Delivery using Micro-Services
Divide and Conquer: Easier Continuous Delivery using Micro-Services
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
 
Node.js and MongoDB from scratch, fully explained and tested
Node.js and MongoDB from scratch, fully explained and tested Node.js and MongoDB from scratch, fully explained and tested
Node.js and MongoDB from scratch, fully explained and tested
 
How to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud SolutionsHow to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud Solutions
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and Docker
 
Opscode Webinar: Cooking with Chef on Microsoft Windows
Opscode Webinar: Cooking with Chef on Microsoft WindowsOpscode Webinar: Cooking with Chef on Microsoft Windows
Opscode Webinar: Cooking with Chef on Microsoft Windows
 
Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?Microservices: How loose is loosely coupled?
Microservices: How loose is loosely coupled?
 
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
DCSF 19 Modernizing Insurance with Docker Enterprise:  The Physicians Mutual ...DCSF 19 Modernizing Insurance with Docker Enterprise:  The Physicians Mutual ...
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
 
Play concurrency
Play concurrencyPlay concurrency
Play concurrency
 
ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
 
Docker zero
Docker zeroDocker zero
Docker zero
 
Building with Virtual Development Environments
Building with Virtual Development EnvironmentsBuilding with Virtual Development Environments
Building with Virtual Development Environments
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Nginx Tutorial | Learn Nginx Fundamentals | Deploy a Web Application Using Ng...
Nginx Tutorial | Learn Nginx Fundamentals | Deploy a Web Application Using Ng...Nginx Tutorial | Learn Nginx Fundamentals | Deploy a Web Application Using Ng...
Nginx Tutorial | Learn Nginx Fundamentals | Deploy a Web Application Using Ng...
 
Learning chef
Learning chefLearning chef
Learning chef
 

Viewers also liked

Inbox Love - RelateIQ
Inbox Love - RelateIQInbox Love - RelateIQ
Inbox Love - RelateIQ
Daniel Francisco
 
A Summary about Hykes' Keynote on Dockercon 2015
A Summary about Hykes' Keynote on Dockercon 2015A Summary about Hykes' Keynote on Dockercon 2015
A Summary about Hykes' Keynote on Dockercon 2015
Henry Huang
 
Cultural Change using Docker (DockerCon 2015)
Cultural Change using Docker (DockerCon 2015)Cultural Change using Docker (DockerCon 2015)
Cultural Change using Docker (DockerCon 2015)
Thomas Shaw
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
Ben Hall
 
Container as a Service with Docker
Container as a Service with DockerContainer as a Service with Docker
Container as a Service with Docker
Patrick Chanezon
 
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaSDockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
Adrien Blind
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
Jérôme Petazzoni
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
Jérôme Petazzoni
 
Dockercon 2015 - Faster Cheaper Safer
Dockercon 2015 - Faster Cheaper SaferDockercon 2015 - Faster Cheaper Safer
Dockercon 2015 - Faster Cheaper Safer
Adrian Cockcroft
 
Compuertas técnicas avanzadas parte 2
Compuertas   técnicas avanzadas parte 2Compuertas   técnicas avanzadas parte 2
Compuertas técnicas avanzadas parte 2Andrés Cuervo
 
Carrera Placido Lo
Carrera Placido LoCarrera Placido Lo
Carrera Placido Lo
Cristina Dino
 
Operating Systems - File Systems
Operating Systems - File SystemsOperating Systems - File Systems
Operating Systems - File Systems
Emery Berger
 
Cobertura Aids 2010 Viena
Cobertura Aids 2010 VienaCobertura Aids 2010 Viena
Cobertura Aids 2010 Viena
Alexandre Naime Barbosa
 
Communities: Build Or Join
Communities: Build Or JoinCommunities: Build Or Join
Communities: Build Or Join
Yahoo Developer Network
 
평가도구피피티
평가도구피피티평가도구피피티
평가도구피피티
gueste6f13f3
 
Australian Junior Mining Exploration Company
Australian Junior Mining Exploration CompanyAustralian Junior Mining Exploration Company
Australian Junior Mining Exploration Company
joel_fishlock
 
Pancreatitis
PancreatitisPancreatitis
Pancreatitis
Alcantara Julio
 
Zeimer BNI Presentation June 8, 2011
Zeimer BNI Presentation June 8, 2011Zeimer BNI Presentation June 8, 2011
Zeimer BNI Presentation June 8, 2011
Zeimer's Advertising Shoppe
 
ebay for Beginners
ebay for Beginnersebay for Beginners
ebay for Beginners
Intranet Future
 
Animales en peligro de extincion
Animales en peligro de extincionAnimales en peligro de extincion
Animales en peligro de extincion
losdonkey
 

Viewers also liked (20)

Inbox Love - RelateIQ
Inbox Love - RelateIQInbox Love - RelateIQ
Inbox Love - RelateIQ
 
A Summary about Hykes' Keynote on Dockercon 2015
A Summary about Hykes' Keynote on Dockercon 2015A Summary about Hykes' Keynote on Dockercon 2015
A Summary about Hykes' Keynote on Dockercon 2015
 
Cultural Change using Docker (DockerCon 2015)
Cultural Change using Docker (DockerCon 2015)Cultural Change using Docker (DockerCon 2015)
Cultural Change using Docker (DockerCon 2015)
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
Container as a Service with Docker
Container as a Service with DockerContainer as a Service with Docker
Container as a Service with Docker
 
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaSDockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
Dockercon Europe 2014 - Continuous Delivery leveraging on Docker CaaS
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
 
Dockercon 2015 - Faster Cheaper Safer
Dockercon 2015 - Faster Cheaper SaferDockercon 2015 - Faster Cheaper Safer
Dockercon 2015 - Faster Cheaper Safer
 
Compuertas técnicas avanzadas parte 2
Compuertas   técnicas avanzadas parte 2Compuertas   técnicas avanzadas parte 2
Compuertas técnicas avanzadas parte 2
 
Carrera Placido Lo
Carrera Placido LoCarrera Placido Lo
Carrera Placido Lo
 
Operating Systems - File Systems
Operating Systems - File SystemsOperating Systems - File Systems
Operating Systems - File Systems
 
Cobertura Aids 2010 Viena
Cobertura Aids 2010 VienaCobertura Aids 2010 Viena
Cobertura Aids 2010 Viena
 
Communities: Build Or Join
Communities: Build Or JoinCommunities: Build Or Join
Communities: Build Or Join
 
평가도구피피티
평가도구피피티평가도구피피티
평가도구피피티
 
Australian Junior Mining Exploration Company
Australian Junior Mining Exploration CompanyAustralian Junior Mining Exploration Company
Australian Junior Mining Exploration Company
 
Pancreatitis
PancreatitisPancreatitis
Pancreatitis
 
Zeimer BNI Presentation June 8, 2011
Zeimer BNI Presentation June 8, 2011Zeimer BNI Presentation June 8, 2011
Zeimer BNI Presentation June 8, 2011
 
ebay for Beginners
ebay for Beginnersebay for Beginners
ebay for Beginners
 
Animales en peligro de extincion
Animales en peligro de extincionAnimales en peligro de extincion
Animales en peligro de extincion
 

Similar to Dockercon EU 2015

How to be successful running Docker in Production
How to be successful running Docker in ProductionHow to be successful running Docker in Production
How to be successful running Docker in Production
Docker, Inc.
 
Dockerize or die
Dockerize or dieDockerize or die
Dockerize or die
Create Digital
 
Cassandra and Docker Lessons Learned
Cassandra and Docker Lessons LearnedCassandra and Docker Lessons Learned
Cassandra and Docker Lessons Learned
DataStax Academy
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Alan Forbes
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Docker, Inc.
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
Docker, Inc.
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
nklmish
 
Cassandra and docker
Cassandra and dockerCassandra and docker
Cassandra and docker
Ben Bromhead
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Aditya Konarde
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
Ross Kukulinski
 
Greenfields tech decisions
Greenfields tech decisionsGreenfields tech decisions
Greenfields tech decisions
Trent Hornibrook
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
Jo Ee Liew
 
Docker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupDocker and OpenStack Boston Meetup
Docker and OpenStack Boston Meetup
Kamesh Pemmaraju
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
Evans Ye
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013
dotCloud
 
Docker and-daily-devops
Docker and-daily-devopsDocker and-daily-devops
Docker and-daily-devops
Satria Ady Pradana
 
Docker & Daily DevOps
Docker & Daily DevOpsDocker & Daily DevOps
Docker & Daily DevOps
Satria Ady Pradana
 
Intro to Docker November 2013
Intro to Docker November 2013Intro to Docker November 2013
Intro to Docker November 2013
Docker, Inc.
 
Container Days
Container DaysContainer Days
Container Days
Patrick Mizer
 
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
 

Similar to Dockercon EU 2015 (20)

How to be successful running Docker in Production
How to be successful running Docker in ProductionHow to be successful running Docker in Production
How to be successful running Docker in Production
 
Dockerize or die
Dockerize or dieDockerize or die
Dockerize or die
 
Cassandra and Docker Lessons Learned
Cassandra and Docker Lessons LearnedCassandra and Docker Lessons Learned
Cassandra and Docker Lessons Learned
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
Cassandra and docker
Cassandra and dockerCassandra and docker
Cassandra and docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
Greenfields tech decisions
Greenfields tech decisionsGreenfields tech decisions
Greenfields tech decisions
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Docker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupDocker and OpenStack Boston Meetup
Docker and OpenStack Boston Meetup
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013
 
Docker and-daily-devops
Docker and-daily-devopsDocker and-daily-devops
Docker and-daily-devops
 
Docker & Daily DevOps
Docker & Daily DevOpsDocker & Daily DevOps
Docker & Daily DevOps
 
Intro to Docker November 2013
Intro to Docker November 2013Intro to Docker November 2013
Intro to Docker November 2013
 
Container Days
Container DaysContainer Days
Container Days
 
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 ...
 

Recently uploaded

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 

Recently uploaded (20)

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 

Dockercon EU 2015

  • 1. Running Docker in Production Successfully John Fiedler Sr. Director of Engineering @ SalesforceIQ
  • 2. About me ● I work for SalesforceIQ formerly RelateIQ ● I’ve used Docker for over 2 years ● I’ve done a couple of talks on Docker o http://blog.heavybit.com/blog/2015/3/2 3/dockermeetup o https://engineering.twitter.com/universi ty/videos/chef-versus-docker-at- relateiq o https://www.youtube.com/watch?v=z9 yNq-IjCcM ● I co-authored this book: o http://bleedingedgepress.com/docker- in-the-trenches/
  • 3. Docker Book ● 50% off for everyone! ● Click here! https://gum.co/lQGH/dockerconeu ● Only $11.50 ● 200 pages
  • 4. Agenda Docker Journey with SalesforceIQ Lessons Learned PaaS/CaaS
  • 5.
  • 6. Docker Journey with SalesforceIQ Two years in production...
  • 7. What is production? Production != test dev Isolation, Security, Performance, Monitoring, Logging… Scale, templates, automation… What is successful? >99% uptime or low # of outages? Fast code deployment? 0 Security Incidents?
  • 8. 100% of our web infrastructure running with Docker Boom
  • 9. SalesforceIQ journey into production 2013 2014 2014 2014Q4Q4 Q1 Q2 Dev Environment Continuous Deployment in Teamcity Web Zero Downtime Deployments Full Stack Container Azkaban DockerMe Integrations Batch Jobs Mesos Kafka Dev/ Ops CLI Craft CMS Main Website Beanstalk 2015+ Devenv 2.0 P a a S Now2015
  • 10. Database CI/CD Server Dev or Ops Environment Web Server Api Server Batch Jobs Integrations What we’ve put in containers Rate of Change Dependencies
  • 11. Database CI/CD Server Dev or Ops Environment Web Server Api Server Batch Jobs Integrations Stateful Long-Life Stateless Short-Life What we’ve put in containers
  • 12. Zoom in a little Persistent Storage Middleware / Integrations / Internal Tools / Scripts / Jobs Web Monitoring Logging Security Dev Environment Ops Environment CI / CD Fully Somewhat No Create Deploy Run Operate Dockerized Batch & Stream processing
  • 14. Lots of tidbits ● Docker is prod ready but many surrounding solutions are not (alpha and beta) o Caution with the new toys is required ● Don’t go straight towards a PaaS if you're just starting out o Kubernetes, Mesos, CoreOS, Swarm, ECS ● Keep it simple o Know what works and what doesn’t ● Old tools still work great, and I’ll show you how o Know how to scale what you're doing ● You're going to have to roll your own at some point (orchestration) o As of version 1.5.11, HAProxy does not support zero downtime restarts or reloads of configuration. ● Learn from others, Tons of people in production now o Read the whole internet ● You can secure running containers o Twistlock, Conjur, Banyanops ● Get creative o Docker is golden and mobile
  • 15.
  • 16. You can docker with Chef, Ansible, SaltStack... • You can use the tools you have today if you're not dockerized already • What… • But those are the tools i’m already using... • Yes they still work and work great
  • 17. Our current prod web server ● Worked with all our existing tools! ○ Chef, Monitoring, Logging ● Security didn’t change ○ Security keys ○ Firewall ● Super easy to scale ○ Could pack with Packer to create AMI ○ Shell script was super easy ● Zero downtime ● Rollbacks Web Container v1 Web Container v2 Hipache/Redis Container Amazon AMI setup with Chef Cron job to run shell script to orchestrate containers
  • 19.
  • 20. #1 thing we found!!!!
  • 21. You WILL have disk/file system issues...
  • 22. File system... Volumes not unmounting Long deletion times on device mapper –storage-opt dm.blkdiscard=false Kernel version matters! Great visual deep dive http://merrigrove.blogspot.com/2015/10/visualizi ng-docker-containers-and-images.html?m=1 What we used overtime 1. Started with AUFS - hit 42 layer limit 2. Then moved to device mapper a. Device/Volume not found b. NNOOOOOOOOOO 3. Back using AUFS again after bug fixes and layer 42 limit removal a. Continue to fight layer issues, mount issues 4. Back to device mapper with Docker 1.7 dynamic binaries! What we’ve landed on Ubuntu = AUFS Amazon Linux = Device mapper
  • 23. Get a good registry Great options • Hub.docker.com • Quay.io • Trusted registry • Google • Azure • AWS • S3.. no registry… save/load 1. We started private registry a. went insane with buggy releases, failed pulls/pushes 2. Went to quay.io a. happy but slow, and costs $$ 3. Back to private registry 0.9 release… now stable 4. Scaled it and working great 5. Now working on upgrading to Docker Registry 2.1
  • 24. Storage -Unlimited -Cheap Elasticache -Redis Beanstalk -Autoscale Scaling our registry • 100% AWS • Beanstalk ELB Auto scaling Group Docker web service • Redis Cache Elasticache Had issues when a node failed • S3 Backend Had huge issues on layer corruption ELB Docker Registry Cache S3
  • 25. Isolation is your friend Low container to host ratio • Compute Spikey Processing… no problem • Storage Out of disk… no problem • Networking Shared bandwidth… no problem • Ram Swapping issue… no problem • Security Groups Least privilege… no problem Web Container v2 Amazon AMI setup with Chef Cron job to run shell script to orchestrate containers Hipache/Redis Container Web Container v1
  • 26. CI/CD with Docker • The biggest ROI with Docker • Teamcity • Used to use Docker in Docker https://jpetazzo.github.io/2015/09/03/do-not- use-docker-in-docker-for-ci/ • Agents used to run in a docker container Now built with chef and packer • Autoscaling with Docker? Github.com Dockerfile Teamcity Agent Agent Agent Registry Server
  • 27. Many PaaS/CaaS utilize sidekicks • Amazon ECS https://github.com/aws/amazon-ecs-agent • Amazon Beanstalk https://github.com/aws/aws-eb-python- dockerfiles • Netflix Prana • Smartstack • Docker Ambassador http://www.slideshare.net/Docker/slides hare-burns • CoreOS - Sidekick • Rancher • Logging Container Container Container Container (sidekick) Rest Api Service Discovery Health checks Orchestration Container Host
  • 28. PaaS/CaaS How you’ll scale a single service
  • 29. Beanstalk -Cloud formation EC2 Server Autoscaling Isolation Security Groups Environment Variables Beanstalk architecture • Run Over 50+ services on beanstalk today • Automagically built web container per branch of code • Corp site/Help site • 100% automated!! • Great for Web services SOA • You will have disk issues Storage Easy to spin up DNS service discovery Load balancer SSL Termination ELB Container RDS
  • 31. One year ago • CoreOS... so cool • Mesos… cool with scale • Beanstalk… with docker support • Swarm… beta • Deis… oooo saas • ECS… ok now we're getting somewhere • Kubernetes… where did that come from… looks cool too Now….. • Kubernetes on top of DCOS, on top of Mesos, on top of CoreOS… facepalm
  • 32. PaaS/CaaS Overview CoreOS DCOS Kubernetes ECS Orchestration Scheduler Resource Allocation Service Discovery More than Containers Health Check Storage clustering... Live Migration... Affinity rules...
  • 33. DCOS Mesos Private Slave Auto Scaling Health Checks Intelligence Being successful with a PaaS/CaaS Our DCOS Architecture Built a edge router Built a Brain router Infra CLI This will run all of our stateless services Mesos Public Slave Auto Scaling Service Discovery Public <> Private DNS Can be Internal as well Storage SSL Termination DNS ELB Edge Router DB2 ServiceService Edge Router DB3DB1 Mesos Master Marathon Health Check API Change Event Bus InfraIQ
  • 35. Summary • Starting out? Just use the same tools you have • You’ll need to roll up your sleeves • Security is not hard but you need to think about it • Many vendors are entering container space • Build towards a PaaS • Many solutions to PaaS • Know what you're trying to solve • Have fun!
  • 36.