Container sind kein Hype oder ein Spielzeug für Nerds, sondern schon längere Zeit ein ernstzunehmendes Thema für reale Workloads und ein Kernelement bei der Automatisierung. So gesehen sind Container für vieles die Zukunft in der IT. Der Betrieb von virtuellen Maschinen (VM) auf einem klassischen Hypervisor ist doch schon längst , wenn auch immer noch eine sehr wichtige, Legacy IT.
Die klassische Virtualisierung wird auch noch weiterhin einen hohen Stellenwert in den Datacentern haben. Dabei spielt es keine Rolle, ob in der Cloud, der Colocation oder On Premises, trotzdem ist es Stand heute eine Legacy IT Technologie, die selbst bei mittelständische Unternehmen schon seit mehr als 15 Jahren im Einsatz ist. Dies wird nicht zuletzt auch daran deutlich, dass die Innovationen bei den Hypervisoren in den letzten Jahren überschaubar geworden sind. Die Technologie ist ausgereift und zuverlässig, aber das sind Container auch. Die Basis für den Betrieb von Containern gibt es ebenfalls schon etwas länger und wurde in 2013 mit Docker populär. Docker hat es geschafft, das Benutzen von Containern so zu verpacken, dass dies für eine breitere Gruppe von Anwendern möglich wurde. Aus dem anfänglichen Hype wurde eine stetige Weiterentwicklung die in eine Zukunftstechnologie mündete und an diesem Punkt sind wir jetzt. Container schicken sich nicht an, die klassischen virtuellen Maschinen oder gar die Technologie der Hypervisor beerben oder gänzlich ablösen zu wollen, aber viele Workloads die bis jetzt als einzelne VM betrieben wurden, werden durch die Container Technologie abgelöst.
Denkt man an die Anfänge der Virtualisierung zurück, ging es um Effizienz und bessere Administrierbarkeit, einfacheres Backup und der Unabhängigkeit von der Hardware, die durch den Hypervisor abstrahiert wird. Die Virtualisierung war für einen großen Innovationsschub und für eine effiziente Nutzung der physikalischen Ressourcen verantwortlich und hat ein großes Ökosystem um sich herum geschaffen. So langsam zeigen sich aber auch die Grenzen dieser Technologie und dabei sind Effizienz, Skalierbarkeit, Portabilität und Automation ist nur einige davon. Selbst kleinere Unternehmen betrieben eine Vielzahl von VM’s in ihren Datacentern. Es ist ja auch grundsätzlich richtig verschiedene Workloads voneinander zu trennen. Damit ist man aber jetzt direkt beim Thema Effizienz, denn mit immer mehr VM’s die jeweils ein eigenes vollwertiges Betriebssystem benötigen, steigt auch der Overhead im Verhältnis zum Workload und den Daten. Hat man nur VM’s ist dieser Weg alternativlos um die Workloads mit ihren verschiedenen Anforderungen zu trennen. Ein Beispiel hierfür sind mehrer PHP Versionen die die Entwicklung parallel benötigt.
Genau hier setzt die Technologie der Container an, sie ist effizient, skalierbar, portabel, flexibel, einfach und lässt sich zudem sehr gut automatisieren. Container virtualisieren nicht die Hardware, wie beim Hypervisor mit seinem VM’s, sondern virtualisieren auf der Ebene des Betriebssystems. Das macht sie schlanker, lässt sie schneller starten und auch nur einen Bruchteil der Ressourcen verbrauchen. Das wird u.a. auch mit dem Multi-Layer Dateisystemen erreicht, die die Technologie der Container mitbringt und die Wiederverwendbarkeit von Images in verschiedenen Containern. Damit sind Container der nächste logische Schritt in der Entwicklung der IT. Das die Technologie der Container funktioniert hat zum Beispiel Google schon längst bewiesen. Google schreibt selbst, dass bei ihnen von Gmail bis YouTube oder die Suche alles in Containern läuft. Jetzt hat nicht jedes Unternehmen eine IT wie Google und darum geht es auch gar nicht. Es zeigt aber auf jeden Fall, dass es für Container keine Grenzen gibt und diese auch für sehr große Workloads geschaffen sind. Für die allermeisten Nutzer von Containern dürften aber Themen wie die einfachere Umsetzung und das Ausrollen von neuen Anwendungen oder Projekten im Vordergrund stehen. Natürlich spielt nicht zuletzt der Umstand der immer wichtigeren Webanwendungen den Containern so zu sagen in die Hände. Bei den mobilen Geräten sind es die Apps und auf dem Desktop ist es der Browser als Schnittstelle zum Anwender, auf den Servern läuft die Webanwendung und das tut sie heute sehr oft im Container. Die omnipräsente Digitalisierung und “die” Cloud basiert mit Sicherheit nicht auf klassischen Client/Server Anwendungen der Vergangenheit und wohl eher auf modernen Applikationen.
Um es noch einmal aufzugreifen, Container haben nicht den Anspruch den Hypervisor oder VM’s obsolet zu machen, im Gegenteil, in vielen Fällen werden die Container auf einem virtuellen Host betrieben. Der Betrieb von virtuellen Container Hosts dürfte für die meisten IT Abteilungen der aktuell sinnvollste Weg zu sein, entsprechende Plattformen für die Entwickler und den Betrieb von Container bereitzustellen. Nur wenige IT Abteilungen werden den Bedarf an physikalischen Farmen für den Betrieb von Containern haben. Dies kann sich zwar in Zukunft einmal ändern, dass im Datacenter aus Gründen der Leistung oder anderer Anforderungen eine physikalische Trennung zwischen den Technologien stattfindet, um so die Workloads je nach Technologie auf der einen oder anderen Farm zu betreiben. Um aber heute einen Einstieg in die Technologie zu bekommen, bietet es sich geradezu an die vorhandenen Ressourcen des VM-Umgebung zu nutzen. Damit wird es natürlich sehr einfach Container zu verwenden, ohne dafür zusätzliche Infrastruktur anzuschaffen. Container bilden für eine Vielzahl von Anwendungsfällen den bessere und effizientere Ansatz und genau so sollte man diese Technologie auch verwenden. Vor allem auch in der Zusammenarbeit mit den Anwendungsentwicklern und ihnen so die Möglichkeit zu geben ihre Anwendungen lokal zu entwickeln und diese dann unter identischen Rahmenbedingungen im Datacenter zu betreiben. Die Verwendung von Container bedeutet aber auch ein Umdenken, nicht nur, weil Container keine VM’s sind und sie daher auch anders verwendet werden müssen, sondern auch, wie in Zukunft Anwendungen ausgerollt und entwickelt werden. Durch den Einsatz von Containern werden die Abläufe schneller, die Wege kürzer und das Deployment einfacher. Es kostet zwar etwas Zeit, sich mit dem Thema zu beschäftigen, aber diese zu Beginn investierte Zeit steht in keinem Verhältnis zu den Vorteilen und der ganz neuen Effizienz durch diese Technologie. Diese Technologie basiert auf vielen Dingen der OpenSource Community und so mancher wird sich vielleicht scheuen, hier nicht auf einen gewohnten Hersteller Support zurückgreifen zu können. Wer dies möchte und auch bei dem Betrieb von Containern auf kommerziellen Support zurückgreifen will, kann dies auch tun. Einer der Marktführer ist Redhat in diesem Bereich mit verschiedenen Plattformen für entsprechende Lösungen. Es gibt auch Lösungen von VMware & Co., Optionen stehen also auch hier zur Verfügung. Bei Fragen zum Thema Container Infrastruktur stehen wir wie gewohnt über die üblichen Kontaktwege zur Verfügung.
[Update]
VMware als auch Microsoft Azure sehen das Potential in den Containern und integrieren Red Hat OpenShift in ihre Umgebungen. Dazu gibt es einen Blog Artikel im vSphere-Blog von VMware und auf Golem zur Verbindung von Red Hat und Azure. Zu Red Hat und deren Produktportfolio und hier insbesondere zum Thema Container Lösungen wird es einen eigenen Beitrag hier im Blog geben.