Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC

Post on 21-Jan-2017

106 views 2 download

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

Container in BetriebErgebnisse der Validierung Docker vs. LXC

Alexander Kuhn (BILD GmbH)

08.06.2015

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

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

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

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

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

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

Entscheidung für Container

8

„This is chroot() on steroids“

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

Docker Live Demo

10