SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
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/

Más contenido relacionado

La actualidad más candente

Azure ai on premises with docker
Azure ai on premises with  dockerAzure ai on premises with  docker
Azure ai on premises with dockerVishwas N
 
New in docker containercamp 2016
New in docker containercamp 2016New in docker containercamp 2016
New in docker containercamp 2016Mano Marks
 
Intro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceIntro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceMano Marks
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017Docker, Inc.
 
Integrating Docker EE into Société Générale's Existing Enterprise IT Systems
Integrating Docker EE into Société Générale's Existing Enterprise IT SystemsIntegrating Docker EE into Société Générale's Existing Enterprise IT Systems
Integrating Docker EE into Société Générale's Existing Enterprise IT SystemsDocker, Inc.
 
AWS ECS LESSONS LEARNED
AWS ECS LESSONS LEARNEDAWS ECS LESSONS LEARNED
AWS ECS LESSONS LEARNEDhumayun Jamal
 
Current Status of Kubernetes-powered Docker for Mac Platform
Current Status of Kubernetes-powered Docker for Mac PlatformCurrent Status of Kubernetes-powered Docker for Mac Platform
Current Status of Kubernetes-powered Docker for Mac PlatformAjeet Singh Raina
 
Building microservices with docker
Building microservices with dockerBuilding microservices with docker
Building microservices with dockerRoman Melnyk
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deploymentjavaonfly
 
Docker Platform 1.9
Docker Platform 1.9Docker Platform 1.9
Docker Platform 1.9Docker, Inc.
 
Looking Under The Hood: containerD
Looking Under The Hood: containerDLooking Under The Hood: containerD
Looking Under The Hood: containerDDocker, Inc.
 
Infinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsInfinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsDocker, Inc.
 
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...Docker, Inc.
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to AdvanceParas Jain
 
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton Docker, Inc.
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersYajushi Srivastava
 
How Docker EE is Finnish Railway’s Ticket to App Modernization
How Docker EE is Finnish Railway’s Ticket to App ModernizationHow Docker EE is Finnish Railway’s Ticket to App Modernization
How Docker EE is Finnish Railway’s Ticket to App ModernizationDocker, Inc.
 
Docker and containerization
Docker and containerizationDocker and containerization
Docker and containerizationAmulya Saxena
 

La actualidad más candente (20)

Azure ai on premises with docker
Azure ai on premises with  dockerAzure ai on premises with  docker
Azure ai on premises with docker
 
New in docker containercamp 2016
New in docker containercamp 2016New in docker containercamp 2016
New in docker containercamp 2016
 
Intro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceIntro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conference
 
Docker basics
Docker basicsDocker basics
Docker basics
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Integrating Docker EE into Société Générale's Existing Enterprise IT Systems
Integrating Docker EE into Société Générale's Existing Enterprise IT SystemsIntegrating Docker EE into Société Générale's Existing Enterprise IT Systems
Integrating Docker EE into Société Générale's Existing Enterprise IT Systems
 
AWS ECS LESSONS LEARNED
AWS ECS LESSONS LEARNEDAWS ECS LESSONS LEARNED
AWS ECS LESSONS LEARNED
 
Docker 101
Docker 101Docker 101
Docker 101
 
Current Status of Kubernetes-powered Docker for Mac Platform
Current Status of Kubernetes-powered Docker for Mac PlatformCurrent Status of Kubernetes-powered Docker for Mac Platform
Current Status of Kubernetes-powered Docker for Mac Platform
 
Building microservices with docker
Building microservices with dockerBuilding microservices with docker
Building microservices with docker
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Docker Platform 1.9
Docker Platform 1.9Docker Platform 1.9
Docker Platform 1.9
 
Looking Under The Hood: containerD
Looking Under The Hood: containerDLooking Under The Hood: containerD
Looking Under The Hood: containerD
 
Infinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsInfinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container Environments
 
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to Advance
 
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
Proof of Concept: Serverless with Swarm by Nirmal Mehta, Booz Allen Hamilton
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 
How Docker EE is Finnish Railway’s Ticket to App Modernization
How Docker EE is Finnish Railway’s Ticket to App ModernizationHow Docker EE is Finnish Railway’s Ticket to App Modernization
How Docker EE is Finnish Railway’s Ticket to App Modernization
 
