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

42
The age of orchestration NICOLA PAOLUCCI DEVELOPER INSTIGATOR ATLASSIAN @DURDN From Docker basics to cluster management

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

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 virtualbox dev

INFO[0000] Downloading boot2docker.iso from... 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 and is now active

• “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 virtualbox dev

INFO[0000] Downloading boot2docker.iso from... 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 and is now active

Docker swarmswarm 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 1atlascamp-master

atlascamp-1 atlascamp-2

label: java

discovery service

Current Architecture

scheduler

RAM: 2GB

label: database

RAM: 2GB

After Step 2atlascamp-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 3atlascamp-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