×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Containing Atlassian Running the Atlassian Suite with Docker
Slide 2
Slide 2 text
David McKay @rawkode Software Consultant Serial Meetup Organiser
Slide 3
Slide 3 text
Containing Atlassian
Slide 4
Slide 4 text
Why Containers?
Slide 5
Slide 5 text
Containment for neatness
Slide 6
Slide 6 text
Containment for security
Slide 7
Slide 7 text
Containment for speed
Slide 8
Slide 8 text
Why Docker?
Slide 9
Slide 9 text
Because it’s a trendy
Slide 10
Slide 10 text
Because it’s good on the CV
Slide 11
Slide 11 text
Because all your friends are doing it
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
Docker OK; I’m Serial Now ● Industry Leader ● Always Evolving ● Proven at Scale ● Tooling for all environments ● OCI / runC ● Official Images
Slide 14
Slide 14 text
Vocabulary ● Dockerfile ● Image ● Container
Slide 15
Slide 15 text
Dockerfile FROM ubuntu:16.10 RUN apt-get update RUN apt-get install x y z CMD java
Slide 16
Slide 16 text
Docker Image $ docker build -t acme/jira:7.0 .
Slide 17
Slide 17 text
Docker Images $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE elixir 1.3 b80c8e9d71f9 3 weeks ago 758.7 MB acme/jira 7.0 e552540688e1 4 weeks ago 224.4 MB alpine 3.4 ee4603260daa 4 weeks ago 4.803 MB
Slide 18
Slide 18 text
Docker Container $ docker run acme/jira:7.0
Slide 19
Slide 19 text
Orchestration With Docker Swarm Mode
Slide 20
Slide 20 text
Swarm Mode ≇ Swarm
Slide 21
Slide 21 text
Vocabulary ● Node ● Manager ● Worker ● Service
Slide 22
Slide 22 text
Creating a Swarm $ docker swarm init
Slide 23
Slide 23 text
Joining a Swarm $ docker swarm join --token xxxx 192.168.66.100:2377
Slide 24
Slide 24 text
Creating a Service $ docker service create --name jira acme/jira:7.0
Slide 25
Slide 25 text
Creating Services $ docker service create --name crowd acme/crowd:2.10 $ docker service create --name jira acme/jira:7.0 $ docker service create --name confl.. acme/confluence:5.10
Slide 26
Slide 26 text
Scaling
Slide 27
Slide 27 text
Scaling a Service $ docker service scale jira=4
Slide 28
Slide 28 text
Service Discovery
Slide 29
Slide 29 text
Scaling a Service $ wget http://jira:8080 $ wget http://confluence:8081
Slide 30
Slide 30 text
Oh yeah, and you get load balancing for free ...
Slide 31
Slide 31 text
Upgrading
Slide 32
Slide 32 text
Scaling a Service $ docker service update --image acme/jira:10.1 jira
Slide 33
Slide 33 text
Potential Problems
Slide 34
Slide 34 text
Configuration
Slide 35
Slide 35 text
Configuration $ docker service create --env DB_HOST=postgres $ docker service update --env-add DB_HOST=postgres
Slide 36
Slide 36 text
Persistence
Slide 37
Slide 37 text
Persistence $ docker service create --mount \ type=mount, source=/mnt/volume, destination=/path/in/container
Slide 38
Slide 38 text
⚖ How can I scale this?
Slide 39
Slide 39 text
Scaling the Persistence NFS / Fuse mount on all nodes Feeling fancy? Check out CernVM-FS!
Slide 40
Slide 40 text
This brings other problems
Slide 41
Slide 41 text
With the Atlassian Suite You can deal with it, as most writes to the disk are simply cache! Except BitBucket
Slide 42
Slide 42 text
Official Support?
Slide 43
Slide 43 text
⏳ It’s being worked on…
Slide 44
Slide 44 text
Atlassian on Docker Hub https://hub.docker.com/r/atlassian/
Slide 45
Slide 45 text
☹ BitBucket & Confluence only
Slide 46
Slide 46 text
Want more? Pester @durdn
Slide 47
Slide 47 text
That’s it! Any questions?