SlideShare a Scribd company logo
The age of orchestration
NICOLA PAOLUCCI • DEVELOPER INSTIGATOR • ATLASSIAN • @DURDN
From Docker basics to cluster management
2
Time me and ring a bell if I am over it. Just kidding I’ll
be over by a bit but it’s ok. We’re friends.
Three minute Docker intro?
3
BINS/LIBS
GUEST OS
HYPERVISOR
HOST OS
SERVER
ROBUST
MONOLITHIC
SLOW TO BOOT
HEAVY
OVERHEAD
APP A
BINS/LIBS
GUEST OS
APP B
DEFINITIONS
Traditional Virtual Machines
4
DOCKER ENGINE
HOST OS
SERVER
LEAN
LIGHTWEIGHT
ISOLATED
PORTABLE
EFFICIENT
BINS/LIBS
APP A
BINS/LIBS
APP B
DEFINITIONS
Docker Containers
5
DEFINITIONS
Seen from another angle, the core of
Docker is four distinct things
Clearly defined
interfaces
Central registry of
ready images
Caching mechanism
to re-use steps
A standard format to
package applications
6
DO WE USE IT?
We have embraced Docker on two fronts
For our internal PaaS In our products
NOT PART OF THIS
SESSION
@durdn
Our internal PaaS,
called Micros
8
File infrastructure numbers
Microservices
8
8
9
File infrastructure numbers
Containers spun per conversion
5
9
10
File infrastructure numbers
Containers spun per month
M6
10
@durdn
@durdn
Orchestration is the
next arena
What’s Orchestration?
13
Services
YOUR APPLICATION
Orchestration
FRAMEWORKS
Data Center
PHYSICAL INFRA
What’s Orchestration?
13
Services
YOUR APPLICATION
Orchestration
FRAMEWORKS
Data Center
PHYSICAL INFRA
@durdn
@durdn
@durdn
17
18
Docker’s Own Orchestration Tools
Docker machine Docker compose Docker swarm Docker network
Where is the DEMO
Lebowski?
20
TOOL NR.1
Docker machine
Simple command line tool to provision local
and remote hosts with Docker installed.
Fantastic to get up and running fast. It has
drivers for many Internet service providers
and PaaS.
Docker machine
$ docker-machine create -d v
INFO[0000] Downloading boot2
INFO[0001] Creating SSH key.
INFO[0001] Creating VirtualB
INFO[0006] Starting VirtualB
INFO[0007] Waiting for VM to
INFO[0041] "dev" has been cr
• Provision a machine with
Docker installed and ready
• Pull a minimal image
• Run a few docker commands
• Tear down the machine
Docker machine DEMO
$ docker-machine create -d virtualb
INFO[0000] Downloading boot2docker.
INFO[0001] Creating SSH key...
INFO[0001] Creating VirtualBox VM..
INFO[0006] Starting VirtualBox VM..
INFO[0007] Waiting for VM to start.
INFO[0041] "dev" has been created a
• “docker-machine create” to provision the host, locally or remotely
• “docker-machine ls” to list the machines
• “docker-machine stop/rm” to stop and remove
Recap of what you saw
$ docker-machine create -d
INFO[0000] Downloading boo
INFO[0001] Creating SSH ke
INFO[0001] Creating Virtua
INFO[0006] Starting Virtua
INFO[0007] Waiting for VM
INFO[0041] "dev" has been
24
TOOL NR.2
Docker compose
Docker compose
Describe the relation of your components in a
simple YAML file called docker-compose.yml
and docker-compose takes care of starting
them and linking them in order.
1 stash:
2 image: atlassian/stash
3 ports:
4 - "7990:7990"
5 - "7999:7999"
6 volumes:
7 - /root/orchestration/stash-data:/
8 links:
9 - db
10 user: root
11 privileged: true
12 db:
13 image: postgres
14 environment:
15 POSTGRES_PASSWORD: somepassword
• Provision a machine on a PaaS
• Pull PostgreSQL and a Java
app from the Registry
• Use Compose to start the app
• Tear down the machine
Docker compose DEMO
$ docker-compose up -d
• “docker-machine create” to provision the host
• Edit “docker-compose.yml” to describe our app
• “docker-compose up -d” to start our application
• “docker-machine rm compose-demo“ to
remove it
Recap of what you saw
$ docker-compose up -d
28
TOOL NR.3
Docker swarm
Deploy images and run containers on a full
clusters as if you’re handling a single machine
Docker swarm
$ docker pull swarm
$ docker run --rm swarm create
6856663cdefdec325839a4b7e1de38e8
@durdn
Docker swarm
swarm master
swarm node swarm node swarm node
container
container
container
container
container
container
discovery service
High level architecture
scheduler
• Strategies
• Spread
• Binpack
• Random
• Filters
• Constraint
• Affinity
• Port
• Dependency
• Health
Swarm comes with strategies and filters
$ docker run -e 
constraint:instance==database --name db
• Provision a Docker swarm
• Made up of three hosts
• Master node
• Node with 2gb of RAM
• simple Node
• Use labels to deploy to nodes
• Run Java app and PostgreSQL
on different nodes
The plan for the Swarm DEMO
$ docker pull swarm
$ docker run --rm swarm create
6856663cdefdec325839a4b7e1de38e8
@durdn
After Step 1
demo-master
node-1 node-2
label: java
discovery service
Current Architecture
scheduler
RAM: 2GB
label: database
RAM: 512MB
@durdn
After Step 2
demo-master
node-1 node-2
label: java
discovery service
Current Architecture
scheduler
RAM: 2GB
label: database
RAM: 512MB
PostgreSQL
@durdn
After Step 3
demo-master
node-1 node-2
label: java
discovery service
Current Architecture
scheduler
RAM: 2GB
label: database
RAM: 512MB
PostgreSQLJava App
• We created a 3-node cluster with
“docker-machine”
• We tagged the nodes with labels
• We started our components using
label constraints and not machine
names
Recap of Swarm DEMO
$ docker pull swarm
$ docker run --rm swarm create
6856663cdefdec325839a4b7e1de38e8
39
COROLLARY
Docker Java Images Are Big
The default Java image is
800+MB ?!
$ docker pull java
REPOSITORY IMAGE ID VIRTUAL SIZE
java 5282faca75e8 817.6 MB
• Alpine Linux provides a minimal
container image of 5MB
• It includes BusyBox and a
package manager
• OpenJDK 7 is already on it…
• Resulting in a 123MB Java image
Start with a smaller base image
FROM alpine:3.2
RUN apk --update add openjdk7-jre
CMD ["/usr/bin/java", "-version"]
For Oracle Java 8 you have to roll it your own
http://bit.do/minimal-java
I hope you are hyped as I am
for all this coolness, come
talk to me afterwards!
Thank you!
NICOLA PAOLUCCI • DEVELOPER INSTIGATOR • ATLASSIAN • @DURDN
Twitter: @durdn

