Vir­tua­li­sie­rung hat die In­for­ma­ti­ons­tech­no­lo­gie re­vo­lu­tio­niert. Die Ver­tei­lung der Res­sour­cen eines phy­si­schen Rechners auf mehrere virtuelle Maschinen (VM) hat vor allem in Form der Hardware-Vir­tua­li­sie­rung Einzug in die IT-Land­schaft gehalten. Dieser Ansatz beruht auf der Emulation von Hard­ware­kom­po­nen­ten, um auf einem ge­mein­sa­men Host­sys­tem ver­schie­de­ne virtuelle Server mit eigenem Be­triebs­sys­tem (Operating System, OS) be­reit­stel­len zu können. Zum Einsatz kommt ein solcher Aufbau oft in der Software-Ent­wick­lung, wenn auf einem Computer ver­schie­de­ne Test­um­ge­bun­gen rea­li­siert werden sollen. Vir­tua­li­sie­rung bildet zudem die Grundlage diverser Web­hos­ting-Produkte, bei denen Ser­ver­leis­tung cloud­ba­siert zur Verfügung gestellt wird.

Eine Al­ter­na­ti­ve zur Hardware-Vir­tua­li­sie­rung stellt die Vir­tua­li­sie­rung auf Be­triebs­sys­tem­ebe­ne dar. Dabei werden ver­schie­de­ne Server-An­wen­dun­gen in iso­lier­ten vir­tu­el­len Um­ge­bun­gen – so­ge­nann­ten Con­tai­nern – rea­li­siert, die alle auf demselben Be­triebs­sys­tem laufen. Man spricht daher auch von con­tai­ner­ba­sier­ter Vir­tua­li­sie­rung. Genau wie virtuelle Maschinen mit jeweils eigenem Be­triebs­sys­tem bieten auch Container die Mög­lich­keit, ver­schie­de­ne An­wen­dun­gen mit un­ter­schied­li­chen An­for­de­run­gen parallel auf ein und demselben phy­si­schen System zu nutzen. Da Container kein eigenes OS be­inhal­ten, zeichnet sich diese Vir­tua­li­sie­rungs­tech­nik durch eine deutlich schlan­ke­re In­stal­la­ti­on und einen geringen Overhead aus.

Server-Container sind keine neue Erfindung, ins Zentrum der Auf­merk­sam­keit rückt die Tech­no­lo­gie derzeit jedoch durch Open-Source-Projekte wie Docker und rkt von CoreOS.

Cloud-Migration mit IONOS
Die Hy­per­vi­sor-Al­ter­na­ti­ve
  • Bestes Preis-Leistungs-Ver­hält­nis – keine Vir­tua­li­sie­rungs­kos­ten
  • Mi­gra­ti­ons­hil­fe durch IONOS Cloud-Experten inklusive
  • Ohne Vendor Lock-in & Open-Source-basiert

Was sind Server-Container?

Während sich die Hardware-Vir­tua­li­sie­rung auf einen so­ge­nann­ten Hy­per­vi­sor stützt, der auf der Hardware des Host­sys­tems aufsetzt und diese anteilig an die Gast-Be­triebs­sys­te­me verteilt, werden bei der con­tai­ner­ba­sier­ten Vir­tua­li­sie­rung keine zu­sätz­li­chen Be­triebs­sys­te­me gestartet. Statt­des­sen bildet das ge­mein­sa­me OS isolierte Instanzen seiner selbst. Diese vir­tu­el­len Container stellen An­wen­dun­gen eine komplette Lauf­zeit­um­ge­bung zur Verfügung.

Software-Container lassen sich im Grunde als Apps für den Server be­trach­ten. Um eine Anwendung zu in­stal­lie­ren, wird der ent­spre­chen­de Container in einem portablen Format, dem so­ge­nann­ten Image, mit allen be­nö­tig­ten Dateien auf den Rechner geladen und dort in einer vir­tu­el­len Umgebung gestartet. Eine Im­ple­men­tie­rung für Ap­pli­ca­ti­on-Container findet sich praktisch in allen Be­triebs­sys­te­men: Auf Windows kommt die von Parallels ent­wi­ckel­te Software Virtuozzo zum Einsatz, FreeBSD stellt die Vir­tua­li­sie­rungs­um­ge­bung Jails zur Verfügung und Linux un­ter­stützt Container in Form von OpenVZ und LXC. In­ter­es­sant für den Mas­sen­markt wird die Be­triebs­sys­tem­vir­tua­li­sie­rung jedoch erst durch Container-Platt­for­men wie Docker oder rkt. Sie fügen der Tech­no­lo­gie grund­le­gen­de Funk­tio­nen hinzu, die den Umgang mit Server-Con­tai­nern we­sent­lich ver­ein­fa­chen.

