Beiträge

Bei einem Hypervisor, der auch als Virtual Machine Monitor (VMM) bezeichnet wird, handelt es sich um eine leistungsstarke Software zur Virtualisierung von Computerressourcen. Der Hypervisor weist den verschiedenen virtuellen Maschinen Rechenressourcen wie Arbeitsspeicher, CPU oder Festplattenspeicher zu. Er ist außerdem für die Trennung der virtuellen Maschinen untereinander zuständig und erlaubt den parallelen Betrieb mehrerer verschiedener Betriebssysteme auf demselben Computer.

Allgemeine Informationen zum Hypervisor

Die Virtualisierung von Computerressourcen und Betriebssystemen hat ganz neue technische Möglichkeiten mit sich gebracht. Statt ein komplettes Computersystem inklusive Hardware und Software aufzubauen, können Sie sich durch den Einsatz moderner Virtualisierungslösungen, wie beispielsweise Hyper-V oder VMware schnell und unkompliziert eine virtuelle Version davon schaffen. Virtualisierung kommt beispielsweise in der modernen Softwareentwicklung zum Einsatz, um eine sichere Test- und Entwicklungsumgebung zu schaffen. Damit dies realisiert werden kann, muss eine virtuelle Maschine auf einem physischen System betrieben werden. Zwischen diesen beiden Schichten muss es eine Entität geben, die eine Vernetzung herstellt und für die Kommunikation zwischen diesen beiden Ebenen zuständig ist. Als Vermittler kommt an dieser Stelle eine abstrakte Schicht zum Einsatz – der sogenannte „Hypervisor“.

Was ist ein Hypervisor?

Eine virtuelle Maschine (VM) nutzt als Basis einen physischen Computer, wie beispielsweise einen Server oder Desktop-PC. Konkret bedeutet das, dass eine VM auf die physische Hardware angewiesen ist. Ein Hypervisor stellt eine Schicht zwischen der Hardware- und der Virtuellen-Ebene dar, die für die Verwaltung zuständig ist. Prinzipiell handelt es sich bei einem Hypervisor um eine Software, welche die Kontrolle und Verwaltung über die benötigten Ressourcen übernimmt. Die auch unter der Bezeichnung Virtual Machine Monitor (VMM) bekannte Software, weist im Rahmen eines Computersystems CPU- und Netzwerk-Ressourcen sowie Festplatten- und Arbeitsspeicher zu. Aus diesem Grund können auch mehrere unterschiedliche virtuelle Maschinen auf einem einzelnen Host-System effizient betrieben werden, da sich ein Hypervisor darum kümmert, dass es nicht Konflikten zwischen den einzelnen VMs kommt und dass die benötigten Kapazitäten zur Verfügung gestellt werden.

Eine virtuelle Maschine bekommt von den Organisationsschritten des Hypervisors in der Regel nichts mit. Der Virtual Machine Monitor abstrahiert die zur Verfügung gestellte Hardware auf solche Weise, dass die VM diese von einer dedizierten Hardware-Umgebung nicht unterschieden kann. Da sich bei virtuellen Maschinen die Anforderungen in Abhängigkeit von den laufenden Anwendungen ständig ändern, ist ein bedeutender Vorteil des Hypervisors, dass er Ressourcen dynamisch und in Echtzeit zur Verfügung stellt. Auch davon bekommt die virtuelle Maschine nichts mit. Sie hat nämlich keine Möglichkeit, das Vorhandensein anderer VMs auf derselben physischen Hardware zu erkennen. Durch die strikte Trennung zwischen den einzelnen virtuellen Maschinen, wird nicht nur für eine effiziente Verteilung der Ressourcen gesorgt, sondern es steigert auch die Sicherheit. Der Hypervision stellt sicher, dass eine VM nicht auf Dateien einer anderen VM zugreifen kann.

Die hohe Effizienz und Flexibilität von einem Hypervisor

Ein Hypervisor bildet nur eine abstrakte Schicht, die der virtuellen Maschine eine simulierte Hardware-Umgebung zur Verfügung stellt. Eine virtuelle Maschine, also das Gastsystem, ist nicht an einen bestimmten Hypervisor oder an ein bestimmtes Host-System gebunden. Damit bietet die Virtualisierung ein hohes Maß an Flexibilität und ist insbesondere für Anbieter von Cloud-Services sehr interessant. Cloud-Anbieter können die virtualisierten Umgebungen einfach auf andere physische Server verschieben, ohne dass die Programme, die auf den virtuellen Maschinen laufen, neu installiert oder konfiguriert werden müssen. Ein Hypervisor im Rahmen einer Virtualisierungssoftware, wie beispielsweise Hyper-V oder VMware, stellt dem Anwender außerdem eine Vielzahl unterschiedlicher Verwaltungsoptionen bereit. So können Anwender Gastsysteme schnell und einfach organisieren, einstellen und erstellen.

Verschiedene Typen im Überblick

