docker & devops - rn.inf.tu-dresden.de · seite 5 docker & devops // 1. docker -...

22
Docker & DevOps [email protected]

Upload: vodang

Post on 04-Jun-2018

250 views

Category:

Documents


0 download

TRANSCRIPT

Page 2: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

Seite 2

Docker & DevOps //

0. Cloud&Heat

1. Docker

2. DevOps

Agenda

Page 3: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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)

Page 4: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

Seite 4

Docker & DevOps //

1. Docker - Motivation

Daniel(Developer)

Wie installiere ichdieses Flask?

Page 5: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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/

Page 6: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

Seite 6

Docker & DevOps //

1. Docker - Vorteile

● Isolation

– Version

– Ausführungsumgebung

● Leichtgewichtig

– Ausführung

– Transferieren

● Unkompliziert

– CLI

– Dockerfile

Page 7: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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

Page 8: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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/

Page 9: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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

Page 10: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

Seite 11

Docker & DevOps //

1. Docker

● Docker swarm

– Verteilte Ausführungsumgebung

● Docker compose

– Anwendugen mit mehreren Containern

– Netzwerkbeziehungen etc.

Page 11: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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

Page 12: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

Seite 14

Docker & DevOps //

2. DevOps - Definition

https://en.wikipedia.org/wiki/DevOps#/media/File:Devops.svg

Page 13: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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

Page 14: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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

Page 15: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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

Page 16: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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/

Page 17: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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/

Page 18: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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/

Page 19: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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

Page 20: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

Seite 24

Docker & DevOps //

2. DevOps – Anwenden

● Beispiel Automatisierung

– Code linting

– Build

– Test

– Deploy

Page 21: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

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/

Page 22: Docker & DevOps - rn.inf.tu-dresden.de · Seite 5 Docker & DevOps // 1. Docker - Virtualisierungsumgebung Virtualisierungsumgebung auf Betriebsystembasis Ausführung …

THE CLOUD THAT HEATS HOMES WORLDWIDE

page_26 von 00

Blind Copy Title // 14.11.17

?