Exkurs: Docker und das Comeback der Container-Tech­no­lo­gie

Wer sich mit con­tai­ner­ba­sier­ter Vir­tua­li­sie­rung be­schäf­tigt, stößt un­wei­ger­lich auf Docker. Das Open-Source-Projekt ist dank eines her­vor­ra­gen­den Mar­ke­tings binnen weniger Jahre zum Synonym für Container-Tech­no­lo­gie geworden. Docker ist ein Kom­man­do­zei­len-Tool zum Starten, Stoppen und Verwalten von Con­tai­nern und basiert auf Linux-Techniken wie Cgroups und Name­spaces, um eine Res­sour­cen­tren­nung einzelner Container zu rea­li­sie­ren. Anfangs kam dabei die LXC-Schnitt­stel­le des Linux-Kernels zum Einsatz. Mitt­ler­wei­se verwenden Docker-Container jedoch eine selbst­ent­wi­ckel­te Pro­gram­mier­schnitt­stel­le namens Libcon­tai­ner.

Ein zentrales Feature der Docker-Plattform ist das Docker Hub, ein On­line­dienst, der ein Re­po­si­to­ry für Docker-Images be­inhal­tet, sodass selbst­er­stell­te Images bequem mit anderen Anwendern geteilt werden können. Für Linux-Nutzer gestaltet sich die In­stal­la­ti­on eines vor­ge­fer­tig­ten Server-Con­tai­ners so einfach wie der Download aus einem App-Store. Ent­spre­chen­de An­wen­dun­gen werden über simple Kom­man­do­zei­len­be­feh­le vom zentralen Docker-Hub her­un­ter­ge­la­den und auf dem eigenen System aus­ge­führt.

Kon­kur­renz bekommt Docker mit der Con­tain­erlö­sung rkt, die sowohl Docker-Images als auch das eigene Format App Container Images (ACI) un­ter­stützt.

Managed Nextcloud by IONOS Cloud
Team­ar­beit in der eigenen Cloud
  • Voll­stän­di­ge Da­ten­sou­ve­rä­ni­tät in deutschen Re­chen­zen­tren
  • Managed Service ohne Ad­mi­nis­tra­ti­ons­auf­wand
  • File-Sharing, Do­ku­men­ten­be­ar­bei­tung & Kom­mu­ni­ka­ti­on

Merkmale con­tai­ner­ba­sier­ter Vir­tua­li­sie­rung