More Related Content

What's hot (20)

PDF
Going Production with Docker and Swarm
C4Media
 
PDF
Dockercon Swarm Updated
Docker, Inc.
 
PPTX
Docker Swarm for Beginner
Shahzad Masud
 
PDF
Docker swarm
Alberto Guimarães Viana
 
PDF
Nebulaworks Docker Overview 09-22-2015
Chris Ciborowski
 
PDF
Docker Swarm Meetup (15min lightning)
Mike Goelzer
 
PDF
Swarm mode
Dharmit Shah
 
PDF
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)
Mike Goelzer
 
PPTX
Docker Networking & Swarm Mode Introduction
Phi Huynh
 
PDF
Docker 1.12 and swarm mode
Wesley Charles Blake
 
PDF
Docker Online Meetup #28: Production-Ready Docker Swarm
Docker, Inc.
 
PDF
Docker Swarm & Machine
Eueung Mulyana
 
PDF
Deep Dive into Docker Swarm Mode
Ajeet Singh Raina
 
PDF
What's New in Docker 1.12?
Ajeet Singh Raina
 
PPTX
Container Orchestration with Docker Swarm
Frederik Mogensen
 
PDF
AtlasCamp 2015: The age of orchestration: From Docker basics to cluster manag...
Atlassian
 
PDF
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Michelle Antebi
 
PPTX
Docker Swarm Is Dead: Long Live Docker Swarm
Elton Stoneman
 
PDF
Consul and docker swarm cluster
Eueung Mulyana
 
PPTX
Docker 1.5
rajdeep
 
Going Production with Docker and Swarm
C4Media
 
Dockercon Swarm Updated
Docker, Inc.
 
Docker Swarm for Beginner
Shahzad Masud
 
Nebulaworks Docker Overview 09-22-2015
Chris Ciborowski
 
Docker Swarm Meetup (15min lightning)
Mike Goelzer
 
Swarm mode
Dharmit Shah
 
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)
Mike Goelzer
 
Docker Networking & Swarm Mode Introduction
Phi Huynh
 
Docker 1.12 and swarm mode
Wesley Charles Blake
 