Prinzipiell wird zwischen zwei verschiedenen Hypervisor-Arten unterschieden, und zwar Typ 1 und Typ 2. Der Typ 1 wird auch als Bare Metal Hypervisor bezeichnet. Diese Art des Virtual Machine Monitors funktioniert so, dass er direkt auf die physische Hardware aufgesetzt wird. Da ein solcher Hypervisor keine Verbindung zu dem Betriebssystem des Hosts hat, muss er alle benötigten Gerätetreiber selbst zur Verfügung stellen. Der Systemressourcenverbrauch ist bei dem Typ 1 relativ gering, da die Ressourcen nicht über das Betriebssystem des Hosts bereitgestellt werden. Diese Art des Virtual Machine Monitors ist in erster Linie an Anwender gerichtet, die damit einen dedizierten Server für Virtualisierung einrichten möchten. Für kleinere Projekte ist dieser Typ zu kompliziert und zu aufwendig.

Der Typ 2, der auch unter der Bezeichnung Hosted Hypervisor bekannt ist, ist hingegen auf ein bestehendes Betriebssystem angewiesen, das wiederum die physische Hardware als Basis nutzt. Ein Hypervisor des Typs 2 wird wie eine gewöhnliche Software auf den Computer installiert und verwaltet nach der erfolgreichen Installation alle Virtualisierungsprozesse. Die Gerätetreiber müssen hier nicht wie beim Typ 1 im Hypervisor selbst installiert sein, sondern dank der Einbindung in das bestehende Betriebssystem werden diese automatisch bereitgestellt. Dieser Komfort hat jedoch auch einige Nachteile, die sich in erster Linie auf eine schlechtere Performance auswirken. Ein beachtlicher Teil der Ressourcen wird nämlich bereits vom Betriebssystem des Hosts in Anspruch genommen, sodass für die virtuellen Maschinen weniger Ressourcen übrigbleiben. Dank der einfachen Installation sowie der schnellen und unkomplizierten Installation ist dieser Typ in erster Linie auf die Bedürfnisse kleinerer Projekte ausgelegt.

Im IT-Bereich wird mit Skalierung bzw. Skalierbarkeit die Fähigkeit eines Systems oder einer Anlage beschrieben, sich den schrumpfenden oder auch den wachsenden Anforderungen in Bezug auf die Performance der Software- und Hardware-Ebene möglichst flexibel anpassen zu können. In der Praxis wird Skalierung jedoch auch oft mit Wachstum gleichgesetzt.

Skalierbarkeit im Detail

Im Bereich moderner Informationstechnologien gelten Prozesse als skalierbar, wenn sie parallel zu den vorgegebenen Aufgaben wachsen oder schrumpfen können. Ein IT-System oder eine Anlage, die im Rahmen einer Skalierung den neuen Anforderungen angepasst wurde, ist auch nach der Implementierung der neuen Maßnahmen voll funktionsfähig. Skalierung bedeutet jedoch nicht nur, dass die skalierte Anwendung oder das System funktionieren, sondern dass auch die daraus resultierenden Vorteile weiterhin nutzbar sind. So gilt beispielsweise zum Beispiel eine Datenbank als skalierbar, wenn sie von einem einzelnen Server auf ein verteiltes Server-Cluster übertragen werden kann.

Die Vorteile einer solche Skalierung spiegeln sich in erster Linie in kürzeren Antwortzeiten und einer effizienteren Verwaltung der MySQL-Datenbank. In der Praxis ist es oft so, dass sich eine Skalierbarkeit viel einfacher nach oben als nach unten realisieren lässt. Dies ist auf die Tatsache zurückzuführen, dass bei einer Herunterskalierung das System eine gute Performance in einer kleineren Umgebung bereitstellen muss, während bei einer Skalierung nach oben zusätzliche Ressourcen zur Verfügung gestellt werden. Die Leistung eines Systems lässt sich auf zwei verschiedene Arten steigern, und zwar vertikal und horizontal.

Vertikale Skalierung

Im Rahmen einer vertikalen Skalierbarkeit (Scale Up) werden Ressourcen innerhalb einer logischen Einheit zusammengefügt. Konkret bedeutet das, dass die Leistungssteigerung durch das Hinzufügen von Ressourcen innerhalb eines Systems realisiert wird. Prominente Beispiele für diese Art der Skalierbarkeit wären:

– das Vergrößern der vorhandenen Speicherplatzkapazität

– das Hinzufügen einer leistungsstärkeren CPU

– Aufrüstung von Arbeitsspeicher

– Einbau einer besseren GPU

Bei einer vertikalen Skalierung kann die vorhandene Software sehr einfach angepasst werden, in vielen Fällen ist sogar eine Anpassung überhaupt nicht nötig. In der Regel muss keine Zeile Code neugeschrieben werden, um einen Leistungszuwachs durch vertikales Skalieren zu erhalten. Die vertikale Skalierbarkeit stößt jedoch früher oder später an Grenzen des Möglichen, weil man beispielsweise bereits die schnellste Hardware nutzt und eine Aufrüstung demzufolge nicht möglich ist.