Ap­pli­ca­ti­on-Container stellen Ad­mi­nis­tra­to­ren sämtliche Dateien, die für den Betrieb einer Server-Anwendung benötigt werden, in einem hand­li­chen Paket zur Verfügung. Dies ver­ein­facht z. B. die In­stal­la­ti­on und den Betrieb komplexer Ser­ver­pro­gram­me. Die Vorteile liegen aber vor allem im Ma­nage­ment und der Au­to­ma­ti­sie­rung con­tai­ner­ba­sier­ter An­wen­dun­gen.

  • Geringer In­stal­la­ti­ons­auf­wand: Software-Container werden aus Images gestartet. Dabei handelt es sich um portable Ab­bil­dun­gen eines Con­tai­ners, die ein einzelnes Ser­ver­pro­gramm und alle be­nö­tig­ten Kom­po­nen­ten wie Bi­blio­the­ken, Hilfs­pro­gram­me oder Kon­fi­gu­ra­ti­ons­da­tei­en enthalten. Damit lassen sich die Un­ter­schie­de in diversen Be­triebs­sys­tem­dis­tri­bu­tio­nen kom­pen­sie­ren. Der In­stal­la­ti­ons­auf­wand einer solchen Server-App be­schränkt sich somit auf das Eintippen einer einzelnen Kom­man­do­zei­le.
  • Platt­form­un­ab­hän­gig­keit: Images lassen sich kom­for­ta­bel von einem System zum anderen über­tra­gen und zeichnen sich durch eine weit­ge­hen­de Platt­form­un­ab­hän­gig­keit aus. Um einen Software-Container aus einem Image zu starten, benötigt man lediglich ein Be­triebs­sys­tem mit ent­spre­chen­der Container-Plattform.
  • Minimaler Vir­tua­li­sie­rungs­schwund: Greift man auf Linux und Docker zurück, umfasst ein solcher Aufbau rund 100 Megabyte und ist in wenigen Minuten ein­ge­rich­tet. Doch nicht nur die schlanke In­stal­la­ti­on kommt Sys­tem­ad­mi­nis­tra­to­ren entgegen. Während bei einer Hardware-Vir­tua­li­sie­rung deutliche Per­for­mance-Einbußen durch den Hy­per­vi­sor und zu­sätz­li­che Be­triebs­sys­te­me zu ver­zeich­nen sind, re­du­zie­ren Container-Lösungen diesen so­ge­nann­ten Vir­tua­li­sie­rungs­schwund auf ein Minimum. Zudem dauert das Booten vir­tu­el­ler Maschinen mitunter mehrere Minuten, Container-Apps für den Server hingegen stehen un­mit­tel­bar zur Verfügung.
  • Isolierte An­wen­dun­gen: Jedes Programm in einem Server-Container läuft isoliert von anderen Software-Con­tai­nern auf dem OS. So lassen sich selbst An­wen­dun­gen mit wi­der­sprüch­li­chen An­for­de­run­gen mit geringem Aufwand parallel auf demselben System betreiben.
  • Ein­heit­li­che Ad­mi­nis­tra­ti­on und Au­to­ma­ti­sie­rung: Da das Ma­nage­ment aller Server-Container auf einer Container-Plattform wie Docker mit denselben Werk­zeu­gen erfolgt, lassen sich An­wen­dun­gen im Re­chen­zen­trum weit­ge­hend au­to­ma­ti­sie­ren. Container-Lösungen eignen sich daher vor allem für Server-Ar­chi­tek­tu­ren, bei denen einzelne Kom­po­nen­ten auf mehrere Server verteilt sind, sodass Lasten von ver­schie­de­nen Instanzen getragen werden. Die Container-Plattform Docker stellt für solche An­wen­dungs­ge­bie­te Tools zur Verfügung, mit denen sich Au­to­ma­tis­men kon­fi­gu­rie­ren lassen. Dies er­mög­licht es bei­spiels­wei­se, neue Instanzen bei Last­spit­zen au­to­ma­tisch zu starten. Eine auf Docker zu­ge­schnit­te­ne Software zur Or­ches­trie­rung großer Container-Cluster bietet Google mit Ku­ber­netes.

Die Vorteile der Container-Tech­no­lo­gie werden in diesem Video zu­sam­men­ge­fasst:

Wie sicher sind Container-Lösungen?

Der Verzicht auf separate Be­triebs­sys­te­me ver­schafft der con­tai­ner­ba­sier­ten Vir­tua­li­sie­rung einen Per­for­mance-Vorteil. Dieser geht jedoch mit einem re­du­zier­ten Si­cher­heits­le­vel einher. Während sich Si­cher­heits­lü­cken im Be­triebs­sys­tem bei der Hardware-Vir­tua­li­sie­rung in der Regel nur auf eine virtuelle Maschine beziehen, wirken sich diese bei der Vir­tua­li­sie­rung auf Be­triebs­sys­tem­ebe­ne auf alle Software-Container aus. Container sind demnach nicht im gleichen Ausmaß gekapselt wie virtuelle Maschinen mit eigenem OS. Zwar ließe sich durch einen Angriff auf den Hy­per­vi­sor auch hier er­heb­li­cher Schaden anrichten. Dieser bietet durch die geringere Kom­ple­xi­tät jedoch deutlich weniger An­griffs­flä­che als bei­spiels­wei­se ein Linux-Kernel. Server-Container stellen somit zwar eine Al­ter­na­ti­ve zur Hardware-Vir­tua­li­sie­rung dar, werden diese jedoch vorerst nicht voll­kom­men ersetzen können.

Zum Hauptmenü