SlideShare ist ein Scribd-Unternehmen logo
Docker Workbench


dunkelfrosch.com | twitter.com/dunkelfrosch | github.com/paterik
v0.9.5, german
image: https://en.wikipedia.org/wiki/MV_Rena#/media/File:NZ_Defence_Force_assistance_to_OP_Rena.jpg
1
Introduction
❖ wer bin ich eigentlich ?
❖ PID: Patrick Paechnatz
❖ Task: Senior Backend Developer
❖ Host: move:elevator, Dresden
❖ UpTime: 38y (~17y Developer)
❖ ENV: C++, C#, Erlang, Python, PHP

dunkelfrosch.com | twitter.com/dunkelfrosch | github.com/paterik
2
Agenda
❖ Über was möchte ich sprechen ?

Dieser Vortrag soll euch docker-compose an einem
praktischen Beispiel zeigen, alternative Ansätze erläutern
und auch einige Best-Practices auf den Weg geben …
❖ Docker composition: „Compose Why“?

⇢ 8 slides
❖ Composition, practical: „Atlassian Workbench“

⇢ 15 slides
3
docker in action, … composing and practical issues
DOCKER
WORKBENCH
Part 1, Compose … why?
image: https://upload.wikimedia.org/wikipedia/commons/9/94/Maersk_Majestic.jpg
4
Compose why?
❖ Warum docker-compose?
❖ Vorteile von docker-compose …
❖ Nachteile von docker-compose …
❖ Best Practices
❖ Was gibt es Neues?
❖ Alternativen?
❖ Mesos, Kubernetes, Tutum
5
Compose why?
❖ Warum docker-compose?
❖ Composition: Vereinfachung eines komplexen

Verbund-Container-Managements (Micro-Services).
❖ Configuration: YAML basierendes, einfaches,
übersichtliches Konfigurations-Schema.
❖ Consistence: Einheitliche Verwaltungs-Struktur.
❖ Convenience: Einfache Handhabung der (doch recht
umständlichen) nativen Docker Verwaltungs-Prozesse.
6
Compose why?
❖ Vorteile von docker-compose
❖ Verhindert „eigene“ Scripting-Ansätze für wieder-

kehrende Container-Verwaltungs-Prozesse.
❖ Services und deren Abhängigkeiten sind unabhängig von
der zugrundeliegenden Infrastruktur leicht auflösbar
und kombinierbar.
❖ Einfaches Container Networking (lightweight nodes)
❖ Bestandteil der Docker „Trinity“ (d/dc/dm)
7
Compose why?
❖ Nachteile von docker-compose
❖ intern noch als „vorläufiges Tool“ gekennzeichnet
❖ ungenügende observer/monitoring Funktionalität
❖ fehlendes Kommunikations-Pattern (sockets)
❖ fehlendes Container Exec Return Code Handling
❖ problematische Abhängigkeits-Erkennung (< v1.6)
❖ unvollständiger Docker-Funktionsumfang (< v1.6)
8
Compose why?
❖ Best Practices
❖ Verwendung von Server Verzeichnisstrukturen
❖ Weitestgehender Verzicht auf Linking zugunsten des

