SlideShare a Scribd company logo
CONTAINERISE
EVERYTHING
why you should stop installing
development environment locally
https://www.flickr.com/photos/roludsgn/1036204298/
I’M DANIEL DEMMEL (@DAAAIN)
I work at
We design, build and launch
digital products
TALK OUTLINE
A brief history of the shipping industry
What is containerisation, why do we need it
and how it will change software development
A practical introduction to Docker
Handling bulk
goods used to be
messy and labour
intensive…
https://en.wikipedia.org/wiki/File:Queens_Wharf,_Port_Adelaide,_before_1927.jpeg
…until Malcolm
McLean had
enough by 1955
and came up with
standardised,
multi-modal
containers.
https://www.flickr.com/photos/maerskline/7312751706/in/photostream/
BUT WHY DO I
CARE ABOUT THE
SHIPPING
INDUSTRY?
CONTAINERISATION
BROUGHT US
GLOBALISATION
https://en.wikipedia.org/wiki/File:Shanghai_Express_Port_of_Rotterdam_17-Apr-2006.jpg
SHIPPING CONTAINERS
PROVIDE:
Encapsulation
Standardised interfaces
Easy scaling
:SHIPIT:
SO WHAT IS THE
PROBLEM WITH
DEVELOPMENT
ENVIRONMENTS?
This is your
development
machine with the
dependencies
for all projects,
tools, libraries
and versions
installed on it:
https://en.wikipedia.org/wiki/File:Queens_Wharf,_Port_Adelaide,_before_1927.jpeg
JAVA 6
JAVA 7
RUBY 2.1
RUBY 1.9
MYSQL 4
MYSQL 5
IO.JS 2.4
NODE 0.8
PHP 5
NODE 0.12
IMAGEMAGICK 6
PHP 4
POSTGRESQL 9
HERE BE DRAGONS
SASS 3.4
LIBSASS 3.2LESS 2.5
But it could be
neat like
Malcolm’s port:
https://www.flickr.com/photos/maerskline/7312751706/in/photostream/
JAVA 6
RUBY 1.9
MYSQL 5
NODE 0.8
PHP 5
…
POSTGRESQL 9
…
…
APPROACHES TO HANDLE
DIFFERENT ENVIRONMENTS
Package managers Version switchers
Virtualisation Containerisation
PACKAGE MANAGERS
Libraries installed locally for each project
Easy to forget including existing globally
installed tools into project package list
Falls apart with legacy projects
For ex: Bundler, NPM, Maven
VERSION SWITCHERS
Picks you the right runtime version to execute
your code in per folder / project
Gets messy with a fair amount of magic to
make things happen (and go wrong)
For ex: RVM, Rbenv, NVM, JSelect
VIRTUALISATION
Totally independent virtual operating systems
Can perfectly mirror production environment
Mostly scripted dependency installation
Portable image snapshots
For ex: Virtualbox, Vagrant, Puppet, Chef, Salt
CONTAINERISATION
Isolated environments reusing host OS core
Much smaller and no overhead of virtualisation
Pretty much instant creation and restart
For ex: LXC, Docker, Open Container Initiative
LXC
DOCKER ECOSYSTEM
Open source with big and active community
Addresses several levels of the problem
Makes containerisation accessible to all
DOCKER (ENGINE)
Abstraction and UX around Linux Containers
REST API to interact with CLI and remotes
Dockerfile as build recipe
Portable and incremental images
Uses Virtualbox + Boot2Docker on Win / Mac
DOCKER HUB / REGISTRY
Github of Docker with public and private repos
A place to store / share container snapshots
Fork or build on top of existing containers
API hooks to integrate build / testing pipelines
KITEMATIC
A simple GUI to see containers created locally
and available on Docker Hub
Installs everything you need to get started
Mac only, but Windows version is coming
Not that useful if you want to customise or
build on containers, little info shown in search
DOCKER MACHINE
Makes it easy to manage containers and hosts
Works both locally and with cloud providers
A quick way to do simple deploys
DEMO (FINALLY!)
Walkthrough of Docker boilerplate repo
React + Sass front end app
Express / Node server
Gulp build chain
package.json, Dockerfile, Makefile
Terminal + browser demo
Kitematic
Apache
Wordpress
PHP
MySQL database
uploaded
files
MICROSERVICES
“Containerisation will start a similar
revolution in open source as Git did,
by making it much simpler to take any
code and start compiling it right away
QUESTIONS?
Yes, we’re hiring, do get in touch: dain@ustwo.com
Links
Talk: http://www.danieldemmel.me/blog/
2015/08/14/containerise-everything/
Git repo: https://github.com/ustwo/docker-node-
boilerplate
Dockerfile best practices: https://docs.docker.com/
articles/dockerfile_best-practices/
CREDITS
Talk is Creative Commons Attribution 4.0 International
Image credits as attributed on respective slides
Vector icons from the Noun project
Package: https://thenounproject.com/search/?q=package&i=10996
Switch: https://thenounproject.com/search/?q=switch&i=79501
Virtualisation: https://thenounproject.com/term/data-center-server-
virtualization/95507/
Container: https://thenounproject.com/term/shipping-container/116963/

