SlideShare a Scribd company logo
1 of 44
Download to read offline
7 REASONS TO START USING 
DOCKER 
TARAS LYAPUN
https://flic.kr/p/dd2R3Ld
DOCKER IS NOT A 
NEW VAGRANT! 
3 
REASON #1
LINUX CONTAINER 
• OPERATING SYSTEM–LEVEL VIRTUALIZATION 
• CGROUPS 
• NAMESPACE 
4
5
6 
VIRTUAL MACHINE CONTAINER 
ISOLATION COMPLETE ALMOST 
COMPLETE 
DENSITY x1 x3 
OVERHEAD HIGH LOW 
STARTUP SPEED 30 - 60 sec ~1 second
DOCKER IS SIMPLE! 
7 
REASON #2
DOCKERFILE 
8 
FROM ubuntu 
RUN apt-get install -y python 
ADD ./app /app 
RUN pip install -r /app/requirements.txt 
WORKDIR /app 
EXPOSE 8000 
VOLUME /app/logs 
CMD /app/gunicorn.sh
COMMAND LINE INTERFACE 
9 
~ docker build -t test-image . 
~ docker run -d -p 8000:8000  
-v /var/logs/docker:/app/logs  
—restart=always  
test-image 
~ docker push your-repo/test-image
IDENTITY AND 
REPEATABILITY OF DEV, 
TEST AND PROD 
ENVIRONMENT 
10 
REASON #3
VAGRANT 
11
DOCKER 
12
FIG 
13 
web: 
build: . 
command: python app.py 
links: 
- db 
ports: 
- "8000:8000" 
db: 
image: postgres 
~ fig up 
http://www.fig.sh/
IDEAL CI + CD* 
*from my point of view 
14
SIMPLE DEPLOYMENT 
15 
REASON #4
BEFORE DOCKER 
16
AFTER DOCKER 
17
BEFORE DOCKER 
• --- 
• # INSTALL ELASTICSEARCH 
• # INSTALL APT KEY 
• - APT_KEY: URL=HTTP://PACKAGES.ELASTICSEARCH.ORG/GPG-KEY-ELASTICSEARCH 
STATE=PRESENT 
• # SET DEDICATED REPOSITORY 
• - APT_REPOSITORY: REPO='DEB HTTP://PACKAGES.ELASTICSEARCH.ORG/ 
ELASTICSEARCH/{{ES_VERSION}}/DEBIAN STABLE MAIN' STATE=PRESENT 
• # INSTALL ELASTICSEARCH WITH DEPENDANCIES 
• - NAME: INSTALL ELASTICSEARCH 
• APT: NAME={{ ITEM }} STATE=LATEST FORCE=YES 
• TAGS: ELASTICSEARCH 
• WITH_ITEMS: 
• - ELASTICSEARCH 
• - OPENJDK-7-JRE-HEADLESS 
• - OPENNTPD 
• NOTIFY: INIT ELASTICSEARCH 
• # SET LIMITS.CONF 
• - NAME: LIMITS.CONF TUNING 
• LINEINFILE: DEST=/ETC/SECURITY/LIMITS.CONF LINE="{{ ITEM }}" 
• TAGS: ELASTICSEARCH 
• WITH_ITEMS: 
• - 'ELASTICSEARCH SOFT NOFILE 32000' 
• - 'ELASTICSEARCH HARD NOFILE 32000' 
• # ENSURE SERVICE STARTED 
• - SERVICE: NAME=ELASTICSEARCH STATE=STARTED 
• # INSTALL PLUGINS 
• - INCLUDE: PLUGINS.YML 
18
AFTER DOCKER 
~ DOCKER PULL DOCKERFILE/ELASTICSEARCH 
~ DOCKER RUN -D -P 9200:9200 -V /VAR/DATA:/DATA  
DOCKERFILE/ELASTICSEARCH 
19 
• --- 
• # INSTALL ELASTICSEARCH 
• # INSTALL APT KEY 
• - APT_KEY: URL HTTP 
STATE=PRESENT 
• # SET DEDICATED REPOSITORY 
• - APT_REPOSITORY 
ELASTICSEARCH/{{ES 
• # INSTALL ELASTICSEARCH 
• - NAME: INSTALL ELASTICSEARCH 
• APT: NAME={{ ITEM 
• TAGS: ELASTICSEARCH 
• WITH_ITEMS: 
• - ELASTICSEARCH 
• - OPENJDK-7-JRE 
• - OPENNTPD 
• NOTIFY 
• # SET LIMITS 
• - NAME LIMITS 
• LINEINFILE 
• TAGS: ELASTICSEARCH 
• WITH_ITEMS 
• - 'ELASTICSEARCH 
• - 'ELASTICSEARCH 
• # ENSURE 
• - SERVICE 
• # INSTALL 
• - INCLUDE
DOCKERFILE 
20 
FROM ubuntu 
RUN apt-get install -y python 
ADD ./app /app 
RUN pip install -r /app/requirements.txt 
WORKDIR /app 
EXPOSE 8000 
VOLUME /app/logs 
CMD /app/gunicorn.sh
SIMPLE ROLLBACK 
~ DOCKER STOP NEW_CONTAINER 
~ DOCKER START OLD_CONTAINER 
21
IMAGE REUSE 
FROM IDEAL-PYTHON-ENVIRONMENT 
# SPECIFIC CODE 
22
EASY TO BUILD YOUR 
OWN PLATFORM 
23 
REASON #5
WHY MAY YOU NEED PAAS? 
• A LOT OF PROJECTS 
• SERVICE-ORIENTED ARCHITECTURE 
• A LOT OF TESTING ENVIRONMENTS 
• CONTINUOUS DEPLOYMENT 
• SCALABILITY 
24
OPENSOURCE PAAS BUILT WITH DOCKER 
• DOKKU 
• DEIS 
• FLYNN 
• BUILD YOUR OWN 
25
DOCKER FORCES YOU 
TO THINK ABOUT 
SCALE 
26 
REASON #6
THE TWELVE-FACTOR APP 
• DECLARATIVE FORMAT FOR SETUP AUTOMATION 
• CLEAN CONTRACT WITH UNDERLYING OS 
• SUITABLE FOR DEPLOYMENT ON MODERN CLOUD PLATFORMS 
• MINIMIZE DIVERGENCE BETWEEN DEV AND PROD 
• CAN SCALE UP WITHOUT SIGNIFICANT CHANGES TO TOOLING 
OR ARCHITECTURE 
http://12fact2o7 r.net
1. CODEBASE 
One codebase tracked in revision control, many deploys 
28
2. DEPENDENCIES 
29 
Explicitly declare and isolate dependencies
3. CONFIG 
30 
Store config in the environment 
• SETTINGS_LOCAL.PY 
• ~ DOCKER RUN -D -E SMTP_SERVER_PASSWORD=12345  
PROJECT/APP
4. BACKING SERVICES 
31 
Treat backing services as attached resources 
• DOCKER RUN -D —NAME=DB POSTGRES 
• DOCKER RUN -D —LINK DB:DB PROJECT/APP 
• MULTIHOST: HTTP://STACKOVERFLOW.COM/QUESTIONS/18285212/ 
HOW-TO-SCALE-DOCKER-CONTAINERS-IN-PRODUCTION
5. BUILD, CONFIG, RELEASE 
32 
Strictly separate build and run stages 
BUILD: 
DOCKER BUILD . 
CONFIG: 
DOCKER CREATE 
RELEASE: 
DOCKER START
6. PROCESSES 
Execute the app as one or more stateless processes 
33 
DOCKER CONTAINER STATELESS BY DEFAULT
7. PORT BINDING 
34 
Export services via port binding 
~ DOCKER RUN -P 8000:80 PROJECT/APP
8. CONCURRENCY 
35 
Scale out via the process model
9. DISPOSABILITY 
Maximize robustness with fast startup and graceful 
shutdown 
36 
~ DOCKER STOP CONTAINER_NAME 
~ DOCKER START CONTAINER_NAME
10. DEV/PROD PARITY 
37 
Keep development, staging, and production 
as similar as possible 
SLIDE # 11
11. LOGS 
38 
Treat logs as event streams 
~ DOCKER LOGS CONTAINER_NAME
12. ADMIN PROCESSES 
Run admin/management tasks as one-off processes 
39 
~ DOCKER RUN PROJECT/APP /BIN/RUN_GUNICORN.SH 
~ DOCKER RUN PROJECT/APP /BIN/RUN_CELERY.SH 
~ DOCKER RUN PROJECT/APP PYTHON MANAGE.PY MIGRATE 
~ DOCKER EXEC CONTAINER_NAME PYTHON MANAGE.PY ANYTHING
DOCKER IS A NEW 
BUZZ WORD* 
40 
REASON #7 
* in a good sense
INTEREST GROWING 
March 2013 October 2014 
41
CRIU 
•FREEZE A RUNNING APPLICATION 
•CHECKPOINT IT TO A HARD DRIVE 
•RESTORE AND RUN THE APPLICATION 
42
CORE OS 
•NEW RE-ARCHITECTED LINIX DISTRIBUTION 
•MINIMAL RAM USAGE 
•APPLICATIONS RUN AS DOCKER CONTAINERS 
•DESIGNED FOR SCALE 
43
QUESTIONS, COMMENTS, THOUGHTS? 
TARAS LIAPUN 
@TLYAPUN 
TARASLYAPUN@GMAIL.COM 
44

More Related Content

What's hot

Kubernetes on AWS at Zalando: Failures & Learnings - DevOps NRW
Kubernetes on AWS at Zalando: Failures & Learnings - DevOps NRWKubernetes on AWS at Zalando: Failures & Learnings - DevOps NRW
Kubernetes on AWS at Zalando: Failures & Learnings - DevOps NRWHenning Jacobs
 
Salty OPS – Saltstack Introduction
Salty OPS – Saltstack IntroductionSalty OPS – Saltstack Introduction
Salty OPS – Saltstack IntroductionWalter Liu
 
Containerize ovs ovn components
Containerize ovs ovn componentsContainerize ovs ovn components
Containerize ovs ovn componentsAliasgar Ginwala
 
Tick Stack - Listen your infrastructure and please sleep
Tick Stack - Listen your infrastructure and please sleepTick Stack - Listen your infrastructure and please sleep
Tick Stack - Listen your infrastructure and please sleepGianluca Arbezzano
 
Migrating the Online’s console with Docker
Migrating the Online’s console with DockerMigrating the Online’s console with Docker
Migrating the Online’s console with DockerScaleway
 
5 Vampir Configuration At IU
5 Vampir Configuration At IU5 Vampir Configuration At IU
5 Vampir Configuration At IUPTIHPA
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Nagios
 
NGINX_conf_2016_talk
NGINX_conf_2016_talkNGINX_conf_2016_talk
NGINX_conf_2016_talkkunalvjti
 
Writing Custom Saltstack Execution Modules
Writing Custom Saltstack Execution ModulesWriting Custom Saltstack Execution Modules
Writing Custom Saltstack Execution ModulesJulian Pacheco
 
Compliance as Code: Velocity with Security - Fraser Pollock, Chef
Compliance as Code: Velocity with Security - Fraser Pollock, ChefCompliance as Code: Velocity with Security - Fraser Pollock, Chef
Compliance as Code: Velocity with Security - Fraser Pollock, ChefAlert Logic
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The HoodNagios
 
KubeCon London 2016 Ronana Cloud Native SDN
KubeCon London 2016 Ronana Cloud Native SDNKubeCon London 2016 Ronana Cloud Native SDN
KubeCon London 2016 Ronana Cloud Native SDNRomana Project
 
OSMC 2014: Monitoring VoIP Systems | Sebastian Damm
OSMC 2014: Monitoring VoIP Systems | Sebastian DammOSMC 2014: Monitoring VoIP Systems | Sebastian Damm
OSMC 2014: Monitoring VoIP Systems | Sebastian DammNETWAYS
 
Nxll21 ospf filtering & summarization
Nxll21 ospf filtering & summarizationNxll21 ospf filtering & summarization
Nxll21 ospf filtering & summarizationNetwax Lab
 
Loophole: Timing Attacks on Shared Event Loops in Chrome
Loophole: Timing Attacks on Shared Event Loops in ChromeLoophole: Timing Attacks on Shared Event Loops in Chrome
Loophole: Timing Attacks on Shared Event Loops in Chromecgvwzq
 
Getting started with RDO Havana
Getting started with RDO HavanaGetting started with RDO Havana
Getting started with RDO HavanaDan Radez
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX, Inc.
 
Nginx internals
Nginx internalsNginx internals
Nginx internalsliqiang xu
 

What's hot (20)

Kubernetes on AWS at Zalando: Failures & Learnings - DevOps NRW
Kubernetes on AWS at Zalando: Failures & Learnings - DevOps NRWKubernetes on AWS at Zalando: Failures & Learnings - DevOps NRW
Kubernetes on AWS at Zalando: Failures & Learnings - DevOps NRW
 
Salty OPS – Saltstack Introduction
Salty OPS – Saltstack IntroductionSalty OPS – Saltstack Introduction
Salty OPS – Saltstack Introduction
 
Containerize ovs ovn components
Containerize ovs ovn componentsContainerize ovs ovn components
Containerize ovs ovn components
 
Tick Stack - Listen your infrastructure and please sleep
Tick Stack - Listen your infrastructure and please sleepTick Stack - Listen your infrastructure and please sleep
Tick Stack - Listen your infrastructure and please sleep
 
Migrating the Online’s console with Docker
Migrating the Online’s console with DockerMigrating the Online’s console with Docker
Migrating the Online’s console with Docker
 
5 Vampir Configuration At IU
5 Vampir Configuration At IU5 Vampir Configuration At IU
5 Vampir Configuration At IU
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
 
NGINX_conf_2016_talk
NGINX_conf_2016_talkNGINX_conf_2016_talk
NGINX_conf_2016_talk
 
Writing Custom Saltstack Execution Modules
Writing Custom Saltstack Execution ModulesWriting Custom Saltstack Execution Modules
Writing Custom Saltstack Execution Modules
 
Compliance as Code: Velocity with Security - Fraser Pollock, Chef
Compliance as Code: Velocity with Security - Fraser Pollock, ChefCompliance as Code: Velocity with Security - Fraser Pollock, Chef
Compliance as Code: Velocity with Security - Fraser Pollock, Chef
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The Hood
 
KubeCon London 2016 Ronana Cloud Native SDN
KubeCon London 2016 Ronana Cloud Native SDNKubeCon London 2016 Ronana Cloud Native SDN
KubeCon London 2016 Ronana Cloud Native SDN
 
OSMC 2014: Monitoring VoIP Systems | Sebastian Damm
OSMC 2014: Monitoring VoIP Systems | Sebastian DammOSMC 2014: Monitoring VoIP Systems | Sebastian Damm
OSMC 2014: Monitoring VoIP Systems | Sebastian Damm
 
How to monitor NGINX
How to monitor NGINXHow to monitor NGINX
How to monitor NGINX
 
Cloud Native SDN
Cloud Native SDNCloud Native SDN
Cloud Native SDN
 
Nxll21 ospf filtering & summarization
Nxll21 ospf filtering & summarizationNxll21 ospf filtering & summarization
Nxll21 ospf filtering & summarization
 
Loophole: Timing Attacks on Shared Event Loops in Chrome
Loophole: Timing Attacks on Shared Event Loops in ChromeLoophole: Timing Attacks on Shared Event Loops in Chrome
Loophole: Timing Attacks on Shared Event Loops in Chrome
 
Getting started with RDO Havana
Getting started with RDO HavanaGetting started with RDO Havana
Getting started with RDO Havana
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA Broadcast
 
Nginx internals
Nginx internalsNginx internals
Nginx internals
 

Viewers also liked

The collaboration network in OSM - the case of Italy
The collaboration network in OSM - the case of Italy The collaboration network in OSM - the case of Italy
The collaboration network in OSM - the case of Italy Maurizio Napolitano
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeWim Godden
 
Google Analytics - Guia de Campo
Google Analytics - Guia de CampoGoogle Analytics - Guia de Campo
Google Analytics - Guia de CampoIgor Cruz
 
Responsive Web Design - What You Need to Know to Get Started
Responsive Web Design - What You Need to Know to Get StartedResponsive Web Design - What You Need to Know to Get Started
Responsive Web Design - What You Need to Know to Get Startedjennybchicken
 
The Big Power Shift in Media
The Big Power Shift in MediaThe Big Power Shift in Media
The Big Power Shift in MediaIsabelle Quevilly
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeWim Godden
 
NFC exchange workshop
NFC exchange workshopNFC exchange workshop
NFC exchange workshopDirk Spannaus
 
Data rich chemistry inside wikipedia and other wikis
Data rich chemistry inside wikipedia and other wikis Data rich chemistry inside wikipedia and other wikis
Data rich chemistry inside wikipedia and other wikis Martin Walker
 
Is having no limits a limitation [distilled version]
Is having no limits a limitation [distilled version]Is having no limits a limitation [distilled version]
Is having no limits a limitation [distilled version]Ben Brignell
 
Something from Nothing: Simple Ways to Look Sharp When Time is Short
Something from Nothing: Simple Ways to Look Sharp When Time is ShortSomething from Nothing: Simple Ways to Look Sharp When Time is Short
Something from Nothing: Simple Ways to Look Sharp When Time is Shortkenwtw
 
Wakanda#1
Wakanda#1Wakanda#1
Wakanda#1kmiyako
 
Instant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and PuppetInstant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and PuppetPatrick Lee
 
Enrique Allen, D Fund - Warm Gun Conference
Enrique Allen, D Fund - Warm Gun ConferenceEnrique Allen, D Fund - Warm Gun Conference
Enrique Allen, D Fund - Warm Gun Conference500 Startups
 
Lean Agile Adoption Enterprise Challenges - XP 2012
Lean Agile Adoption Enterprise Challenges - XP 2012Lean Agile Adoption Enterprise Challenges - XP 2012
Lean Agile Adoption Enterprise Challenges - XP 2012Fabio Armani
 
All out in the Cloud - CloudEast 2012
All out in the Cloud - CloudEast 2012All out in the Cloud - CloudEast 2012
All out in the Cloud - CloudEast 2012Jan Jongboom
 
Keeping 100m+ users happy: How we test Shazam on Android
Keeping 100m+ users happy: How we test Shazam on AndroidKeeping 100m+ users happy: How we test Shazam on Android
Keeping 100m+ users happy: How we test Shazam on AndroidIordanis (Jordan) Giannakakis
 
Viva city open smart city platform
Viva city open smart city platformViva city open smart city platform
Viva city open smart city platformMarco Montanari
 
Desconf 2011 - Usar e esquecer suas ideias
Desconf 2011 - Usar e esquecer suas ideias    Desconf 2011 - Usar e esquecer suas ideias
Desconf 2011 - Usar e esquecer suas ideias Hélio Medeiros
 

Viewers also liked (20)

The collaboration network in OSM - the case of Italy
The collaboration network in OSM - the case of Italy The collaboration network in OSM - the case of Italy
The collaboration network in OSM - the case of Italy
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Google Analytics - Guia de Campo
Google Analytics - Guia de CampoGoogle Analytics - Guia de Campo
Google Analytics - Guia de Campo
 
jclouds BoF
jclouds BoFjclouds BoF
jclouds BoF
 
Responsive Web Design - What You Need to Know to Get Started
Responsive Web Design - What You Need to Know to Get StartedResponsive Web Design - What You Need to Know to Get Started
Responsive Web Design - What You Need to Know to Get Started
 
The Big Power Shift in Media
The Big Power Shift in MediaThe Big Power Shift in Media
The Big Power Shift in Media
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the code
 
NFC exchange workshop
NFC exchange workshopNFC exchange workshop
NFC exchange workshop
 
Data rich chemistry inside wikipedia and other wikis
Data rich chemistry inside wikipedia and other wikis Data rich chemistry inside wikipedia and other wikis
Data rich chemistry inside wikipedia and other wikis
 
HTTP 2
HTTP 2HTTP 2
HTTP 2
 
Is having no limits a limitation [distilled version]
Is having no limits a limitation [distilled version]Is having no limits a limitation [distilled version]
Is having no limits a limitation [distilled version]
 
Something from Nothing: Simple Ways to Look Sharp When Time is Short
Something from Nothing: Simple Ways to Look Sharp When Time is ShortSomething from Nothing: Simple Ways to Look Sharp When Time is Short
Something from Nothing: Simple Ways to Look Sharp When Time is Short
 
Wakanda#1
Wakanda#1Wakanda#1
Wakanda#1
 
Instant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and PuppetInstant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and Puppet
 
Enrique Allen, D Fund - Warm Gun Conference
Enrique Allen, D Fund - Warm Gun ConferenceEnrique Allen, D Fund - Warm Gun Conference
Enrique Allen, D Fund - Warm Gun Conference
 
Lean Agile Adoption Enterprise Challenges - XP 2012
Lean Agile Adoption Enterprise Challenges - XP 2012Lean Agile Adoption Enterprise Challenges - XP 2012
Lean Agile Adoption Enterprise Challenges - XP 2012
 
All out in the Cloud - CloudEast 2012
All out in the Cloud - CloudEast 2012All out in the Cloud - CloudEast 2012
All out in the Cloud - CloudEast 2012
 
Keeping 100m+ users happy: How we test Shazam on Android
Keeping 100m+ users happy: How we test Shazam on AndroidKeeping 100m+ users happy: How we test Shazam on Android
Keeping 100m+ users happy: How we test Shazam on Android
 
Viva city open smart city platform
Viva city open smart city platformViva city open smart city platform
Viva city open smart city platform
 
Desconf 2011 - Usar e esquecer suas ideias
Desconf 2011 - Usar e esquecer suas ideias    Desconf 2011 - Usar e esquecer suas ideias
Desconf 2011 - Usar e esquecer suas ideias
 

Similar to 7 reasons to start using Docker

Docker for the Brave
Docker for the BraveDocker for the Brave
Docker for the BraveDavid Schmitz
 
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 ProductionBen Hall
 
Docker HK Meetup - 201707
Docker HK Meetup - 201707Docker HK Meetup - 201707
Docker HK Meetup - 201707Clarence Ho
 
Get started with docker & dev ops
Get started with docker & dev opsGet started with docker & dev ops
Get started with docker & dev opsAsya Dudnik
 
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...Henning Jacobs
 
EMC World 2016 - code.09 Introduction to the Docker Platform
EMC World 2016 - code.09 Introduction to the Docker PlatformEMC World 2016 - code.09 Introduction to the Docker Platform
EMC World 2016 - code.09 Introduction to the Docker Platform{code}
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructureSergiy Kukunin
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaŁukasz Piątkowski
 
Get started with docker & dev ops
Get started with docker & dev opsGet started with docker & dev ops
Get started with docker & dev opsAsya Dudnik
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Ben Hall
 
The age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementThe age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementNicola Paolucci
 
New Docker Features for Orchestration and Containers
New Docker Features for Orchestration and ContainersNew Docker Features for Orchestration and Containers
New Docker Features for Orchestration and ContainersJeff Anderson
 
Docker Introduction.pdf
Docker Introduction.pdfDocker Introduction.pdf
Docker Introduction.pdfOKLABS
 
JDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
JDO 2019: Container orchestration with Docker Swarm - Jakub HajekJDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
JDO 2019: Container orchestration with Docker Swarm - Jakub HajekPROIDEA
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOpsandersjanmyr
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandTroublemaker Khunpech
 
Kubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai VallirajanKubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai VallirajanNeependra Khare
 
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...Agile Testing Alliance
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabMichelle Holley
 

Similar to 7 reasons to start using Docker (20)

Docker for the Brave
Docker for the BraveDocker for the Brave
Docker for the Brave
 
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
 
Docker HK Meetup - 201707
Docker HK Meetup - 201707Docker HK Meetup - 201707
Docker HK Meetup - 201707
 
Docker at Flux7
Docker at Flux7Docker at Flux7
Docker at Flux7
 
Get started with docker & dev ops
Get started with docker & dev opsGet started with docker & dev ops
Get started with docker & dev ops
 
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...
Why Kubernetes? Cloud Native and Developer Experience at Zalando - OWL Tech &...
 
EMC World 2016 - code.09 Introduction to the Docker Platform
EMC World 2016 - code.09 Introduction to the Docker PlatformEMC World 2016 - code.09 Introduction to the Docker Platform
EMC World 2016 - code.09 Introduction to the Docker Platform
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructure
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing Aurea
 
Get started with docker & dev ops
Get started with docker & dev opsGet started with docker & dev ops
Get started with docker & dev ops
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
The age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementThe age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster management
 
New Docker Features for Orchestration and Containers
New Docker Features for Orchestration and ContainersNew Docker Features for Orchestration and Containers
New Docker Features for Orchestration and Containers
 
Docker Introduction.pdf
Docker Introduction.pdfDocker Introduction.pdf
Docker Introduction.pdf
 
JDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
JDO 2019: Container orchestration with Docker Swarm - Jakub HajekJDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
JDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOps
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Kubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai VallirajanKubernetes Networking - Giragadurai Vallirajan
Kubernetes Networking - Giragadurai Vallirajan
 
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 

Recently uploaded

Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 

Recently uploaded (20)

Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 

7 reasons to start using Docker

  • 1. 7 REASONS TO START USING DOCKER TARAS LYAPUN
  • 3. DOCKER IS NOT A NEW VAGRANT! 3 REASON #1
  • 4. LINUX CONTAINER • OPERATING SYSTEM–LEVEL VIRTUALIZATION • CGROUPS • NAMESPACE 4
  • 5. 5
  • 6. 6 VIRTUAL MACHINE CONTAINER ISOLATION COMPLETE ALMOST COMPLETE DENSITY x1 x3 OVERHEAD HIGH LOW STARTUP SPEED 30 - 60 sec ~1 second
  • 7. DOCKER IS SIMPLE! 7 REASON #2
  • 8. DOCKERFILE 8 FROM ubuntu RUN apt-get install -y python ADD ./app /app RUN pip install -r /app/requirements.txt WORKDIR /app EXPOSE 8000 VOLUME /app/logs CMD /app/gunicorn.sh
  • 9. COMMAND LINE INTERFACE 9 ~ docker build -t test-image . ~ docker run -d -p 8000:8000 -v /var/logs/docker:/app/logs —restart=always test-image ~ docker push your-repo/test-image
  • 10. IDENTITY AND REPEATABILITY OF DEV, TEST AND PROD ENVIRONMENT 10 REASON #3
  • 13. FIG 13 web: build: . command: python app.py links: - db ports: - "8000:8000" db: image: postgres ~ fig up http://www.fig.sh/
  • 14. IDEAL CI + CD* *from my point of view 14
  • 15. SIMPLE DEPLOYMENT 15 REASON #4
  • 18. BEFORE DOCKER • --- • # INSTALL ELASTICSEARCH • # INSTALL APT KEY • - APT_KEY: URL=HTTP://PACKAGES.ELASTICSEARCH.ORG/GPG-KEY-ELASTICSEARCH STATE=PRESENT • # SET DEDICATED REPOSITORY • - APT_REPOSITORY: REPO='DEB HTTP://PACKAGES.ELASTICSEARCH.ORG/ ELASTICSEARCH/{{ES_VERSION}}/DEBIAN STABLE MAIN' STATE=PRESENT • # INSTALL ELASTICSEARCH WITH DEPENDANCIES • - NAME: INSTALL ELASTICSEARCH • APT: NAME={{ ITEM }} STATE=LATEST FORCE=YES • TAGS: ELASTICSEARCH • WITH_ITEMS: • - ELASTICSEARCH • - OPENJDK-7-JRE-HEADLESS • - OPENNTPD • NOTIFY: INIT ELASTICSEARCH • # SET LIMITS.CONF • - NAME: LIMITS.CONF TUNING • LINEINFILE: DEST=/ETC/SECURITY/LIMITS.CONF LINE="{{ ITEM }}" • TAGS: ELASTICSEARCH • WITH_ITEMS: • - 'ELASTICSEARCH SOFT NOFILE 32000' • - 'ELASTICSEARCH HARD NOFILE 32000' • # ENSURE SERVICE STARTED • - SERVICE: NAME=ELASTICSEARCH STATE=STARTED • # INSTALL PLUGINS • - INCLUDE: PLUGINS.YML 18
  • 19. AFTER DOCKER ~ DOCKER PULL DOCKERFILE/ELASTICSEARCH ~ DOCKER RUN -D -P 9200:9200 -V /VAR/DATA:/DATA DOCKERFILE/ELASTICSEARCH 19 • --- • # INSTALL ELASTICSEARCH • # INSTALL APT KEY • - APT_KEY: URL HTTP STATE=PRESENT • # SET DEDICATED REPOSITORY • - APT_REPOSITORY ELASTICSEARCH/{{ES • # INSTALL ELASTICSEARCH • - NAME: INSTALL ELASTICSEARCH • APT: NAME={{ ITEM • TAGS: ELASTICSEARCH • WITH_ITEMS: • - ELASTICSEARCH • - OPENJDK-7-JRE • - OPENNTPD • NOTIFY • # SET LIMITS • - NAME LIMITS • LINEINFILE • TAGS: ELASTICSEARCH • WITH_ITEMS • - 'ELASTICSEARCH • - 'ELASTICSEARCH • # ENSURE • - SERVICE • # INSTALL • - INCLUDE
  • 20. DOCKERFILE 20 FROM ubuntu RUN apt-get install -y python ADD ./app /app RUN pip install -r /app/requirements.txt WORKDIR /app EXPOSE 8000 VOLUME /app/logs CMD /app/gunicorn.sh
  • 21. SIMPLE ROLLBACK ~ DOCKER STOP NEW_CONTAINER ~ DOCKER START OLD_CONTAINER 21
  • 22. IMAGE REUSE FROM IDEAL-PYTHON-ENVIRONMENT # SPECIFIC CODE 22
  • 23. EASY TO BUILD YOUR OWN PLATFORM 23 REASON #5
  • 24. WHY MAY YOU NEED PAAS? • A LOT OF PROJECTS • SERVICE-ORIENTED ARCHITECTURE • A LOT OF TESTING ENVIRONMENTS • CONTINUOUS DEPLOYMENT • SCALABILITY 24
  • 25. OPENSOURCE PAAS BUILT WITH DOCKER • DOKKU • DEIS • FLYNN • BUILD YOUR OWN 25
  • 26. DOCKER FORCES YOU TO THINK ABOUT SCALE 26 REASON #6
  • 27. THE TWELVE-FACTOR APP • DECLARATIVE FORMAT FOR SETUP AUTOMATION • CLEAN CONTRACT WITH UNDERLYING OS • SUITABLE FOR DEPLOYMENT ON MODERN CLOUD PLATFORMS • MINIMIZE DIVERGENCE BETWEEN DEV AND PROD • CAN SCALE UP WITHOUT SIGNIFICANT CHANGES TO TOOLING OR ARCHITECTURE http://12fact2o7 r.net
  • 28. 1. CODEBASE One codebase tracked in revision control, many deploys 28
  • 29. 2. DEPENDENCIES 29 Explicitly declare and isolate dependencies
  • 30. 3. CONFIG 30 Store config in the environment • SETTINGS_LOCAL.PY • ~ DOCKER RUN -D -E SMTP_SERVER_PASSWORD=12345 PROJECT/APP
  • 31. 4. BACKING SERVICES 31 Treat backing services as attached resources • DOCKER RUN -D —NAME=DB POSTGRES • DOCKER RUN -D —LINK DB:DB PROJECT/APP • MULTIHOST: HTTP://STACKOVERFLOW.COM/QUESTIONS/18285212/ HOW-TO-SCALE-DOCKER-CONTAINERS-IN-PRODUCTION
  • 32. 5. BUILD, CONFIG, RELEASE 32 Strictly separate build and run stages BUILD: DOCKER BUILD . CONFIG: DOCKER CREATE RELEASE: DOCKER START
  • 33. 6. PROCESSES Execute the app as one or more stateless processes 33 DOCKER CONTAINER STATELESS BY DEFAULT
  • 34. 7. PORT BINDING 34 Export services via port binding ~ DOCKER RUN -P 8000:80 PROJECT/APP
  • 35. 8. CONCURRENCY 35 Scale out via the process model
  • 36. 9. DISPOSABILITY Maximize robustness with fast startup and graceful shutdown 36 ~ DOCKER STOP CONTAINER_NAME ~ DOCKER START CONTAINER_NAME
  • 37. 10. DEV/PROD PARITY 37 Keep development, staging, and production as similar as possible SLIDE # 11
  • 38. 11. LOGS 38 Treat logs as event streams ~ DOCKER LOGS CONTAINER_NAME
  • 39. 12. ADMIN PROCESSES Run admin/management tasks as one-off processes 39 ~ DOCKER RUN PROJECT/APP /BIN/RUN_GUNICORN.SH ~ DOCKER RUN PROJECT/APP /BIN/RUN_CELERY.SH ~ DOCKER RUN PROJECT/APP PYTHON MANAGE.PY MIGRATE ~ DOCKER EXEC CONTAINER_NAME PYTHON MANAGE.PY ANYTHING
  • 40. DOCKER IS A NEW BUZZ WORD* 40 REASON #7 * in a good sense
  • 41. INTEREST GROWING March 2013 October 2014 41
  • 42. CRIU •FREEZE A RUNNING APPLICATION •CHECKPOINT IT TO A HARD DRIVE •RESTORE AND RUN THE APPLICATION 42
  • 43. CORE OS •NEW RE-ARCHITECTED LINIX DISTRIBUTION •MINIMAL RAM USAGE •APPLICATIONS RUN AS DOCKER CONTAINERS •DESIGNED FOR SCALE 43
  • 44. QUESTIONS, COMMENTS, THOUGHTS? TARAS LIAPUN @TLYAPUN TARASLYAPUN@GMAIL.COM 44