Networking-Features.
❖ Prüfung auf Möglichkeit zur vordefinierten Last-
Verteilung über CPU-Share/-Quota/-Sets.
❖ Zeitnahe Anpassung an neuen verfügbare Basis-
Versionen von docker-compose/docker / dm
9
Compose why?
❖ Was gibt es Neues?
❖ Neues Konfigurations-Schema.
❖ Vollständige Implementierung Networking Feature.
❖ Möglichkeit feinteiligen Service-Network Platzierung.
❖ Möglichkeit zur vordefinierten Build-Reihenfolge.
❖ Unterstützung von zusätzlichen Build-Argumenten.
❖ Allgemeine Verbesserung in der YAML-Struktur.
10
Compose why?
❖ Alternativen
❖ Dusty (https://github.com/gamechanger/dusty)
❖ Ansatz einer nativen Workbench, Inter-Container
File-Transfer, sehr gute OS-X Integration, spec’s
❖ Gockerize (https://github.com/aerofs/gockerize)
❖ Compose Ansatz für das container-basierende
micro-service deployment von GO Applikationen.

11
Compose why?
❖ Alternativen
❖ Rocket/CoreOS (Enterprise Container Plattform)
❖ Rocket (rkt) als Alternative zu Docker
❖ Key/Value Store Communication (etcd)
❖ Direkte Unterstützung von Kubernetes
❖ Warehouse-Scale Computer (systemd@fleet)
❖ Docker-kompatible Definitions-Struktur
12
Compose why?
❖ Alternativen
❖ Kubernetes (Enterprise Container Management)
❖ Das Tool zur Orchestration von Container Cluster
❖ Umfangreiches Management dieser „Pod’s“
❖ Verwaltung der zugehörigen Laufzeitumgebung
❖ wirklich persistente Volumen-Container
❖ sehr guter Network Layer (flannel) + etcd Unterstützung
13
docker in action, … composing and practical issues
DOCKER
COMPOSE
Part 2, Atlassian Workbench
14
Atlassian Workbench
❖ Was ist eine Workbench?
❖ praktisches Beispiel „Atlassian Services“
❖ Ziel & Service-Architektur
❖ Konfigurations-Struktur
❖ Backup-Strategien
❖ Lastverteilungs-Strategien
❖ Best Practices
15
Atlassian Workbench
❖ Was ist eine Workbench?
❖ „Application-Node Service Stack (Development)“
❖ Bereitstellung einer Container-Node-Kopie von

komplexen Anwendung-Infrastrukturen als

lokale Entwicklungs-Umgebungen.
❖ „Application-Group Service Stack (Productive)“
❖ Eine gruppierte Container Infrastruktur
verschiedener Dienste mit Anwendungs-Charakter.
16
Atlassian Workbench
❖ praktisches Beispiel „Atlassian Services“ ⇢Ziel?
❖ Aufbau einer Service-Infrastruktur zur

Container-basierenden Bereitstellung von

drei verschiedenen Atlassian Applikationen
❖ JIRA, Confluence, Bitbucket-Server
❖ Verwendung eigener docker-images ⇢ docker-hub
❖ Container sollten lastoptimiert konfiguriert werden.
17
Atlassian Workbench
❖ praktisches Beispiel „Atlassian Services“ ⇢Architektur
❖ NGINX Proxy als Service-Kommunikator
❖ JIRA, Confluence, Bitbucket-Server in aktueller
Version als Einzel-Container
❖ Drei Anwendungsspezifische MySQL Container
❖ Möglichkeit zur Nutzung von Daten-Containern für

MySQL- und Atlassian-Data Volumes schaffen.
18
Atlassian Workbench
JIRA
(tomcat)
NGINX 

(Reverse Proxy)
MySQL db
CONFLUENCE
(tomcat)
MySQL db
BITBUCKET
(tomcat)
MySQL db
user
data only data only data only
ssh
⇢Architektur/Grundstruktur
19
Atlassian Workbench
JIRA
(tomcat)
NGINX 

(Reverse Proxy)
MySQL db
CONFLUENCE
(tomcat)
MySQL db
BITBUCKET
(tomcat)
MySQL db
user
data only data only data only
ssh
80/443
3306 3306 3306
79998080 79908090
⇢Architektur/Grundstruktur+Ports
20
Atlassian Workbench
❖ Konfigurations-Struktur ⇢ docker-compose.yml
❖ Verwendung des neuen Konfigurations-Formats
❖ Networking als Link-Ersatz
❖ Container-Dependencies zur genauen Definition der
geforderten Build-Reihenfolge
❖ Definition einer „Lastgrenze“ für alle sich in der
Workbench befindlichen Container.
21
Atlassian Workbench
❖ Konfigurations-Struktur
⇢ NGINX
⇢ JIRA
⇢ BITBUCKET
⇢ CONFLUENCE
⇢ MySQL Micro-Services (inklusive Daten-Container)
22
⇢ Quellen stehen im Repository zur Verfügung
Atlassian Workbench
❖ Backup Strategien
❖ Anwendungs-Container benötigen funktionierende

Backup-Strategien!
❖ Container sind isolierte Prozesse, besitzen daher
nur zur Laufzeit Daten-Persistenz
❖ Container sind vom Host aus jederzeit erreichbar
❖ Ich möchte 3 verschiedene Ansätze vorstellen …
23
Atlassian Workbench
❖ Backup Strategien
1. Der Data-Volume Ansatz:

⇢ Ein definiertes Host-Verzeichnis wird dem Container

Als Daten-Verzeichnis zur Verfügung gestellt.
2. Der Daten-Container Ansatz:

⇢ Eine zur Startzeitpunkt erstellte „Schattenkopie“

des Ziel-Containers dient als eigentliches Union-FS 

…
24
Atlassian Workbench
❖ Backup Strategien
3. Der „Exec-Pipe“ Ansatz: 

⇢ Script für Atlassian DB- und File-Backup findet

ihr im GIT Repository unter „df-atls-base/scripts“




25
Atlassian Workbench
❖ Lastverteilungs-Strategien
❖ Ein aktiver Container unter Last nutzt alle
verfügbaren Ressourcen desTrägersystems.



⇢ dies kann (in Verbindung mit dem Restart-Feature) 

zu unangenehmen Nebenwirkungen führen!
❖ Eine Vor-Definition der Verfügbaren Ressourcen ist

Grundsätzlich keine schlechte Idee.
26
Atlassian Workbench
❖ Lastverteilungs-Beispiel:
27
Atlassian Workbench
❖ Best Practices
❖ Docker
❖ Bitte keine Container Umzugs-Hysterie entwickeln.
❖ Falls doch, den Micro-Service in angepasster
Umgebung leben lassen.
❖ Keine multiplen Dienste in einem Container
platzieren und diese über supervisor laufen lassen.
28
Atlassian Workbench
❖ Best Practices
❖ Dockerfile-Struktur
❖ Zusammenhängende Bild-Prozesse aneinander
binden, somit überflüssige Layer vermeiden.
❖ Umgebungsvariablen für Setup nutzen.
❖ Verwendung von Start-/CleanUp-Scripts
anstreben.
29
Atlassian Workbench
❖ Best Practices
❖ Allgemeines
❖ Bash Skripte/Alias-Definitionen für Docker-

Commands erstellen.
❖ Laufzeit Monitoring nicht vernachlässigen
❖ Vorsichtiger Einsatz in Produktiv-Umgebungen.
30
Questions ?
31
Thank You
❖ Links/Referenzen
❖ https://blog.codecentric.de/2015/05/microservice-
deployment-ganz-einfach-mit-docker-compose
❖ https://blog.codeship.com/docker-machine-compose-and-
swarm-how-they-work-together/
❖ Beispiel-Code Repository
❖ https://github.com/dunkelfrosch/docker-atlassian-wb
32

Weitere ähnliche Inhalte

PDF
Vagrant - Einführung & Verwendung
PDF
"git.net" gibt's nicht?
PDF
systemd & Docker
PDF
oVirt 3.5 - Einführung und Evaluierungsergebnisse
PDF
Docker Entwicklungsumgebung für TYPO3 mit xdebug
PPTX
Vagrant, Puppet, Docker für Entwickler und Architekten
PDF
Infonova Devopscon München 2015
PDF
Infrastructure as Code - BaselOne 17
Vagrant - Einführung & Verwendung
"git.net" gibt's nicht?
systemd & Docker
oVirt 3.5 - Einführung und Evaluierungsergebnisse
Docker Entwicklungsumgebung für TYPO3 mit xdebug
Vagrant, Puppet, Docker für Entwickler und Architekten
Infonova Devopscon München 2015
Infrastructure as Code - BaselOne 17

Was ist angesagt? (17)

PDF
Docker Einführung @GPN15
PDF
docker.io - Secure And Portable Containers Made Easy
PDF
Tipps zur Performanceoptimierung für Liferay Portal
PDF
PDF
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
PDF
Docker - Containervirtualisierung leichtgemacht
PDF
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
PDF
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
PDF
Versionskontrolle mit Subversion und Git
PDF
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
PDF
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
PDF
Docker und Kubernetes Patterns & Anti-Patterns
PDF
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
ODP
Ausfallsichere Kultur mit Plone
PDF
DDEV - Eine lokale Entwicklungsumgebung
PDF
Deployment pipeline mit maven, chef und jenkins
PDF
Docker - Automatisches Deployment für Linux-Instanzen
Docker Einführung @GPN15
docker.io - Secure And Portable Containers Made Easy
Tipps zur Performanceoptimierung für Liferay Portal
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker - Containervirtualisierung leichtgemacht
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
Versionskontrolle mit Subversion und Git
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Docker und Kubernetes Patterns & Anti-Patterns
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Ausfallsichere Kultur mit Plone
DDEV - Eine lokale Entwicklungsumgebung
Deployment pipeline mit maven, chef und jenkins
Docker - Automatisches Deployment für Linux-Instanzen
Anzeige

Andere mochten auch (17)

PPT
4 b power point
PDF
Elearning how tostart-eng
PPTX
que es Rss, funcionamiento y tipos
PPTX
Rosandry
PDF
Excel 2007. Nivel avanzado
PPTX
PPTX
Understanding REST APIs in 5 Simple Steps
PDF
Auguste marie louis nicolas lumière
PPT
La revolución mexicana 1
PDF
Digital transformation vkw (1)
PDF
Modular HTML & CSS
PDF
709 cepeda diseño de metodologia de enseñanza
PPTX
Strategic Communications Planning for NPOs
PDF
Technology and the concepts of technology
PDF
Product Development Principles
DOCX
Examen historia
PDF
Changellenge | Cup Kazakhstan 2016 | Leroy Merlin case | 1st place
4 b power point
Elearning how tostart-eng
que es Rss, funcionamiento y tipos
Rosandry
Excel 2007. Nivel avanzado
Understanding REST APIs in 5 Simple Steps
Auguste marie louis nicolas lumière
La revolución mexicana 1
Digital transformation vkw (1)
Modular HTML & CSS
709 cepeda diseño de metodologia de enseñanza
Strategic Communications Planning for NPOs
Technology and the concepts of technology
Product Development Principles
Examen historia
Changellenge | Cup Kazakhstan 2016 | Leroy Merlin case | 1st place
Anzeige

Ähnlich wie Docker Workbench (20)

PDF
Oracle und Docker
PDF
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
PDF
Microservices and Container Management with Mesosphere DC/OS
PDF
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
PDF
Die Containerplattform Lego für DevOps
PDF
Docker und Kubernetes Patterns & Anti-Patterns
PDF
Boost your APEX Deployment and Provisioning with Docker
PDF
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
PDF
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
PDF
Opensource Tools für das Data Center Management
PDF
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
PDF
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
PDF
Wordpress im docker
PPTX
DevOps der Triple-E Klasse - Eclipse DemoCamp
PDF
Einführung in Docker
PDF
In den sicheren Hafen jax2020
PDF
200 verteilte Oracle- Server mit Ansible ausrollen
PDF
Was gibt es Neues im Docker-Universum
PDF
CKAN by Friedrich Lindenberg
PDF
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Oracle und Docker
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Microservices and Container Management with Mesosphere DC/OS
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Die Containerplattform Lego für DevOps
Docker und Kubernetes Patterns & Anti-Patterns
Boost your APEX Deployment and Provisioning with Docker
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Opensource Tools für das Data Center Management
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
Wordpress im docker
DevOps der Triple-E Klasse - Eclipse DemoCamp
Einführung in Docker
In den sicheren Hafen jax2020
200 verteilte Oracle- Server mit Ansible ausrollen
Was gibt es Neues im Docker-Universum
CKAN by Friedrich Lindenberg
Docker-Images mit vorinstallierter Instanz einer Oracle-DB

Docker Workbench

  • 1. Docker Workbench 
 dunkelfrosch.com | twitter.com/dunkelfrosch | github.com/paterik v0.9.5, german image: https://en.wikipedia.org/wiki/MV_Rena#/media/File:NZ_Defence_Force_assistance_to_OP_Rena.jpg 1
  • 2. Introduction ❖ wer bin ich eigentlich ? ❖ PID: Patrick Paechnatz ❖ Task: Senior Backend Developer ❖ Host: move:elevator, Dresden ❖ UpTime: 38y (~17y Developer) ❖ ENV: C++, C#, Erlang, Python, PHP
 dunkelfrosch.com | twitter.com/dunkelfrosch | github.com/paterik 2
  • 3. Agenda ❖ Über was möchte ich sprechen ?
 Dieser Vortrag soll euch docker-compose an einem praktischen Beispiel zeigen, alternative Ansätze erläutern und auch einige Best-Practices auf den Weg geben … ❖ Docker composition: „Compose Why“?
 ⇢ 8 slides ❖ Composition, practical: „Atlassian Workbench“
 ⇢ 15 slides 3
  • 4. docker in action, … composing and practical issues DOCKER WORKBENCH Part 1, Compose … why? image: https://upload.wikimedia.org/wikipedia/commons/9/94/Maersk_Majestic.jpg 4
  • 5. Compose why? ❖ Warum docker-compose? ❖ Vorteile von docker-compose … ❖ Nachteile von docker-compose … ❖ Best Practices ❖ Was gibt es Neues? ❖ Alternativen? ❖ Mesos, Kubernetes, Tutum 5
  • 6. Compose why? ❖ Warum docker-compose? ❖ Composition: Vereinfachung eines komplexen
 Verbund-Container-Managements (Micro-Services). ❖ Configuration: YAML basierendes, einfaches, übersichtliches Konfigurations-Schema. ❖ Consistence: Einheitliche Verwaltungs-Struktur. ❖ Convenience: Einfache Handhabung der (doch recht umständlichen) nativen Docker Verwaltungs-Prozesse. 6
  • 7. Compose why? ❖ Vorteile von docker-compose ❖ Verhindert „eigene“ Scripting-Ansätze für wieder-
 kehrende Container-Verwaltungs-Prozesse. ❖ Services und deren Abhängigkeiten sind unabhängig von der zugrundeliegenden Infrastruktur leicht auflösbar und kombinierbar. ❖ Einfaches Container Networking (lightweight nodes) ❖ Bestandteil der Docker „Trinity“ (d/dc/dm) 7
  • 8. Compose why? ❖ Nachteile von docker-compose ❖ intern noch als „vorläufiges Tool“ gekennzeichnet ❖ ungenügende observer/monitoring Funktionalität ❖ fehlendes Kommunikations-Pattern (sockets) ❖ fehlendes Container Exec Return Code Handling ❖ problematische Abhängigkeits-Erkennung (< v1.6) ❖ unvollständiger Docker-Funktionsumfang (< v1.6) 8
  • 9. Compose why? ❖ Best Practices ❖ Verwendung von Server Verzeichnisstrukturen ❖ Weitestgehender Verzicht auf Linking zugunsten des
 Networking-Features. ❖ Prüfung auf Möglichkeit zur vordefinierten Last- Verteilung über CPU-Share/-Quota/-Sets. ❖ Zeitnahe Anpassung an neuen verfügbare Basis- Versionen von docker-compose/docker / dm 9
  • 10. Compose why? ❖ Was gibt es Neues? ❖ Neues Konfigurations-Schema. ❖ Vollständige Implementierung Networking Feature. ❖ Möglichkeit feinteiligen Service-Network Platzierung. ❖ Möglichkeit zur vordefinierten Build-Reihenfolge. ❖ Unterstützung von zusätzlichen Build-Argumenten. ❖ Allgemeine Verbesserung in der YAML-Struktur. 10
  • 11. Compose why? ❖ Alternativen ❖ Dusty (https://github.com/gamechanger/dusty) ❖ Ansatz einer nativen Workbench, Inter-Container File-Transfer, sehr gute OS-X Integration, spec’s ❖ Gockerize (https://github.com/aerofs/gockerize) ❖ Compose Ansatz für das container-basierende micro-service deployment von GO Applikationen.
 11
  • 12. Compose why? ❖ Alternativen ❖ Rocket/CoreOS (Enterprise Container Plattform) ❖ Rocket (rkt) als Alternative zu Docker ❖ Key/Value Store Communication (etcd) ❖ Direkte Unterstützung von Kubernetes ❖ Warehouse-Scale Computer (systemd@fleet) ❖ Docker-kompatible Definitions-Struktur 12
  • 13. Compose why? ❖ Alternativen ❖ Kubernetes (Enterprise Container Management) ❖ Das Tool zur Orchestration von Container Cluster ❖ Umfangreiches Management dieser „Pod’s“ ❖ Verwaltung der zugehörigen Laufzeitumgebung ❖ wirklich persistente Volumen-Container ❖ sehr guter Network Layer (flannel) + etcd Unterstützung 13
  • 14. docker in action, … composing and practical issues DOCKER COMPOSE Part 2, Atlassian Workbench 14
  • 15. Atlassian Workbench ❖ Was ist eine Workbench? ❖ praktisches Beispiel „Atlassian Services“ ❖ Ziel & Service-Architektur ❖ Konfigurations-Struktur ❖ Backup-Strategien ❖ Lastverteilungs-Strategien ❖ Best Practices 15
  • 16. Atlassian Workbench ❖ Was ist eine Workbench? ❖ „Application-Node Service Stack (Development)“ ❖ Bereitstellung einer Container-Node-Kopie von
 komplexen Anwendung-Infrastrukturen als
 lokale Entwicklungs-Umgebungen. ❖ „Application-Group Service Stack (Productive)“ ❖ Eine gruppierte Container Infrastruktur verschiedener Dienste mit Anwendungs-Charakter. 16
  • 17. Atlassian Workbench ❖ praktisches Beispiel „Atlassian Services“ ⇢Ziel? ❖ Aufbau einer Service-Infrastruktur zur
 Container-basierenden Bereitstellung von
 drei verschiedenen Atlassian Applikationen ❖ JIRA, Confluence, Bitbucket-Server ❖ Verwendung eigener docker-images ⇢ docker-hub ❖ Container sollten lastoptimiert konfiguriert werden. 17
  • 18. Atlassian Workbench ❖ praktisches Beispiel „Atlassian Services“ ⇢Architektur ❖ NGINX Proxy als Service-Kommunikator ❖ JIRA, Confluence, Bitbucket-Server in aktueller Version als Einzel-Container ❖ Drei Anwendungsspezifische MySQL Container ❖ Möglichkeit zur Nutzung von Daten-Containern für
 MySQL- und Atlassian-Data Volumes schaffen. 18
  • 19. Atlassian Workbench JIRA (tomcat) NGINX 
 (Reverse Proxy) MySQL db CONFLUENCE (tomcat) MySQL db BITBUCKET (tomcat) MySQL db user data only data only data only ssh ⇢Architektur/Grundstruktur 19
  • 20. Atlassian Workbench JIRA (tomcat) NGINX 
 (Reverse Proxy) MySQL db CONFLUENCE (tomcat) MySQL db BITBUCKET (tomcat) MySQL db user data only data only data only ssh 80/443 3306 3306 3306 79998080 79908090 ⇢Architektur/Grundstruktur+Ports 20
  • 21. Atlassian Workbench ❖ Konfigurations-Struktur ⇢ docker-compose.yml ❖ Verwendung des neuen Konfigurations-Formats ❖ Networking als Link-Ersatz ❖ Container-Dependencies zur genauen Definition der geforderten Build-Reihenfolge ❖ Definition einer „Lastgrenze“ für alle sich in der Workbench befindlichen Container. 21
  • 22. Atlassian Workbench ❖ Konfigurations-Struktur ⇢ NGINX ⇢ JIRA ⇢ BITBUCKET ⇢ CONFLUENCE ⇢ MySQL Micro-Services (inklusive Daten-Container) 22 ⇢ Quellen stehen im Repository zur Verfügung
  • 23. Atlassian Workbench ❖ Backup Strategien ❖ Anwendungs-Container benötigen funktionierende
 Backup-Strategien! ❖ Container sind isolierte Prozesse, besitzen daher nur zur Laufzeit Daten-Persistenz ❖ Container sind vom Host aus jederzeit erreichbar ❖ Ich möchte 3 verschiedene Ansätze vorstellen … 23
  • 24. Atlassian Workbench ❖ Backup Strategien 1. Der Data-Volume Ansatz:
 ⇢ Ein definiertes Host-Verzeichnis wird dem Container
 Als Daten-Verzeichnis zur Verfügung gestellt. 2. Der Daten-Container Ansatz:
 ⇢ Eine zur Startzeitpunkt erstellte „Schattenkopie“
 des Ziel-Containers dient als eigentliches Union-FS 
 … 24
  • 25. Atlassian Workbench ❖ Backup Strategien 3. Der „Exec-Pipe“ Ansatz: 
 ⇢ Script für Atlassian DB- und File-Backup findet
 ihr im GIT Repository unter „df-atls-base/scripts“ 
 
 25
  • 26. Atlassian Workbench ❖ Lastverteilungs-Strategien ❖ Ein aktiver Container unter Last nutzt alle verfügbaren Ressourcen desTrägersystems.
 
 ⇢ dies kann (in Verbindung mit dem Restart-Feature) 
 zu unangenehmen Nebenwirkungen führen! ❖ Eine Vor-Definition der Verfügbaren Ressourcen ist
 Grundsätzlich keine schlechte Idee. 26
  • 28. Atlassian Workbench ❖ Best Practices ❖ Docker ❖ Bitte keine Container Umzugs-Hysterie entwickeln. ❖ Falls doch, den Micro-Service in angepasster Umgebung leben lassen. ❖ Keine multiplen Dienste in einem Container platzieren und diese über supervisor laufen lassen. 28
  • 29. Atlassian Workbench ❖ Best Practices ❖ Dockerfile-Struktur ❖ Zusammenhängende Bild-Prozesse aneinander binden, somit überflüssige Layer vermeiden. ❖ Umgebungsvariablen für Setup nutzen. ❖ Verwendung von Start-/CleanUp-Scripts anstreben. 29
  • 30. Atlassian Workbench ❖ Best Practices ❖ Allgemeines ❖ Bash Skripte/Alias-Definitionen für Docker-
 Commands erstellen. ❖ Laufzeit Monitoring nicht vernachlässigen ❖ Vorsichtiger Einsatz in Produktiv-Umgebungen. 30
  • 32. Thank You ❖ Links/Referenzen ❖ https://blog.codecentric.de/2015/05/microservice- deployment-ganz-einfach-mit-docker-compose ❖ https://blog.codeship.com/docker-machine-compose-and- swarm-how-they-work-together/ ❖ Beispiel-Code Repository ❖ https://github.com/dunkelfrosch/docker-atlassian-wb 32