Horizontale Skalierung

Bei der horizontalen Skalierbarkeit (Scale Out) sind im Gegensatz zu der vertikalen Skalierbarkeit keine Grenzen in Bezug auf die Performance der Hardware gesetzt. Hier wird die Leistungssteigerung des Systems durch das Beifügen zusätzlicher Server bzw. Computer realisiert. Wie gut diese Art der Skalierung letztendlich funktioniert, hängt in erster Linie von der eingesetzten Software ab, denn nicht jede Anwendung lässt sich gleich gut parallelisieren. Konkret bedeutet das, dass eine horizontale Skalierung dann vorliegt, wenn weitere Server- oder Rechner-Knoten hinzukommen, damit der steigende Workload mit gleichbleibender Leistung verarbeitet werden kann.

In einem Cloudsystem verteilen sich dann die anstehenden Aufgaben auf mehrere Rechner-Instanzen. In der Praxis wird das dadurch gelöst, dass ein Server als Verteiler für die Workloads (Load Balancing) in dem jeweiligen Server-Cluster eingesetzt wird. Der Einsatz eines Load Balancers ist immer dann nötig, wenn viele einzelne Ressourcen als eine Einheit zusammen im Rahmen einer horizontalen Skalierung fungieren müssen. Aus diesem Grund ist der sogenannte „Skalierbarkeitsfaktor“, also das Verhältnis zwischen der gewonnenen Leistung und den eingesetzten Ressourcen, hier prinzipiell niedriger als bei vertikaler Skalierbarkeit. Hinzu kommt noch, dass die horizontale Skalierbarkeit in der Regel kostengünstiger als vergleichbare Skalierungsmaßnahmen ist. Hinsichtlich des Overheads sind vertikale Skalierungsmaßnehmen jedoch viel effizienter als es bei der horizontalen Skalierbarkeit der Falls ist.

Skalierungsmaßnehmen und das Schichtenmodell

Um ein IT-System möglichst skalierbar zu gestalten, hat es sich im Laufe der Jahre bewährt, sämtliche Skalierungsmaßnehmen als Schichtenmodell zu implementieren. Im Rahmen dieses Ansatzes werden die einzelnen Schichten logisch voneinander getrennt, sodass jede einzelne Schicht für sich selbst skaliert werden kann. Eine äußerst beliebte Architektur im Bereich der Webentwicklung ist die sogenannte „3-Schichten-Architektur“. Um dabei eine möglichst hohe Skalierbarkeit zu erzielen, muss die Architektur so umgesetzt sein, dass sich jede dieser drei Schichten möglichst flexibel und unkompliziert skalieren lässt. Eine 3-Schichten-Architektur setzt sich aus folgenden Komponenten zusammen:

– Präsentationsschicht: Diese Schicht wird auch als Front-End bezeichnet und ist für die Darstellung der Daten zuständig.

– Logikschicht: Diese Schicht vereint die gesamte Anwendungslogik.

– Datenbankschicht: Diese Schicht enthält die Datenbank, wie beispielsweise MySQL oder PostgreSQL, und ist für die Speicherung und die Bereitstellung von Daten zuständig.

Während sich die Präsentationsschicht relativ einfach horizontal skalieren lässt, ist im Rahmen der Logikschicht eine Anpassung des Codes nötig. Dabei sollte beachtet werden, dass eine möglichst große Menge der Code-Logik parallelisiert werden muss, um eine effiziente Skalierung zu erhalten. Am kompliziertesten ist die Skalierung der Datenbankschicht, weshalb diese Optimierungen komplexes Expertenwissen benötigen.

Bei Intrinsic Security handelt es sich um einen neu entwickelten, hoch effektiven Ansatz für den Schutz von Unternehmen durch VMware. Die IT-Sicherheit und auch die Eigensicherung werden auf ein neues Niveau gehoben. Das sehr durchdachte Konzept sorgt für einen effizient-optimierten Schutz.

Was ist Intrinsic Security?

Es handelt sich bei „Intrinsic Security“ um kein Produkt, Bundle oder Tool. Intrinsic Security ist vielmehr ein von VMware Global Inc neu entwickelter Ansatz für den Schutz von Unternehmen. Es handelt sich im Grunde um eine Strategie, bei der die Infrastruktur und ihre Kontrollpunkte in Echtzeit genutzt werden können. Auf diese Weise ist es möglich, sämtliche Geräte, Clouds und Anwendungen zu schützen. Dieser Ansatz kann die interne IT-Sicherheit auf ein neues Level heben.

Durch eine optimierte Zusammenarbeit können Sie IT- und Sicherheits-Teams dabei unterstützen, Risiken zu minimieren und Gefahren rechtzeitig zu eliminieren.

Warum ist dieser neue Ansatz sinnvoll?