More Related Content

What's hot (20)

PPTX
Azure ai on premises with docker
Vishwas N
 
PPTX
New in docker containercamp 2016
Mano Marks
 
PPTX
Intro to Docker at the 2016 Evans Developer relations conference
Mano Marks
 
PPTX
Docker basics
AmanSoni129
 
PPTX
Introduction to Docker - 2017
Docker, Inc.
 
PDF
Integrating Docker EE into Société Générale's Existing Enterprise IT Systems
Docker, Inc.
 
PPTX
AWS ECS LESSONS LEARNED
humayun Jamal
 
PDF
Docker 101
Lâm Đào
 
PDF
Current Status of Kubernetes-powered Docker for Mac Platform
Ajeet Singh Raina
 
PPTX
Building microservices with docker
Roman Melnyk
 
PPTX
Docker - Portable Deployment
javaonfly
 
PPTX
Docker Platform 1.9
Docker, Inc.
 
PDF
Looking Under The Hood: containerD
Docker, Inc.
 
PDF
Infinit: Modern Storage Platform for Container Environments
Docker, Inc.
 
PDF
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker, Inc.
 
PPTX
Docker Basic to Advance
Paras Jain
 
PDF
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Docker, Inc.
 
PPTX
Docker 101 : Introduction to Docker and Containers
Yajushi Srivastava
 
PDF
How Docker EE is Finnish Railway’s Ticket to App Modernization
Docker, Inc.
 
PPTX
Docker and containerization
Amulya Saxena
 
Azure ai on premises with docker
Vishwas N
 
New in docker containercamp 2016
Mano Marks
 
Intro to Docker at the 2016 Evans Developer relations conference
Mano Marks
 
Docker basics
AmanSoni129
 
Introduction to Docker - 2017
Docker, Inc.
 
Integrating Docker EE into Société Générale's Existing Enterprise IT Systems
Docker, Inc.
 
AWS ECS LESSONS LEARNED
humayun Jamal
 
Docker 101
Lâm Đào
 
Current Status of Kubernetes-powered Docker for Mac Platform
Ajeet Singh Raina
 
Building microservices with docker
Roman Melnyk
 
Docker - Portable Deployment
javaonfly
 
Docker Platform 1.9
Docker, Inc.
 
Looking Under The Hood: containerD
Docker, Inc.
 
Infinit: Modern Storage Platform for Container Environments
Docker, Inc.
 
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker, Inc.
 
Docker Basic to Advance
Paras Jain
 
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Docker, Inc.
 
Docker 101 : Introduction to Docker and Containers
Yajushi Srivastava
 
How Docker EE is Finnish Railway’s Ticket to App Modernization
Docker, Inc.
 
Docker and containerization
Amulya Saxena
 

Similar to Containerise everything - Why you should stop installing development environment locally (20)

PDF
Getting Started with Docker - Nick Stinemates
Atlassian
 
