SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
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

Was ist angesagt?

Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15m1no
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easyinovex GmbH
 
Tipps zur Performanceoptimierung für Liferay Portal
Tipps zur  Performanceoptimierung für Liferay PortalTipps zur  Performanceoptimierung für Liferay Portal
Tipps zur Performanceoptimierung für Liferay PortalStefan Hilpp
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...inovex GmbH
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtB1 Systems GmbH
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easydocker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easyinovex GmbH
 
Versionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und GitVersionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und Gitpaultcochrane
 
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User GroupMatthias Praunegger
 
Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2Skalieren von Rails Anwendungen mit Amazon S3 und EC2
Skalieren von Rails Anwendungen mit Amazon S3 und EC2Jonathan Weiss
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISPeter Löwe
 
Ausfallsichere Kultur mit Plone
Ausfallsichere Kultur mit PloneAusfallsichere Kultur mit Plone
Ausfallsichere Kultur mit PloneJens Klein
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungFrank Schmittlein
 
Deployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsBild GmbH & Co. KG
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen B1 Systems GmbH
 

Was ist angesagt? (17)

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

Andere mochten auch

4 b power point
4 b power point4 b power point
4 b power pointenecorcu
 
Elearning how tostart-eng
Elearning how tostart-engElearning how tostart-eng
Elearning how tostart-engVu Duong
 
que es Rss, funcionamiento y tipos
que es Rss, funcionamiento y tipos que es Rss, funcionamiento y tipos
que es Rss, funcionamiento y tipos Edwin Rodriguez
 
Excel 2007. Nivel avanzado
Excel 2007. Nivel avanzado Excel 2007. Nivel avanzado
Excel 2007. Nivel avanzado Congente
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsTessa Mero
 
Digital transformation vkw (1)
Digital transformation vkw (1)Digital transformation vkw (1)
Digital transformation vkw (1)ETION
 
Modular HTML & CSS
Modular HTML & CSSModular HTML & CSS
Modular HTML & CSSShay Howe
 
709 cepeda diseño de metodologia de enseñanza
709 cepeda diseño de metodologia de enseñanza709 cepeda diseño de metodologia de enseñanza
709 cepeda diseño de metodologia de enseñanzasocorro Juarez
 
Strategic Communications Planning for NPOs
Strategic Communications Planning for NPOsStrategic Communications Planning for NPOs
Strategic Communications Planning for NPOsArts4good
 
Technology and the concepts of technology
Technology and the concepts of technologyTechnology and the concepts of technology
Technology and the concepts of technologyi4VC
 
Product Development Principles
Product Development PrinciplesProduct Development Principles
Product Development Principlesi4VC
 
Changellenge | Cup Kazakhstan 2016 | Leroy Merlin case | 1st place
Changellenge | Cup Kazakhstan 2016 | Leroy Merlin case | 1st placeChangellenge | Cup Kazakhstan 2016 | Leroy Merlin case | 1st place
Changellenge | Cup Kazakhstan 2016 | Leroy Merlin case | 1st placeCrystal Spring
 

Andere mochten auch (17)

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

Ähnlich wie Docker Workbench

Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSRalf Ernst
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Die Containerplattform Lego für DevOps
Die Containerplattform Lego für DevOpsDie Containerplattform Lego für DevOps
Die Containerplattform Lego für DevOpsATIX AG
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXCContainer im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXCBild GmbH & Co. KG
 
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfSyahri Ramadhan
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Managementinovex GmbH
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istRamon Anger
 
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerAlternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerOPITZ CONSULTING Deutschland
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampWerner Keil
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020Stephan Kaps
 
200 verteilte Oracle- Server mit Ansible ausrollen
200 verteilte Oracle- Server mit Ansible ausrollen200 verteilte Oracle- Server mit Ansible ausrollen
200 verteilte Oracle- Server mit Ansible ausrollenUwe Küchler
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumNicholas Dille
 
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DBDocker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DBPeter Ramm
 

Ähnlich wie Docker Workbench (20)

Oracle und Docker
Oracle und DockerOracle und Docker
Oracle und Docker
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OS
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Die Containerplattform Lego für DevOps
Die Containerplattform Lego für DevOpsDie Containerplattform Lego für DevOps
Die Containerplattform Lego für DevOps
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXCContainer im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
 
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
 
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/DockerAlternativen des Betriebs von Weblogic mit Kubernetes/Docker
Alternativen des Betriebs von Weblogic mit Kubernetes/Docker
 
Wordpress im docker
Wordpress im dockerWordpress im docker
Wordpress im docker
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCamp
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020
 
200 verteilte Oracle- Server mit Ansible ausrollen
200 verteilte Oracle- Server mit Ansible ausrollen200 verteilte Oracle- Server mit Ansible ausrollen
200 verteilte Oracle- Server mit Ansible ausrollen
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
 
CKAN by Friedrich Lindenberg
CKAN by Friedrich LindenbergCKAN by Friedrich Lindenberg
CKAN by Friedrich Lindenberg
 
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DBDocker-Images mit vorinstallierter Instanz einer Oracle-DB
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