Die Digitalisierung schreitet immer weiter voran und Datenströme bestimmen zunehmend unseren Alltag. Um während der Pandemie die Geschäftskontinuität aufrecht erhalten zu können, müssen viele Unternehmen auf eine Cloud setzen. Immer mehr Menschen arbeiten (teilweise) von zu Hause aus, was durch die Anwendung VMware Horizon ermöglicht wird. Bei VMware Horizon handelt es sich um eine Implementierung, bei der die Funktionen eines Arbeitsrechners als „Remote Desktop“ über eine Netzwerkverbindung bereitgestellt wird. Diese Vorgänge erleichtern gerade in der Pandemie das Arbeitsleben, doch sie bergen auch große Risiken in Bezug auf die Eigensicherung. Insbesondere Public Clouds stellen oft ein immenses Risiko mit verminderten Eigensicherung dar. Die Firewall als Schutzmechanismus ist in diesen Fällen oft nicht mehr ausreichend.

Die IT-Sicherheit ist ein Bestandteil der Informationssicherheit (IS). Bei der IS steht der Schutz von Informationen und Daten mit Bezug zu personenbezogenen Daten – egal ob analog oder digital – im Vordergrund. Die IT-Sicherheit umfasst dabei die elektronischen Daten. Die zunehmenden Schwachstellen und die immer ausgefeilteren Hacker-Angriffe bzw. Cyberattacken ergeben eine sehr gefährliche Kombination für Unternehmen. Der Übergang zur Cloud muss also mit effizienten Sicherheitslösungen einhergehen. Diese Lösungen müssen sowohl leistungsstark und einfach bedienbar sein.

Welche Vorteile bietet der Intrinsic Securtiy Ansatz und inwiefern wird das Risiko verringert?

Vereinfacht gesagt zeichnet sich der Ansatz durch drei Merkmale aus:

– der Ansatz ist integriert und die Kontrollpunkte sind in der Infrastruktur eingebettet

– Teams und Tools arbeiten einheitlich zusammen, so dass Probleme schneller gelöst werden

– der Ansatz nutzt Kontrollpunkte, um die benötigten Informationen zu erhalten

Auf diese Weise können die IT-Sicherheit und auch die Eigensicherung effizienter gewährleistet werden, da das gesamte Sicherheitskonzept vereinfacht ist. Infolge der integrierten Sicherheit liegt eine verringerte Anzahl notwendiger Produkte bzw. Agents vor. Somit wird die Komplexität auf ein Minimum reduziert, aus diesem Grund sinkt das Risiko für fehlerhafte Konfigurationen oder auftretende Schwachstellen. Die Tools bzw. Teams für die IT Sicherheit sind einheitlich, was für eine bessere Transparenz sorgt. Infolge der eingerichteten Kontrollpunkte ist es prinzipiell einfacher, Bedrohungen zu erkennen und zu bekämpfen.

Bei welchen Problemstellungen gewährt Intrinsic Security Unterstützung?

Intrinsic Security sorgt für eine erhöhte IT-Sicherheit und Eigensicherung im Netzwerk, bei Arbeitsabläufen, an Endpunkten, in der Arbeitsumgebung und vor allem auch in der (Public) Cloud. Auf diese Weise können Unternehmen auch Anwendungen und Anwender vor möglichen Gefahren schützen.

Wer ist VMware Global Inc?

Bei der VMware Inc handelt es sich um ein börsennotiertes Unternehmen aus den USA. Der Hauptsitz liegt in Palo Alto, Kalifornien. In erster Linie liegt die Spezialisierung auf Technologie und Software-Lösungen in den Bereichen Security, Netzwerk und Cloud. VMware entwickelt auf Unternehmen zugeschnittene Softwares und treibt so die Digitalisierung maßgeblich mit voran.

Fazit

Die Digitalisierung ist mit zahlreichen Chancen verbunden. Da immer mehr Menschen (auch pandemiebedingt) von zu Hause aus arbeiten und auf Clouds zugreifen, in dies auch mit einem Risiko verbunden. Oftmals lassen sich die Gefahren in Bezug auf Hackerangriffe und Datendiebstahl kaum abschätzen. Ein Business Continuity Management zur Eigensicherung ist deswegen immens wichtig. Es handelt sich hierbei um Maßnahmen/Strategien, um ernsthafte Schäden oder gravierende Verluste zu vermeiden.

Bei Intrinsic Security handelt es sich um einen von VMware neu entwickelten Ansatz zum Schutz von Unternehmen. Die wichtigsten Stichpunkte, um diesen Ansatz zu beschreiben lauten integriert, einheitlich, kontextorientiert und Kontrollpunkte. Der in die Infrastruktur integrierte Schutz sorgt für ein immens verringertes Risiko in Bezug auf IT-Sicherheit und Eigensicherung. Das Konzept gewährleistet einen äußerst effizienten Schutz des digitalen Arbeitsplatzes. Aufgrund der Einheitlichkeit ist das Risiko für Fehlkonfiguration nur äußerst gering und Ihre Mitarbeiter können ergebnisorientiert arbeiten, ohne sich zusätzlich mit der Eigensicherung befassen zu müssen.

 