PDF
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace
 
PDF
Introduction to Docker at the Azure Meet-up in New York
Jérôme Petazzoni
 
PPTX
Docker, the Future of Distributed Applications | Docker Tour de France 2014
Julien Barbier
 
PPTX
Introduction Into Docker Ecosystem
Alexander Pastukhov, OCPJP, OCPJWSD
 
PDF
Rackspace::Solve SFO - Solve(Scale) Featuring Docker CEO Ben Golub
Rackspace
 
PPTX
The challenge of application distribution - Introduction to Docker (2014 dec ...
Sébastien Portebois
 
PDF
Docker and OpenStack Boston Meetup
Kamesh Pemmaraju
 
PDF
Demystifying Containerization Principles for Data Scientists
Dr Ganesh Iyer
 
PPTX
Docker open stack boston
dotCloud
 
PPTX
OpenStack Boston
Docker, Inc.
 
PPTX
Intro to Docker November 2013
Docker, Inc.
 
PPTX
Docker Ecosystem on Azure
Patrick Chanezon
 
PDF
Introduction to Docker at Glidewell Laboratories in Orange County
Jérôme Petazzoni
 
PDF
Introduction to Docker and deployment and Azure
Jérôme Petazzoni
 
PPTX
Docker, Containers and the Future of Application Delivery
Docker, Inc.
 
PPTX
Why docker | OSCON 2013
dotCloud
 
PPTX
Docker, Containers and the Future of Application Delivery
Docker, Inc.
 
PDF
Docker what - Frank Maounis
Frank Maounis
 
PDF
Dockers and kubernetes
Dr Ganesh Iyer
 
Getting Started with Docker - Nick Stinemates
Atlassian
 
Rackspace::Solve NYC - The Future of Applications with Ken Cochrane, Engineer...
Rackspace
 
Introduction to Docker at the Azure Meet-up in New York
Jérôme Petazzoni
 
Docker, the Future of Distributed Applications | Docker Tour de France 2014
Julien Barbier
 
Introduction Into Docker Ecosystem
Alexander Pastukhov, OCPJP, OCPJWSD
 
Rackspace::Solve SFO - Solve(Scale) Featuring Docker CEO Ben Golub
Rackspace
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
Sébastien Portebois
 
Docker and OpenStack Boston Meetup
Kamesh Pemmaraju
 
Demystifying Containerization Principles for Data Scientists
Dr Ganesh Iyer
 
Docker open stack boston
dotCloud
 
OpenStack Boston
Docker, Inc.
 
Intro to Docker November 2013
Docker, Inc.
 
Docker Ecosystem on Azure
Patrick Chanezon
 
Introduction to Docker at Glidewell Laboratories in Orange County
Jérôme Petazzoni
 
Introduction to Docker and deployment and Azure
Jérôme Petazzoni
 
Docker, Containers and the Future of Application Delivery
Docker, Inc.
 
Why docker | OSCON 2013
dotCloud
 
Docker, Containers and the Future of Application Delivery
Docker, Inc.
 
Docker what - Frank Maounis
Frank Maounis
 
Dockers and kubernetes
Dr Ganesh Iyer
 
Ad

Recently uploaded (20)

PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
July Patch Tuesday
Ivanti
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Python basic programing language for automation
DanialHabibi2
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Ad

Containerise everything - Why you should stop installing development environment locally

  • 1. CONTAINERISE EVERYTHING why you should stop installing development environment locally https://www.flickr.com/photos/roludsgn/1036204298/
  • 2. I’M DANIEL DEMMEL (@DAAAIN) I work at We design, build and launch digital products
  • 3. TALK OUTLINE A brief history of the shipping industry What is containerisation, why do we need it and how it will change software development A practical introduction to Docker
  • 4. Handling bulk goods used to be messy and labour intensive… https://en.wikipedia.org/wiki/File:Queens_Wharf,_Port_Adelaide,_before_1927.jpeg
  • 5. …until Malcolm McLean had enough by 1955 and came up with standardised, multi-modal containers. https://www.flickr.com/photos/maerskline/7312751706/in/photostream/
  • 6. BUT WHY DO I CARE ABOUT THE SHIPPING INDUSTRY?
  • 10. SO WHAT IS THE PROBLEM WITH DEVELOPMENT ENVIRONMENTS?
  • 11. This is your development machine with the dependencies for all projects, tools, libraries and versions installed on it: https://en.wikipedia.org/wiki/File:Queens_Wharf,_Port_Adelaide,_before_1927.jpeg JAVA 6 JAVA 7 RUBY 2.1 RUBY 1.9 MYSQL 4 MYSQL 5 IO.JS 2.4 NODE 0.8 PHP 5 NODE 0.12 IMAGEMAGICK 6 PHP 4 POSTGRESQL 9 HERE BE DRAGONS SASS 3.4 LIBSASS 3.2LESS 2.5
  • 12. But it could be neat like Malcolm’s port: https://www.flickr.com/photos/maerskline/7312751706/in/photostream/ JAVA 6 RUBY 1.9 MYSQL 5 NODE 0.8 PHP 5 … POSTGRESQL 9 … …
  • 13. APPROACHES TO HANDLE DIFFERENT ENVIRONMENTS Package managers Version switchers Virtualisation Containerisation
  • 14. PACKAGE MANAGERS Libraries installed locally for each project Easy to forget including existing globally installed tools into project package list Falls apart with legacy projects For ex: Bundler, NPM, Maven
  • 15. VERSION SWITCHERS Picks you the right runtime version to execute your code in per folder / project Gets messy with a fair amount of magic to make things happen (and go wrong) For ex: RVM, Rbenv, NVM, JSelect
  • 16. VIRTUALISATION Totally independent virtual operating systems Can perfectly mirror production environment Mostly scripted dependency installation Portable image snapshots For ex: Virtualbox, Vagrant, Puppet, Chef, Salt
  • 17. CONTAINERISATION Isolated environments reusing host OS core Much smaller and no overhead of virtualisation Pretty much instant creation and restart For ex: LXC, Docker, Open Container Initiative
  • 18. LXC
  • 19. DOCKER ECOSYSTEM Open source with big and active community Addresses several levels of the problem Makes containerisation accessible to all
  • 20. DOCKER (ENGINE) Abstraction and UX around Linux Containers REST API to interact with CLI and remotes Dockerfile as build recipe Portable and incremental images Uses Virtualbox + Boot2Docker on Win / Mac
  • 21. DOCKER HUB / REGISTRY Github of Docker with public and private repos A place to store / share container snapshots Fork or build on top of existing containers API hooks to integrate build / testing pipelines
  • 22. KITEMATIC A simple GUI to see containers created locally and available on Docker Hub Installs everything you need to get started Mac only, but Windows version is coming Not that useful if you want to customise or build on containers, little info shown in search
  • 23. DOCKER MACHINE Makes it easy to manage containers and hosts Works both locally and with cloud providers A quick way to do simple deploys
  • 24. DEMO (FINALLY!) Walkthrough of Docker boilerplate repo React + Sass front end app Express / Node server Gulp build chain package.json, Dockerfile, Makefile Terminal + browser demo Kitematic
  • 26. “Containerisation will start a similar revolution in open source as Git did, by making it much simpler to take any code and start compiling it right away
  • 27. QUESTIONS? Yes, we’re hiring, do get in touch: [email protected] Links Talk: http://www.danieldemmel.me/blog/ 2015/08/14/containerise-everything/ Git repo: https://github.com/ustwo/docker-node- boilerplate Dockerfile best practices: https://docs.docker.com/ articles/dockerfile_best-practices/
  • 28. CREDITS Talk is Creative Commons Attribution 4.0 International Image credits as attributed on respective slides Vector icons from the Noun project Package: https://thenounproject.com/search/?q=package&i=10996 Switch: https://thenounproject.com/search/?q=switch&i=79501 Virtualisation: https://thenounproject.com/term/data-center-server- virtualization/95507/ Container: https://thenounproject.com/term/shipping-container/116963/