Docker Online Meetup #28: Production-Ready Docker Swarm
Docker, Inc.
 
Docker Swarm & Machine
Eueung Mulyana
 
Deep Dive into Docker Swarm Mode
Ajeet Singh Raina
 
What's New in Docker 1.12?
Ajeet Singh Raina
 
Container Orchestration with Docker Swarm
Frederik Mogensen
 
AtlasCamp 2015: The age of orchestration: From Docker basics to cluster manag...
Atlassian
 
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Michelle Antebi
 
Docker Swarm Is Dead: Long Live Docker Swarm
Elton Stoneman
 
Consul and docker swarm cluster
Eueung Mulyana
 
Docker 1.5
rajdeep
 

Viewers also liked (20)

PDF
Docker Swarm: Docker Native Clustering
Docker, Inc.
 
PDF
Octo talk : docker multi-host networking
Hervé Leclerc
 
PPTX
Docker Swarm Overview
David Strebel
 
PPTX
Dianabol Canada
Anand Mohan
 
PDF
Docker in Production - IPC 2016
Robert Lemke
 
PPTX
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
Sencha
 
DOCX
Docker For Azure Deployment Walkthrough
Timothy Wong
 
PDF
Docker and Containers for Development and Deployment — SCALE12X
Jérôme Petazzoni
 
PPTX
Monitoring Docker Application in Production
Alois Reitbauer
 
PDF
Deploying and Scaling a Rails Application with Docker and Friends
Invisiblelines
 
PDF
Continuous Deployment with Bamboo and Deployit
XebiaLabs
 
PPTX
Azure Functions VS AWS Lambda: overview and comparison
Alex Zyl
 
PPTX
Ideal Deployment In .NET World
Dima Pasko
 
PDF
AWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaS
RightScale
 
PDF
OPEX Week Europe 140316
Zoe Gammie
 
PDF
Docker Datacenter - CaaS
Harish Jayakumar
 
PPTX
The missing piece : when Docker networking and services finally unleashes so...
Adrien Blind
 
PPTX
Docker networking Tutorial 101
LorisPack Project
 
PDF
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
DataStax
 
PPTX
Load Balancing Apps in Docker Swarm with NGINX
NGINX, Inc.
 
Docker Swarm: Docker Native Clustering
Docker, Inc.
 
Octo talk : docker multi-host networking
Hervé Leclerc
 
Docker Swarm Overview
David Strebel
 
Dianabol Canada
Anand Mohan
 
Docker in Production - IPC 2016
Robert Lemke
 
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
Sencha
 
Docker For Azure Deployment Walkthrough
Timothy Wong
 
Docker and Containers for Development and Deployment — SCALE12X
Jérôme Petazzoni
 
Monitoring Docker Application in Production
Alois Reitbauer
 
Deploying and Scaling a Rails Application with Docker and Friends
Invisiblelines
 
Continuous Deployment with Bamboo and Deployit
XebiaLabs
 
Azure Functions VS AWS Lambda: overview and comparison
Alex Zyl
 
Ideal Deployment In .NET World
Dima Pasko
 
AWS vs. Azure vs. Google vs. SoftLayer: Network, Storage and DBaaS
RightScale
 
OPEX Week Europe 140316
Zoe Gammie
 
Docker Datacenter - CaaS
Harish Jayakumar
 
The missing piece : when Docker networking and services finally unleashes so...
Adrien Blind
 
Docker networking Tutorial 101
LorisPack Project
 
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
DataStax
 
Load Balancing Apps in Docker Swarm with NGINX
NGINX, Inc.
 
Ad

Similar to The age of orchestration: from Docker basics to cluster management (20)

PDF
Paolucci voxxed-days-berlin-2016-age-of-orchestration
Grzegorz Duda
 
PPTX
Docker 1.11 Presentation
Sreenivas Makam
 
PPTX
Docker Introduction and its Usage in Machine Learning
yogendra18
 
PDF
Docker 進階實務班
Philip Zheng
 
PDF
廣宣學堂: 容器進階實務 - Docker進深研究班
Paul Chao
 
PDF
Docker HK Meetup - 201707
Clarence Ho
 
PPT
14309525_docker_docker_docker_docker_introduction.ppt
aravym456
 
PDF
Package your Java EE Application using Docker and Kubernetes
Arun Gupta
 
PDF
Docker Intro
Ruben Taelman
 
PDF
The Docker Ecosystem
Dmitry Skaredov
 
PPTX
Docker and Microservice
Samuel Chow
 
PPTX
Docker for Web Developers: A Sneak Peek
msyukor
 