Containering und containerbasierte Virtualisierung waren in den letzten Jahren der „letzte Schrei“ in der Software-Entwicklung. Dabei handelt es sich um einen Ansatz der Virtualisierung, bei dem die gesamte Virtualisierungsebene als eine Anwendung innerhalb des Betriebssystems realisiert wird. Im Gegensatz zu der klassischen Virtualisierung wird hier auf den Einsatz eines sogenannten „Hypervisors“ verzichtet. Die containerisierten Anwendungen haben einen direkten Zugriff auf den Kernel des Host-Betriebssystems und kommen aufgrund ihrer hohen Flexibilität und Portabilität in erster Linie in modernen Cloud-Umgebungen zum Einsatz.

Containering im Detail

Seitdem die offene Software Docker im Jahr 2013 der breiten Öffentlichkeit vorgestellt wurde, zieht sie das Interesse von Entwicklern und IT-Architekten auf sich. Das innovative Projekt versprach damals die IT-Landschaft genauso zu revolutionieren, wie es die Virtualisierung einige Jahre zuvor gemacht hat. In den vergangenen Jahren hat sich die Containering-Technologie flächendeckend durchsetzen können. Dennoch bleiben jedoch viel Fragen unbeantwortet: Stellen sie die bessere Alternative zu den traditionellen Virtualisierungstechniken dar oder sind sie nur eine weitere Möglichkeit, um Anwendungen in der Cloud zu virtualisieren und bereitzustellen? Dass sich sowohl IBM, als auch Red Hat und Microsoft an der Weiterentwicklung von Docker aktiv beteiligen, lässt allerdings vermuten, dass es sich hierbei um eine zukunftssichere Technologie handelt.

Was ist also Containering und wo kommt es zum Einsatz? Containering ist in erster Linie dafür vorgesehen, um Software ohne größere Anpassungen auf unterschiedlichen Plattformen verlässlich laufen zu lassen. So kommt es beispielsweise immer wieder vor, dass Entwickler den geschriebenen Code von dem eigenen Computer in die Testumgebung schicken müssen. Von dort wird er nach erfolgreichen Tests in die Produktion verlagert.

Da der Code im Rahmen eines Containers verschickt wird, wird keine umfangreiche Konfiguration und Verwaltung seitens des Empfängers benötigt. Obwohl sich all dies praktisch anhört, gibt es auch einige Nachteile. Falls die Entwicklungs- und Betriebssystemumgebungen nicht identisch sein sollten, kann es zu Problemen kommen. Nutzt der Entwickler beispielsweise Python 3.0, die Produktion jedoch die Version 2.7, kann bei der Ausführung des Codes vieles schiefgehen. Zu ähnlichen Problemen kommt es, wenn beispielsweise zum Programmieren Red Hat Linux und in der Produktion Suse Linux zum Einsatz kommt.

Welche Vorteile bietet Containering?

Bei der traditionellen Virtualisierung setzt sich ein Software-Paket aus einer virtuellen Maschine (VM), einem Betriebssystem und Applikation zusammen. Ein dedizierter Server mit vier virtuellen Maschinen würde über einen Hypervisor vier separate Betriebssysteme bereitstellen müssen. Im Vergleich dazu muss auf einem Server mit vier containerisierten Anwendungen nur ein Betriebssystem bereitgestellt werde, das sich alle vier Container teilen.

Konkret bedeutet das, dass Container deutlich weniger Ressourcen verbrauchen als traditionelle virtuelle Maschinen. Aus diesem Grund lässt sich auf einem einzelnen Server eine größere Anzahl an Containern ausführen als auf einer virtuellen Maschine. Ein weiterer wesentlicher Vorteil von Containern ist, dass sie in der Lage sind, sehr schnell zu booten. Während virtuelle Server in vielen Fällen einige Minuten benötigen, um hochzufahren, stehen containerisierten Anwendungen fast sofort zur Verfügung.

Angesichts dieser enormen Vorteile, kommt selbstverständlich die Frage auf, warum Containering die traditionellen Virtualisierungstechniken nicht bereits komplett abgelöst hat. Der Hauptgrund hierfür ist die Sicherheit, da Container keine so hohe Sicherheit bieten wie traditionelle VMs. Eine potenzielle Sicherheitslücke im Betriebssystem kann Auswirkungen auf alle anderen Container haben, die auf demselben OS laufen. Container bieten nicht dasselbe Niveau an Isolation, wie man es von traditionellen Virtualisierungstechniken gewohnt ist.

Vielmehr eine Ergänzung als ein vollständiger Ersatz

Containering sollte man vielmehr als Ergänzung zu den traditionellen VMs betrachten als einen vollständigen Ersatz. So können beispielsweise Container in leichtgewichtigen virtuellen Maschinen ausgeführt werden, wodurch eine weitere Isolationsschicht eingeführt wird und so die Sicherheit maßgeblich erhöht wird. Darüber hinaus muss weiterhin alle Hardware (Server, Netzwerke, Storage) mittels Virtualisierung verwaltet werden, sodass Containering daran nichts ändert. Container lassen sich also gar nicht als ein vollwertiger Ersatz für VMs nutzen, denn sie bauen auf der Virtualisierung auf.

