Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Containing Atlassian
Search
David McKay
October 26, 2016
Technology
1
87
Containing Atlassian
David McKay
October 26, 2016
Tweet
Share
More Decks by David McKay
See All by David McKay
The Telegraf Toolbelt (InfluxDays SF, 2019)
rawkode
0
160
The DShell Pattern (DevOpsDays London 2019)
rawkode
0
210
Cloud Native Telegraf - Cloud Native London (September 2019)
rawkode
0
71
Developing Your Own Flux Packages (InfluxDays London 2019)
rawkode
0
130
Introduction to Time Series (Software Circus, April 2019)
rawkode
0
140
Introduction to Time Series (Cloud Native Kraków, April 2019)
rawkode
0
97
Introduction to Time Series (Cloud Native Wales, April 2019)
rawkode
0
94
Introduction to InfluxDB 2.0 (Kubernetes London - February 2019)
rawkode
0
81
Kickass Development Environments with Docker (PHPBenelux 2019)
rawkode
0
130
Other Decks in Technology
See All in Technology
エンジニアにとってコードと並んで重要な「データ」のお話 - データが動くとコードが見える:関数型=データフロー入門
ismk
0
280
ubuntu-latest から ubuntu-slim へ移行しよう!コスト削減うれしい~!
asumikam
0
430
エンジニアに定年なし! AI時代にキャリアをReboot — 学び続けて未来を創る
junjikoide
0
140
Snowflake Marketplaceには”PODB”という便利なオープンデータがあってAI Ready対応してるらしいよ/the-snowflake-marketplace-has-a-useful-open-data-source-called-PODB-that-is-apparently-AI-ready
shinyaa31
0
270
“それなりに”安全なWebアプリケーションの作り方
xryuseix
0
160
データ組織ゼロから投資を得るまでの軌跡と未来図 〜AIの前にやるべきこと〜 / Building a Data Organization from Scratch: The Journey to Securing Investment and a Vision for the Future
kaonavi
0
110
今のコンピュータ、AI にも Web にも 向いていないので 作り直そう!!
piacerex
0
760
なぜ新機能リリース翌日にモニタリング可能なのか? 〜リードタイム短縮とリソース問題を「自走」で改善した話〜 / data_summit_findy_Session_2
sansan_randd
1
150
日々のSlackアラート確認運用をCustom Chat Modesで楽にした話 / 日々のSlackアラート確認運用をCustom Chat Modesで楽にした話
imamotohikaru
0
130
隙間ツール開発のすすめ / PHP Conference Fukuoka 2025
meihei3
0
230
2025 DHI Lightning Talks
digitalfellow
0
140
触れるけど壊れないWordPressの作り方
masakawai
0
750
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Site-Speed That Sticks
csswizardry
13
960
Mobile First: as difficult as doing things right
swwweet
225
10k
Side Projects
sachag
455
43k
Optimizing for Happiness
mojombo
379
70k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
How to Ace a Technical Interview
jacobian
280
24k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Speed Design
sergeychernyshev
32
1.2k
Writing Fast Ruby
sferik
630
62k
Transcript
Containing Atlassian Running the Atlassian Suite with Docker
David McKay @rawkode Software Consultant Serial Meetup Organiser
Containing Atlassian
Why Containers?
Containment for neatness
Containment for security
Containment for speed
Why Docker?
Because it’s a trendy
Because it’s good on the CV
Because all your friends are doing it
None
Docker OK; I’m Serial Now • Industry Leader • Always
Evolving • Proven at Scale • Tooling for all environments • OCI / runC • Official Images
Vocabulary • Dockerfile • Image • Container
Dockerfile FROM ubuntu:16.10 RUN apt-get update RUN apt-get install x
y z CMD java
Docker Image $ docker build -t acme/jira:7.0 .
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
Docker Container $ docker run acme/jira:7.0
Orchestration With Docker Swarm Mode
Swarm Mode ≇ Swarm
Vocabulary • Node • Manager • Worker • Service
Creating a Swarm $ docker swarm init
Joining a Swarm $ docker swarm join --token xxxx 192.168.66.100:2377
Creating a Service $ docker service create --name jira acme/jira:7.0
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
Scaling
Scaling a Service $ docker service scale jira=4
Service Discovery
Scaling a Service $ wget http://jira:8080 $ wget http://confluence:8081
Oh yeah, and you get load balancing for free ...
Upgrading
Scaling a Service $ docker service update --image acme/jira:10.1 jira
Potential Problems
Configuration
Configuration $ docker service create --env DB_HOST=postgres $ docker service
update --env-add DB_HOST=postgres
Persistence
Persistence $ docker service create --mount \ type=mount, source=/mnt/volume, destination=/path/in/container
⚖ How can I scale this?
Scaling the Persistence NFS / Fuse mount on all nodes
Feeling fancy? Check out CernVM-FS!
This brings other problems
With the Atlassian Suite You can deal with it, as
most writes to the disk are simply cache! Except BitBucket
Official Support?
⏳ It’s being worked on…
Atlassian on Docker Hub https://hub.docker.com/r/atlassian/
☹ BitBucket & Confluence only
Want more? Pester @durdn
That’s it! Any questions?