PDF
Consuming Cinder from Docker
John Griffith
 
PDF
Docker
SangtongPeesing
 
PDF
Orchestrating Docker with OpenStack
Erica Windisch
 
PPTX
Real World Experience of Running Docker in Development and Production
Ben Hall
 
PDF
What is this "docker"
Jean-Marc Meessen
 
PPTX
Getting started with Docker sandboxes for MariaDB
MariaDB plc
 
PPSX
Docker Kubernetes Istio
Araf Karsh Hamid
 
PDF
ContainerDayVietnam2016: Dockerize a small business
Docker-Hanoi
 
Paolucci voxxed-days-berlin-2016-age-of-orchestration
Grzegorz Duda
 
Docker 1.11 Presentation
Sreenivas Makam
 
Docker Introduction and its Usage in Machine Learning
yogendra18
 
Docker 進階實務班
Philip Zheng
 
廣宣學堂: 容器進階實務 - Docker進深研究班
Paul Chao
 
Docker HK Meetup - 201707
Clarence Ho
 
14309525_docker_docker_docker_docker_introduction.ppt
aravym456
 
Package your Java EE Application using Docker and Kubernetes
Arun Gupta
 
Docker Intro
Ruben Taelman
 
The Docker Ecosystem
Dmitry Skaredov
 
Docker and Microservice
Samuel Chow
 
Docker for Web Developers: A Sneak Peek
msyukor
 
Consuming Cinder from Docker
John Griffith
 
Orchestrating Docker with OpenStack
Erica Windisch
 
Real World Experience of Running Docker in Development and Production
Ben Hall
 
What is this "docker"
Jean-Marc Meessen
 
Getting started with Docker sandboxes for MariaDB
MariaDB plc
 
Docker Kubernetes Istio
Araf Karsh Hamid
 
ContainerDayVietnam2016: Dockerize a small business
Docker-Hanoi
 
Ad

More from Nicola Paolucci (7)

PDF
Transformative Git Practices
Nicola Paolucci
 
PDF
Git Power Routines
Nicola Paolucci
 
PDF
Becoming a Git Master
Nicola Paolucci
 
PDF
Be a better developer with Docker (revision 3)
Nicola Paolucci
 
PDF
Be a happier developer with Docker: Tricks of the trade
Nicola Paolucci
 
PDF
Ninja Git: Save Your Master
Nicola Paolucci
 
PDF
Real World Git Workflows - EclipseCon Europe 2013
Nicola Paolucci
 
Transformative Git Practices
Nicola Paolucci
 
Git Power Routines
Nicola Paolucci
 
Becoming a Git Master
Nicola Paolucci
 
Be a better developer with Docker (revision 3)
Nicola Paolucci
 
Be a happier developer with Docker: Tricks of the trade
Nicola Paolucci
 
Ninja Git: Save Your Master
Nicola Paolucci
 
Real World Git Workflows - EclipseCon Europe 2013
Nicola Paolucci
 

Recently uploaded (20)

PDF
July Patch Tuesday
Ivanti
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
July Patch Tuesday
Ivanti
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 

