Der Workshop zeigt praxisnah, wie man mithilfe von DC/OS und Docker Workloads in Container verpacken und in einem Cluster deployen kann. Es werden die Vor- und Nachteile von (Docker-)Containern in einer Produktionsumgebung betrachtet und verschiedene mögliche Ansätze beleuchtet (Swarm, Marathon, Kubernetes).
Für die Teilnehmer werden verschiedene Übungen vorbereitet, die sie im Rahmen des Workshops selbst an ihrem Rechner in vorbereiteten DC/OS-Clustern durchführen werden:
1. Bauen eines eigenen Docker Image für eine Beispielapplikation mit Jenkin
2. Starten von Frameworks, Services und Apps in DC/OS über GUI und CLI
3. Einrichten eines Loadbalancers mit Service-Discovery-Funktionen
4. Updaten/Deployen der Container auf eine neue Versionen
Bei der letzten Übung werden verschiedene Strategien vorgestellt, um z.B. Blue-Green-, Rolling- oder Canary- Deployments durchzuführen.
TECHNISCHE ANFORDERUNGEN
Die Teilnehmen benötigen ein eigenes Notebook. Für die meisten Tasks ist nur eine Shell und ein Browser notwendig, weshalb ein aktueller Browser und ein SSH Client installiert sein sollte.
- Betriebssystem: Windows >= 7 / MacOS / Linux
- Port für Kabelnetzwerk (LAN) oder WLAN
- aktueller Browser und SSH Client (auf Windows zum Beispiel PuTTY)
AGENDA
ab 10.00 Registrierung und Begrüßungskaffee
11.00: Beginn
- Überblick über DC/OS
- Evolution von verteilten Betriebssystemen und Applikationen
- Vorteile von verteilten Architekturen
- Architektur von Mesos und Ressourcen Verwaltung
- Architektur von Marathon
- Beispiel einer Marathon Application Specification (JSON)
- Betrachtung weiterer Frameworks (swarm, kubernetes)
12.30 - 13.30: Mittagspause
- Anmelden im Übungs-Cluster,
- Erste Eindrücke mit Marathon
- Überblick DC/OS CLI (command line interface)
- Hands On Teil 1:
- Bauen einer Applikation im Docker Container via Jenkins
- Deployment des Docker Containers via Marathon
- Betrachtung von Loadbalancing, Skalierbarkeit und Service Discovery für die Applikation
15.00 - 15.15: Kaffeepause
- Überblick über Deployment Strategien
- Hands On Teil 2:
- Bauen einer neuen Applikations-Version
- Deployment der Applikation mit verschiedenen Strategien
(Blue-Green-, Rolling- oder Canary- Deployments)
16.30 - 16.45: Kaffeepause
- Hands On Teil 3:
- Automatisiertes Deployment einer komplexen Applikation (Elastic Data Pipeline)
- Daten Producer
- Verarbeitung mittels Kafka, Spark, NoSQL Datenbank
- Anzeige von Metriken und Geo Events
ca. 18.00 Uhr: Ende
Vorkenntnisse
* Linux/Shell (Grundkenntnisse)
* Git (Grundkenntnisse)
* Docker (Grundkenntnisse)
Lernziele
* Was sind Apache Mesos und DC/OS?
* Welche Deployment-Strategien gibt es? Welche Vor- und Nachteile haben sie?
* Welche Strategie passt für die eigenen Anforderungen am besten?
* Wie kann man Zero-Downtime Deployments von Containern in einem Cluster durchführen?
Technische Anforderungen
Bringen Sie bitte zu dem Workshop ein eigenes (halbwegs modernes) Notebook mit. Für die meisten Tasks benötigen wir nur eine Shell und einen Browser. Auf dem Notebook sollte ein aktueller Browser und ein SSH Client installiert sein.
* Betriebssystem: Windows >= 7/OS X/Linux
* Port für Kabelnetzwerk (LAN) oder WLAN
* aktueller Browser und SSH Client (auf Windows zum Beispiel PuTTY)
Wenn Sie an dem Workshop teilnehmen, wird Ihre E-Mail-Adresse temporär als Username verwendet, um sich im Cluster anmelden zu können.
//
Michael Hausenblas
@mhausenblas
ist Developer Advocate bei Mesosphere, wo er AppOps dabei hilft, verteilte Systeme und Services zu bauen und zu betreiben. Er hat tiefgehende Erfahrung in der Integration großer Datenmengen, speziell in den Bereichen Hadoop, NoSQL-Datenbanken, IoT und Webapplikationen. Er trägt zu diversen Open-Source-Projekten (wie DC/OS) bei und teilt seine Erfahrung mit verteilten Systemen durch Demos, Blog Posts und öffentliche Vorträge.
//
Oliver Moser
@MoserOli
ist Senior IT Consultant bei der codecentric AG. Aktuell konzentriert er sich auf die Themen Big Data, IT Security und DevOps. Er hat bereits mehreren Enterprise-Kunden dabei geholfen, hochverfügbare Webinfrastrukturen aufzubauen und voll automatisierte Deployment Pipelines zu entwickeln. Gerne beschäftigt er sich damit, Prozesse zu automatisieren und zu vereinfachen – natürlich mit Open-Source-Technologie und selbst gebauten Tools.