Seite 2
Docker & DevOps //
0. Cloud&Heat
1. Docker
2. DevOps
Agenda
Seite 3
Docker & DevOps //
1. Docker - Motivation
Daniel(Developer)
BlogSoftware
Bitte blog_api.py installieren:$ export FLASK_APP=blog_api.py$ flask run
Oskar(Operator)
Seite 4
Docker & DevOps //
1. Docker - Motivation
Daniel(Developer)
Wie installiere ichdieses Flask?
Seite 5
Docker & DevOps //
1. Docker - Virtualisierungsumgebung
● Virtualisierungsumgebung auf Betriebsystembasis
● Ausführung der Anwendungen in Containern
● Ressourcen- und Verwaltung getrennt von Host-OS
Quelle: https://blog.netapp.com/blogs/containers-vs-vms/
Seite 6
Docker & DevOps //
1. Docker - Vorteile
● Isolation
– Version
– Ausführungsumgebung
● Leichtgewichtig
– Ausführung
– Transferieren
● Unkompliziert
– CLI
– Dockerfile
Seite 8
Docker & DevOps //
1. Docker● Daemon
– Images bauen
– Container ausführen/verwalten
– RESTful API
Source: https://docs.docker.com/engine/docker-overview/
● Registry
– Speichert Images
– Public (hub.docker.com)
– Private
● Client
– build – Image erstellen
– images – Images auflisten
– run – Container starten
– ps – Container auflisten
– stop – Container stoppen
– rm – Container löschen
– rmi – Image löschen
– push – Image hochladen
– pull – image herunterladen
Seite 9
Docker & DevOps //
1. Docker● Volumes
– Container sollten zustandslos sein
– Daten werden in Volumes gespeichert
– Docker run --volume /etc/blog:/etc/blog:ro
Source: https://docs.docker.com/engine/docker-overview/
Seite 10
Docker & DevOps //
1. Docker
● Demo Blog in Docker
Daniel(Developer)
Oskar(Operator)
Docker Registry
Dockerfile
Docker build
Docker push D
ocke
r run
Seite 11
Docker & DevOps //
1. Docker
● Docker swarm
– Verteilte Ausführungsumgebung
● Docker compose
– Anwendugen mit mehreren Containern
– Netzwerkbeziehungen etc.
Seite 13
Docker & DevOps //
2. DevOps - Definition
„DevOps beschreibt einen Prozessverbesserungs-Ansatz aus den Bereichen der Softwareentwicklung und Systemadministration.
DevOps ist ein Kunstwort aus den Begriffen Development (englisch für Entwicklung) und IT Operations (englisch für IT-Betrieb).
DevOps soll durch gemeinsame Anreize, Prozesse und Werkzeuge (englisch: Tools) eine effektivere und effizientere Zusammenarbeit der Bereiche Dev, Ops und Qualitätssicherung (QS) ermöglichen.
Mit DevOps sollen die Qualität der Software, die Geschwindigkeit der Entwicklung und der Auslieferung sowie das Miteinander der beteiligten Teams verbessert werden.“
Philosophie
Kunstwort
Methodik
Ziel
http://eprints.uni-kiel.de/29215/1/2015-07-10Architekturen.pdf
Seite 14
Docker & DevOps //
2. DevOps - Definition
https://en.wikipedia.org/wiki/DevOps#/media/File:Devops.svg
Seite 15
Docker & DevOps //
2. DevOps - Ziel
„Mit DevOps sollen die Qualität der Software, die Geschwindigkeit der Entwicklung und der Auslieferung sowie das Miteinander der beteiligten Teams verbessert werden.“
Daniel(Developer)
Oskar(Operator)
Neue Funktionen entwickeln!
Betrieb stabilhalten!
Erfolg der Unternehmung sicherstellen
Seite 16
Docker & DevOps //
2. DevOps - Methodik
„DevOps soll durch gemeinsame Anreize, Prozesse und Werkzeuge (englisch: Tools) eine effektivere und effizientere Zusammenarbeit der Bereiche Dev, Ops und Qualitätssicherung (QS) ermöglichen.“
https://en.wikipedia.org/wiki/DevOps#/media/File:Devops-toolchain.svg
Seite 17
Docker & DevOps //
2. DevOps - Anwenden
● „Three Ways“
– Grundlegende Prinzipien
– Methoden können abgeleitet werden
– Werte und Philosophie als Basis für Prozesse, Anwendungen und Praktiken
Seite 18
Docker & DevOps //
2. DevOps - Anwenden
● Leistung des Gesamtsystems im Fokus
● Alle Wertschöpfungsketten, deren Grundlage IT ist, werden betrachtet
● Konsequenzen:
– Defekte werden nicht weitergereicht
– Lokale Optimierung kann nie globales Ziel behindern
– Verbesserung des Gesamtflusses wird angestrebt
– Kontinuirliche Suche nach umfassendem Verständnis für das Gesamtsystem
Quelle: https://itrevolution.com/the-three-ways-principles-underpinning-devops/
Seite 19
Docker & DevOps //
2. DevOps - Anwenden
● Herstellen von Feedback Schleifen für Kontinuirliche Verbesserung
– möglichst kurz und treffend
● Besseres Verständnis für interne und externe „Kunden“
● Schnelle Verbesserung möglich
● Kontinuirliches Lernen
Quelle: https://itrevolution.com/the-three-ways-principles-underpinning-devops/
Seite 21
Docker & DevOps //
2. DevOps - Anwenden
● Kultur:
– Kontinuirliches Probieren, Risiken eingehen, aus Fehlern Lernen
– Zeit für die Verbesserung der Arbeitsweise einplanen
– Wiederholung und Übung sind der Schlüssel zum Meistern
● Injizieren von Fehlern zur Prüfung der Fehlertoleranz
Quelle: https://itrevolution.com/the-three-ways-principles-underpinning-devops/
Seite 23
Docker & DevOps //
2. DevOps - Anwenden
Quelle: http://blog.shippable.com/why-devops-efforts-fail
● Culture
– Positive Einstellung zu Änderungen
● Automation
– Manuelle Prozesse automatisieren wenn zeitraubend oder fehleranfällig
● Lean
– Vermeidung von Verschwendung
– Work-in-progress, batch size, Warteschlangen
● Measurement
– Zielüberwachung
● Sharing
– Benutzerfreundliche Kommunikationskanäle
Seite 24
Docker & DevOps //
2. DevOps – Anwenden
● Beispiel Automatisierung
– Code linting
– Build
– Test
– Deploy
Seite 25
Docker & DevOps //
Books:
– Clean Code
– The Phoenix Project
– DevOps Handbook
Web:
– 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr https://www.youtube.com/watch?v=LdOe18KhtT4
– Robert C. Martin● http://clean-code-developer.de/● https://www.youtube.com/watch?v=ecIWPzGEbFc
– Beyond CI/CD: GitLab's DevOps vision https://about.gitlab.com/2017/10/04/devops-strategy/
THE CLOUD THAT HEATS HOMES WORLDWIDE
page_26 von 00
Blind Copy Title // 14.11.17
?