The age of orchestration: from Docker basics to cluster management

  • 1. The age of orchestration NICOLA PAOLUCCI • DEVELOPER INSTIGATOR • ATLASSIAN • @DURDN From Docker basics to cluster management
  • 2. 2 Time me and ring a bell if I am over it. Just kidding I’ll be over by a bit but it’s ok. We’re friends. Three minute Docker intro?
  • 3. 3 BINS/LIBS GUEST OS HYPERVISOR HOST OS SERVER ROBUST MONOLITHIC SLOW TO BOOT HEAVY OVERHEAD APP A BINS/LIBS GUEST OS APP B DEFINITIONS Traditional Virtual Machines
  • 5. 5 DEFINITIONS Seen from another angle, the core of Docker is four distinct things Clearly defined interfaces Central registry of ready images Caching mechanism to re-use steps A standard format to package applications
  • 6. 6 DO WE USE IT? We have embraced Docker on two fronts For our internal PaaS In our products NOT PART OF THIS SESSION
  • 18. 17
  • 19. 18 Docker’s Own Orchestration Tools Docker machine Docker compose Docker swarm Docker network
  • 20. Where is the DEMO Lebowski?
  • 21. 20 TOOL NR.1 Docker machine Simple command line tool to provision local and remote hosts with Docker installed. Fantastic to get up and running fast. It has drivers for many Internet service providers and PaaS. Docker machine $ docker-machine create -d v INFO[0000] Downloading boot2 INFO[0001] Creating SSH key. INFO[0001] Creating VirtualB INFO[0006] Starting VirtualB INFO[0007] Waiting for VM to INFO[0041] "dev" has been cr
  • 22. • Provision a machine with Docker installed and ready • Pull a minimal image • Run a few docker commands • Tear down the machine Docker machine DEMO $ docker-machine create -d virtualb INFO[0000] Downloading boot2docker. INFO[0001] Creating SSH key... INFO[0001] Creating VirtualBox VM.. INFO[0006] Starting VirtualBox VM.. INFO[0007] Waiting for VM to start. INFO[0041] "dev" has been created a
  • 23. • “docker-machine create” to provision the host, locally or remotely • “docker-machine ls” to list the machines • “docker-machine stop/rm” to stop and remove Recap of what you saw $ docker-machine create -d INFO[0000] Downloading boo INFO[0001] Creating SSH ke INFO[0001] Creating Virtua INFO[0006] Starting Virtua INFO[0007] Waiting for VM INFO[0041] "dev" has been
  • 24. 24 TOOL NR.2 Docker compose Docker compose Describe the relation of your components in a simple YAML file called docker-compose.yml and docker-compose takes care of starting them and linking them in order. 1 stash: 2 image: atlassian/stash 3 ports: 4 - "7990:7990" 5 - "7999:7999" 6 volumes: 7 - /root/orchestration/stash-data:/ 8 links: 9 - db 10 user: root 11 privileged: true 12 db: 13 image: postgres 14 environment: 15 POSTGRES_PASSWORD: somepassword
  • 25. • Provision a machine on a PaaS • Pull PostgreSQL and a Java app from the Registry • Use Compose to start the app • Tear down the machine Docker compose DEMO $ docker-compose up -d
  • 26. • “docker-machine create” to provision the host • Edit “docker-compose.yml” to describe our app • “docker-compose up -d” to start our application • “docker-machine rm compose-demo“ to remove it Recap of what you saw $ docker-compose up -d
  • 27. 28 TOOL NR.3 Docker swarm Deploy images and run containers on a full clusters as if you’re handling a single machine Docker swarm $ docker pull swarm $ docker run --rm swarm create 6856663cdefdec325839a4b7e1de38e8
  • 28. @durdn Docker swarm swarm master swarm node swarm node swarm node container container container container container container discovery service High level architecture scheduler
  • 29. • Strategies • Spread • Binpack • Random • Filters • Constraint • Affinity • Port • Dependency • Health Swarm comes with strategies and filters $ docker run -e constraint:instance==database --name db
  • 30. • Provision a Docker swarm • Made up of three hosts • Master node • Node with 2gb of RAM • simple Node • Use labels to deploy to nodes • Run Java app and PostgreSQL on different nodes The plan for the Swarm DEMO $ docker pull swarm $ docker run --rm swarm create 6856663cdefdec325839a4b7e1de38e8
  • 31. @durdn After Step 1 demo-master node-1 node-2 label: java discovery service Current Architecture scheduler RAM: 2GB label: database RAM: 512MB
  • 32. @durdn After Step 2 demo-master node-1 node-2 label: java discovery service Current Architecture scheduler RAM: 2GB label: database RAM: 512MB PostgreSQL
  • 33. @durdn After Step 3 demo-master node-1 node-2 label: java discovery service Current Architecture scheduler RAM: 2GB label: database RAM: 512MB PostgreSQLJava App
  • 34. • We created a 3-node cluster with “docker-machine” • We tagged the nodes with labels • We started our components using label constraints and not machine names Recap of Swarm DEMO $ docker pull swarm $ docker run --rm swarm create 6856663cdefdec325839a4b7e1de38e8
  • 35. 39 COROLLARY Docker Java Images Are Big The default Java image is 800+MB ?! $ docker pull java REPOSITORY IMAGE ID VIRTUAL SIZE java 5282faca75e8 817.6 MB
  • 36. • Alpine Linux provides a minimal container image of 5MB • It includes BusyBox and a package manager • OpenJDK 7 is already on it… • Resulting in a 123MB Java image Start with a smaller base image FROM alpine:3.2 RUN apk --update add openjdk7-jre CMD ["/usr/bin/java", "-version"]
  • 37. For Oracle Java 8 you have to roll it your own http://bit.do/minimal-java
  • 38. I hope you are hyped as I am for all this coolness, come talk to me afterwards!
  • 39. Thank you! NICOLA PAOLUCCI • DEVELOPER INSTIGATOR • ATLASSIAN • @DURDN Twitter: @durdn