Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

10
Container in Betrieb Ergebnisse der Validierung Docker vs. LXC Alexander Kuhn (BILD GmbH) 08.06.2015

Transcript of Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Page 1: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Container in BetriebErgebnisse der Validierung Docker vs. LXC

Alexander Kuhn (BILD GmbH)

08.06.2015

Page 2: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Vorüberlegungen bei bild.de

2

▪ Einheitliche Systemstruktur (CentOS7)▪ Viele kleine und große Services ca. 140 verschiedene▪ Insgesamt fast 400 Dienste▪ Möglichst einheitliche Umgebungen (lokal, Dev, Stage, Prod)▪ Wir wollen möglichst schnell und unabhängig eigene Services einrichten▪ Eingesetzte Technologie soll guten (Community-) Support haben▪ Bereits bei vergleichbaren Firmen im Einsatz sein

Page 3: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Container Grundlagen

3

Virtuelle Maschinen Container

Hardware

Host-Betriebssystem (Kernel Module)

Virtual Maschine Monitor

Virtuelle Maschine

Gast-Betriebsystem

Anwendungen

Anwendungen

Hardware

Host-Betriebssystem Linux Kernel

Management Interface

Namespaces cgroups SELinux

Container ContainerContainer

Page 4: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Linux Container Grundlagen

4

Namespaces (Isolierung)

▪ IPC isoliert die System V inter-process communication ▪ Network isoliert Netzwerk devices, stacks, ports, etc. ▪ Mount isoliert das Filesystem Layout▪ PID isoliert die Prozesse▪ User isoliert Benutzer IDs▪ UTS erlaubt die Änderung des hostnames

▪ Abstraktion der globalen System Resourcen

Page 5: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Linux Container Grundlagen

5

Cgroups (resource capping)

▪ CPU (limits sets/shares/scheduler)▪ RAM (limits memory/swap)▪ Block IO▪ Alle anderen Linux capabilities▪ Prozess

▪ Isolierte zur Verfügung Stellung der Resourcen▪ Kontrolle▪ Protokolierung

Page 6: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

keine Hardware Virtualisierung

6

▪ Zuviele Features die wir nicht benötigen▪ Live Migration, Mandanten Fähigkeit, Storage- und Netgzwerkvirtualisierung▪ Wir benötigen keine verschiedenen Betriebssysteme▪ Es ist sehr kostenintensiv▪ Zusätzliche Komplexitätsschicht die Debugging und Fehlersuche erschwert

Page 7: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Entscheidung für Container

7

▪ Grundlegend im Linux Kernel integriert▪ Leichtgewichtig ohne viel Resourcen overhead▪ Schnell zu erstellen und zu entwickeln▪ Resourcen Kontrolle/ Limitierung▪ Prozess Isolierung▪ Image Management▪ Einfache Handhabung▪ Keine große zusätzliche Infrastruktur

Page 8: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Entscheidung für Container

8

„This is chroot() on steroids“

Page 9: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Docker vs. LxC

9

▪ Grundlegend im Kernel integriert▪ Verschiedene Interfaces▪ Kernel Features schon lange verfügbar▪ Unterstützt vollständiges Init▪ Nachteile:▪ In CentOS nur per libvirt▪ Manuelles compilieren von Tools▪ Wird in Ubuntu/Debian am besten unterstützt

▪ Bietet alle Funktionen von LxCPlus:▪ Image Management▪ Image Registry (Speicherplatz)▪ Image Versionierung▪ Einfaches Tooling▪ Große Community▪ Unterstützt von allen Distributionen

LxC Docker

Page 10: Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Docker Live Demo

10