The age of orchestration
NICOLA PAOLUCCI • DEVELOPER INSTIGATOR • ATLASSIAN • @DURDN
From Docker basics to cluster management
3 minute intro?
Format Interfaces Cache Registry
Where’s on ?
Dockerized Agents
Docker Task!
(since 5.8)
• Dynamic port mapping
• Mount multiple volumes
• Set the working directory
• Add additional arguments
New in Bamboo 5.9
Official image for
What about the other
products?
Grab a PM here.
Our internal PaaS,
called Micros
File infrastructure numbers
8Microservices
File infrastructure numbers
5Containers spun per conversion
File infrastructure numbers
6 MillionContainers spun per month
Orchestration is the
next arena
What’s Orchestration?
Docker’s Own Orchestration
machine swarmcompose
• Provision a machine on a PaaS
• Pull PostgreSQL and
• Stash from the Registry
• Use Compose to start the app
• Tear down the machine
The plan for the first 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
• Edit “docker-compose.yml” to describe our app
• “docker-compose up -d” to start our application
• “docker-machine rm atlascamp-standalone" to
remove it
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
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 Stash and PostgreSQL on
different nodes
The plan for the second DEMO
$ docker pull swarm
$ docker run --rm swarm create
6856663cdefdec325839a4b7e1de38e8
After Step 1
atlascamp-master
atlascamp-1 atlascamp-2
label: java
discovery service
Current Architecture
scheduler
RAM: 2GB
label: database
RAM: 2GB
After Step 2
atlascamp-master
atlascamp-1 atlascamp-2
label: java
discovery service
Current Architecture
scheduler
RAM: 2GB
label: database
RAM: 512MB
PostgreSQL
JIRA at your service
NAME • TITLE • COMPANY • @TWITTERHANDLE
After Step 3
atlascamp-master
atlascamp-1 atlascamp-2
label: java
discovery service
Current Architecture
scheduler
RAM: 2GB
label: database
RAM: 512MB
PostgreSQLStash
Join us for more
at the breakout sessions!
Thank you!
NICOLA PAOLUCCI • DEVELOPER INSTIGATOR • ATLASSIAN • @DURDN
@durdn
Credits
The age of orchestration:
from Docker basics to cluster management
Submit your feedback:
go.atlassian.com/acdocker

AtlasCamp 2015: The age of orchestration: From Docker basics to cluster management