Docker and containerization
Docker and containerizationDocker and containerization
Docker and containerization
 

Similar a Containerise everything - Why you should stop installing development environment locally

Managing containers with Docker
Managing containers with DockerManaging containers with Docker
Managing containers with DockerJohannes Ziemke
 
Tech Talk #2: Docker - From $1 Billion Startup to the Future Industry Standard
Tech Talk #2: Docker - From $1 Billion Startup to the Future Industry StandardTech Talk #2: Docker - From $1 Billion Startup to the Future Industry Standard
Tech Talk #2: Docker - From $1 Billion Startup to the Future Industry StandardNexus FrontierTech
 
Introduction to Docker by Adrian Mouat
Introduction to Docker by Adrian MouatIntroduction to Docker by Adrian Mouat
Introduction to Docker by Adrian MouatContainer Solutions
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker, Inc.
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerJames Turnbull
 
Getting Started With Docker | Docker Tutorial | Docker Training | Edureka
Getting Started With Docker | Docker Tutorial | Docker Training | EdurekaGetting Started With Docker | Docker Tutorial | Docker Training | Edureka
Getting Started With Docker | Docker Tutorial | Docker Training | EdurekaEdureka!
 
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)DynamicInfraDays
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der KisteUlrich Krause
 
11th Docker Switzerland User Group Meetup
11th Docker Switzerland User Group Meetup11th Docker Switzerland User Group Meetup
11th Docker Switzerland User Group MeetupPhilipp Grossenbacher
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerAjeet Singh Raina
 
Alles Docker oder Was ?
Alles Docker oder Was ?Alles Docker oder Was ?
Alles Docker oder Was ?Anatole Tresch
 
Yet Another Session about Docker and Containers​
Yet Another Session about Docker and Containers​Yet Another Session about Docker and Containers​
Yet Another Session about Docker and Containers​Pedro Sousa
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Docker Introduction SDP 12-2015
Docker  Introduction  SDP 12-2015Docker  Introduction  SDP 12-2015
Docker Introduction SDP 12-2015Rotem Or
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsBen Hall
 

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

Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Managing containers with Docker
Managing containers with DockerManaging containers with Docker
Managing containers with Docker
 
Tech Talk #2: Docker - From $1 Billion Startup to the Future Industry Standard
Tech Talk #2: Docker - From $1 Billion Startup to the Future Industry StandardTech Talk #2: Docker - From $1 Billion Startup to the Future Industry Standard
Tech Talk #2: Docker - From $1 Billion Startup to the Future Industry Standard
 
Introduction to Docker by Adrian Mouat
Introduction to Docker by Adrian MouatIntroduction to Docker by Adrian Mouat
Introduction to Docker by Adrian Mouat
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker
DockerDocker
Docker
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
Docker - fundamental
Docker  - fundamentalDocker  - fundamental
Docker - fundamental
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Getting Started With Docker | Docker Tutorial | Docker Training | Edureka
Getting Started With Docker | Docker Tutorial | Docker Training | EdurekaGetting Started With Docker | Docker Tutorial | Docker Training | Edureka
Getting Started With Docker | Docker Tutorial | Docker Training | Edureka
 
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der Kiste
 
11th Docker Switzerland User Group Meetup
11th Docker Switzerland User Group Meetup11th Docker Switzerland User Group Meetup
11th Docker Switzerland User Group Meetup
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using Docker
 
Alles Docker oder Was ?
Alles Docker oder Was ?Alles Docker oder Was ?
Alles Docker oder Was ?
 
Docker
DockerDocker
Docker
 
Yet Another Session about Docker and Containers​
Yet Another Session about Docker and Containers​Yet Another Session about Docker and Containers​
Yet Another Session about Docker and Containers​
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Docker Introduction SDP 12-2015
Docker  Introduction  SDP 12-2015Docker  Introduction  SDP 12-2015
Docker Introduction SDP 12-2015
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 

Último (20)

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

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: 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/
  • 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/