Darüber hinaus gibt es mittlerweile eine Vielzahl von Linux-Distributionen, die sich auf Containering spezialisiert haben. Hierzu gehören neben CoreOS und Snappy Ubuntu auch Red Hats Project Atomic sowie Photon von VMware. Auch Microsoft investiert viel in Containerisierungstechnologien, sodass Docker auf Windows-Server-Plattformen und im Rahmen der Azure-Cloud genutzt werden kann.

Docker und weitere containerbasierte Technologien

Docker ist das bekannteste Tool aus dem Segment der Containerisierungstechnologien, welches die Erstellung und den Betrieb von Containern ermöglicht. Beim Containering handelt es sich jedoch nicht um eine neue Technologie. Im Rahmen verschiedener Linux-Distributionen werden Container in Form von LXC bereits seit fast zwei Jahrzehnten genutzt. Darüber hinaus bieten Oracle, Sun sowie Solaris und FreeBSD ähnliche Tools für die Erstellung und den Betrieb von Containern.

Docker hat im Laufe der Jahre einige prominente Konkurrenz bekommen. Eine sehr gute Alternative ist das Command-Line-Tool „rkt“ von CoreOS. Der wesentliche Vorteil dieses Tools ist, dass es sowohl mit eigenen als auch mit Docker-Containern problemlos umgehen kann. Rkt wendet sich jedoch grundsätzlich an kleinere Unternehmen, während Docker in erster Linie für den Einsatz in großen Cloud-Umgebungen ausgerichtet ist.

Bei Docker handelt es sich um eine Softwareplattform, mit der Entwickler schnell und einfach Anwendungen erstellen, testen und Nutzern bereitstellen können. Mit Docker können Entwickler Software in standardisierte Einheiten, die sogenannten Container, verpacken. Diese Container beinhalten alles, was zum Ausführen der verpackten Software benötigt wird, einschließlich aller Bibliotheken, der benötigten Laufzeitumgebung, Systemtools und Code. Mittels Docker lassen sich Anwendungen schnell und ohne größeren Aufwand in jeder Umgebung bereitstellen und nach Bedarf skalieren.

Docker im Detail

Bei Docker handelt es sich um eine innovative Softwarelösung, welche die Virtualisierung von containerisierten Anwendungen ermöglicht. Anwendungen können mit all ihren Abhängigkeiten in ein Image verpackt werden. Durch den Einsatz einer speziellen Engine, kann die so verpackte Software in einem Docker-Container plattformunabhängig ausgeführt werden. Die dockerisierte Anwendung ist bis auf einige wenige Schnittstellen zum Betriebssystem vollständig isoliert. Aus einem einzelnen Image lassen sich beliebig viele Container erstellen und parallel betrieben. Aus diesem Grund eignet sich Docker besonders gut, um cloudnative Anwendungen und Dienste bereitzustellen.

Die Container-Virtualisierungstechnologie ist keine neue Technik und wird im Linux-/Unix-Bereich schon seit vielen Jahren äußerst erfolgreich eingesetzt. Neben Docker gibt es auch eine Vielzahl ähnlicher Lösungen, die auf eine ähnliche Weise versuchen, die bestehenden Skalierungs- und Virtualisierungs-Probleme zu lösen. Docker ist jedoch der unangefochtene Spitzenreiter, um die Arbeit mit Containern möglichst unkompliziert und intuitiv zu gestalten.

Container im Vergleich zu virtuellen Maschinen

Im Vergleich zu Containern sind Virtuelle Maschinen (VMs) wahre Schwergewichte. Virtuelle Maschinen enthalten neben der simulierten Hardware und dem Hypervisor auch eine Kopie des Betriebssystems inklusive aller installierten Programme und Abhängigkeiten. Da sie eine große Menge an Informationen beinhalten, verbrauchen sie dementsprechend viel an Ressourcen und Speicherplatz. Nichtsdestotrotz haben virtuelle Maschinen nach wie vor einige Vorteile gegenüber Docker und Co. Insbesondere in Sachen Isolation bieten VMs eine viel höhere Sicherheit in den unteren Isolierungsschichten.

Auch im Fall, wenn auf einem Server mehrere virtuelle Maschinen mit jeweils unterschiedlichen Hardware-Konfigurationen oder Betriebssystemen bereitgestellt werden sollen, kommen virtuelle Server zum Einsatz. Im Vergleich hierzu besitzt ein Docker-Container kein eigenes OS und auch keine simulierte Hardware. Containerisierte Anwendungen greifen auf das System des darunterliegenden Hosts zu, sodass sich alle Container die Ressourcen des Betriebssystems und der Hardware teilen.

 

Ein Container ist also nur mit den nötigsten Informationen ausgestattet, die von den installierten Anwendungen tatsächlich auch benötigt werden. Neben der auszuführenden Anwendung selbst sind die Container in vielen Fällen auch mit spezifischen Frameworks und Bibliotheken versehen, auf denen die jeweilige Anwendung aufbaut. Konkret bedeutet das, dass ein Container so viel Informationen enthält, wie es nötigt ist.

Während eine traditionelle VM Hardware und Betriebssystem simuliert, teilt eine containerisierte Anwendung alle Ressourcen via Docker Engine mit dem darunterliegenden Host. Ein Container ist außerdem in der Lage, bei Bedarf auf externe Bibliotheken zuzugreifen. So lassen sich beispielsweise Abhängigkeiten auslagern, die von mehreren Docker-Containern benötigt werden, wodurch die Größe der Container nochmals reduziert wird.

Docker: Hochskalierbar und performant

Die Docker-Engine stellt das Herzstück der Containerisierung bei Docker dar. Die Software fungiert als eine Art Schnittstelle zwischen den Ressourcen des Host-Systems und den darauf ausgeführten Containern. Container können auf jedem System ausgeführt werden, auf dem die Docker-Engine installiert ist. Die Containertechnologie wurde ursprünglich für den Einsatz auf Linux-Systemen entwickelt. Da Microsoft in den letzten Jahren kräftig in Docker investiert und sich auch intensiv an der Weiterentwicklung beteiligt hat, kann die Containertechnologie mittlerweile auch auf allen modernen Windows-Systemen genutzt werden.

Im Vergleich zu VMs sind die containerisierten Images sehr schlank. In modernen Cloudumgebungen bringt das eine Vielzahl unterschiedlicher Vorteile mit sich. So können beispielsweise auf einem virtuellen Server deutlich mehr Container-Instanzen betrieben werden. Außerdem starten die Container viel schneller als virtuelle Maschinen, was eine viel besserer Flexibilität und Skalierung mit sich bringt.

Docker kann relativ einfach in bestehende DevOps-Systeme wie beispielsweise Puppet oder Ansible eingebunden werden, was die Verwaltung und Bereitstellung von Containern zusätzlich vereinfacht. Ein bedeutender Vorteil von Docker spiegelt sich in der Tatsache wider, dass sich die Container per Skript steuern lassen. Ein Docker-File ist mit allen notwendigen Informationen versehen, um einen Container selbständig starten zu können. Aus diesem Grund eignet sich die Container-Plattform ideal, um in der Cloud betrieben zu werden und automatisch zu skalieren. Außerdem lassen sich die Container über eine zentrale Repository schnell und unkompliziert verwalten.

Großer Einfluss in der Softwareentwicklung

In der modernen Softwareentwicklung bieten isolierte Container eine Vielzahl unterschiedlicher Vorteile. Softwareprojekte können so beispielsweise unabhängig voneinander entwickelt werden, wodurch die Arbeit an großen Projekten wesentlich erleichtert wird. Durch den Einsatz von Containern geht das Packen und das Ausliefern von Anwendungen schnell und einfach vonstatten, da sie prinzipiell in jeder Umgebung mit Docker Engine sofort einsatzbereit sind. Dies ist insbesondere für die beiden Entwicklungsansätze Continuous Deployment und Continuous Integration interessant, da jeder Softwareentwickler selbständig an seinem isolierten Teil des Projekts arbeiten kann. Hinzu kommt noch, dass sich über Docker Container ein Projekt schnell und unkompliziert mit Kollegen teilen und unabhängig vom jeweiligen Client verwenden lässt. Da ein Container in einer isolierten Umgebung ausgeführt wird, lassen sich verschiedene Umgebungen ohne größeren Aufwand simulieren.

Der Begriff „Hybrid Cloud“ bezieht sich auf die Kombination mindestens zweier Teile. Im Cloud Computing handelt es sich dabei um eine Public und eine Private Cloud. Diese Teile werden zu einer Hybrid Cloud verbunden.

Was ist Cloud Computing?

Der Begriff bedeutet die Bereitstellung von IT-Ressourcen, die über das Internet oder seine Protokolle nutzbar sind. Zu diesen Ressourcen gehören Hardware und APIs bis zu Anwenderprogrammen, die online verfügbar sind. Wer diese Ressourcen besitzt und wo sie sich befinden, verschwimmt in der Unterscheidung immer mehr.

Was ist eine Public Cloud?

In einer Public Cloud werden Ressourcen öffentlich verfügbar gemacht. Ein einfaches Beispiel sind Angebote wie Gmail oder andere Anbieter von E-Mail Adressen und deren Hosting. Ob dafür eine Bezahlung verlangt wird, spielt für die Einstufung als Cloud Computing keine Rolle. Es sollte Ihnen aber klar sein, dass Sie im Fall von Gratisangeboten mit Ihren Daten bezahlen.

Der Vorteil von Public Clouds ist der, dass Ressourcen nur dann bezahlt werden müssen, wenn sie tatsächlich gebraucht werden. Dann aber sind diese Ressourcen in praktisch unbegrenztem Umfang verfügbar. Dazu kommt die Möglichkeit für Experimente, die in der Cloud möglich sind. Die Anschaffung und Inbetriebnahme eigener Geräte ist dafür nicht erforderlich.

Was ist ein Private Cloud?

Dabei handelt es sich um eine Cloud, die nur für Sie als einzigem Kunden zugänglich ist. Die Hardware kann bei Ihnen stehen oder auch in einem externen Rechenzentrum. Der wesentliche Punkt ist, dass nur Sie Zugriff auf das System haben.

Der Vorteil dieser Version einer Cloud ist die maximale Sicherheit. Nachdem der Zugang am stärksten eingeschränkt ist, lassen sich Anforderungen wie Vertraulichkeit und Konformität mit gesetzlichen Vorgaben am besten umsetzen. Außerdem können Sie ein solches System genau nach Ihren Vorstellungen konfigurieren.

Die Nachteile sind im Wesentlichen identisch mit denen eines Verzichts auf Cloud Computing. Als Unterschied zum völligen Verzicht bleibt bestehen, dass Sie eine Private Cloud von einem externen Anbieter erwerben und so gewisse Leistungen auslagern können.

Die Zuverlässigkeit ist aber weniger hoch, weil Ihre Daten nur auf den Rechnern Ihrer privaten Cloud liegen. Eine private Cloud ist auch nicht im selben Ausmaß skalierbar wie eine Public Cloud. Das betrifft sowohl die Auslastung der privaten Cloud als auch die Möglichkeit zu einer Erweiterung bei Belastungsspitzen.

Wie verbinden sich Private und Public zu einer Hybrid Cloud?

Wie die Bezeichnung nahelegt, werden in einer Hybrid Cloud eine private und eine öffentliche Lösung zusammen genutzt. Der springende Punkt ist, dass diese beiden Teile durch eine eigene Software verbunden sind und so miteinander kommunizieren können. Es ist klar, dass sich dabei ganz von selbst Probleme mit der Kompatibilität ergeben. Deren Bewältigung gehört zu den Hauptproblemen mit Hybrid Clouds.

Wie sehen die technische Umsetzung und Benutzung aus?

Im privaten Teil, also in der privaten Cloud werden die vertraulichen Daten gespeichert. Die restlichen Daten können in der Public Cloud gehalten und verarbeitet werden. Dort sind auch die Ressourcen verfügbar, auf die im Fall erhöhten Bedarfs zurückgegriffen werden kann.

Im Gegensatz zu einer Hybrid Cloud werden in einer Multi-Cloud-Lösung mehrere Public Clouds unabhängig nebeneinander genutzt. Die Hybrid Cloud erfordert einiges mehr an Organisation und Aufwand, weil beispielsweise jeder Mitarbeiter zu genau den Daten Zugang erhalten muss, die er für seine Arbeit braucht. Dazu sind entsprechende Autorisierungslösungen notwendig.

Wie setze ich eine Hybrid Cloud um?

Eine solche Lösung wird gerade deshalb gewählt, weil sie sich individuell auf die Anforderungen des Kunden anpassen lässt. Eine Möglichkeit ist deshalb eine Maßanfertigung durch entsprechende Entwickler.

Es gibt aber auch Anbieter für Komplettlösungen für Hybrid Clouds. Dazu gehören AWS Outposts, Microsoft mit Azure Stack und Google Anthos.

Anwendungen

Eine typische Situation ist die Verarbeitung von Daten mit unterschiedlichen Sicherheitsstandards. Für diese Notwendigkeit ist die unterschiedliche Gesetzeslage in den USA und in Europa ein Beispiel. Vielleicht bietet ein amerikanischer Anbieter wie Google eine Public Cloud, die Sie gerne verwenden möchten. Diese unterliegt aber den Gesetzen der USA und insbesondere dem Patriot Act, der den Betreiber zur Herausgabe Ihrer Daten an US-Behörden verpflichtet. Eine mögliche Lösung ist die Verwendung einer Hybrid Cloud mit dem privaten Bereich in Europa.

Eine andere Situation ist ein Projekt zur Verlagerung von IT-Leistungen in eine Public Cloud. Oft müssen einzelne Anwendungen aus den verschiedensten Gründen von diesem Prozess ausgeschlossen werden. Für diese kann der private Teil einer Hybrid Cloud eine Lösung sein.

Eine weitere Anwendung ist eine Datenverarbeitung mit saisonaler und vorhersehbarer Spitze. Auch wenn die Daten nicht vertraulich sind, kann es Sinn machen, die reguläre Verarbeitung im Haus zu halten und nur die Spitzen mit einer Public Cloud abzudecken. Eine tragfähige Verbindung zwischen diesen zwei Teilen kann dann mit einer Hybrid Cloud sichergestellt werden.

Schließlich ist das Konzept der Hybrid Cloud auch die Grundlage für das Edge Computing. Bestimmte Daten müssen aus verschiedenen Gründen geografisch näher am Nutzer verarbeitet werden. Die nutzernahen Teile können dann den privaten Teil einer Hybrid Cloud bilden.