IT-Containerisierung: Raum für Innovation in der Entwicklung
Die Containerisierung der IT ist seit einigen Jahren auf dem Vormarsch. Und das aus gutem Grund: Sie verspricht eine schnellere, effizientere und ressourcenschonendere IT-Entwicklung.
Möchten Sie mehr über die Containerisierung erfahren? Definition, Vorteile, Anwendungsbeispiele und Lösungen: In diesem Artikel finden Sie alle Antworten.
IT-Containerisierung: Definition
Was ist Containerisierung in der IT?
Die Containerisierung in der IT ermöglicht es, alle Dienste, Skripte, APIs und Bibliotheken, die eine Anwendung benötigt, in ein Paket zu packen. Das Ziel: ihre Ausführung auf jedem kompatiblen Kernel zu ermöglichen.
- ✅ Sie vermeidet es, sich über Interaktionen oder Inkompatibilitäten mit Containern Gedanken zu machen, die bereits auf diesem Rechner vorhanden sind oder in Zukunft vorhanden sein werden.
- ✅ Sie belegt nicht so viele Ressourcen wie eine virtuelle Maschine (oder Virtual Machine, VM), die ihr eigenes Betriebssystem mit sich führt und beim Start Ressourcen blockiert.
Warum werden Container verwendet?
Wer sollte starten?
Die Containerisierung ist ein enormer technologischer Beschleuniger, der zudem die richtige Nutzung von Ressourcen fördert. Sie werden daher in den folgenden Fällen nicht an der Containerisierung sparen:
- Sie verwalten eine große Anzahl von weitgehend unabhängigen, heterogenen Anwendungen.
- Sie wollen Ihre Anwendungen schneller bereitstellen, um auf das sich ändernde Verhalten Ihrer Zielgruppen zu reagieren und Innovationen zu fördern.
- Sie suchen nach Möglichkeiten, die Elastizität Ihrer Architektur zu verbessern, um sie zu beherrschen oder ein starkes Wachstum vorzubereiten.
Vor- und Nachteile der IT-Containerisierung
Vorteile
- Beschleunigung der Entwicklung: Der Entwickler arbeitet in einem auf das Nötigste beschränkten Rahmen, was ihm insbesondere die Kodierung von Interaktionstests erspart. Dies fördert auch die Schaffung von Sandboxen und damit einen schnelleren Kompetenzaufbau und eine schnellere Innovationsfähigkeit.
- Übertragbarkeit und damit schnellerer Einsatz: Der erstellte Container ist konsistent und leidet nicht darunter, wenn er auf einer anderen Umgebung ausgeführt wird. Gleichzeitig ist er weniger leistungshungrig als eine VM und kann daher leichter verschoben, kopiert und neu gestartet werden.
- Geringere Auswirkungen auf die Serverleistung, da ein Container ungenutzte Ressourcen (Arbeitsspeicher, Speicher) schnell freigeben kann.
Nachteile
- Ein Linux-Container kann nicht auf einer Windows-Maschine (und umgekehrt) verwendet werden, es sei denn, es gibt eine Zwischenschicht zur Virtualisierung/Emulation des entsprechenden Betriebssystems.
- In Fällen, in denen eine containerisierte Anwendung Schwachstellen aufwies, konnte der Kernel der Maschine erreicht werden (mehrere Fälle in der Cloud) und alle Container, die von diesem (physischen oder virtuellen) Server getragen wurden, gefährdet werden.
Containerisierung und Virtualisierung: Werfen Sie Ihre VMs nicht weg!
Es ist zu beachten, dass die Containerisierung die Maschinenvirtualisierung nicht ausschließt: Beide Methoden können je nach Bedarf gemischt werden.
Eine virtuelle Maschine kann Container aufnehmen, wenn dies die Verwaltung und die Sicherheit Ihrer Organisation nach Umgebungen oder Domänen erleichtert.
Welche Lösungen zur Containerisierung gibt es?
Docker... und andere Plattformen.
Die Containerisierung dient also der Agilität, was durch die schnelle und breite Einführung von Lösungen wie Docker des französischen Unternehmens dotCloud, die auf Open-Source-Technologien basieren, weiter gefördert wurde.
💡 IT-Abteilungen, aber auch die Cloud-Plattformen von Oracle oder Microsoft haben sie übernommen, und die Docker Hub Community stellt eine große Anzahl von Sandbox-Containern zur Verfügung, die Innovation katalysieren.
Es gibt natürlich auch andere Lösungen, die die Containerisierung erleichtern, sowohl unter Linux als auch unter Windows, FreeBSD oder Solaris:
- LXC (die historische Basis für die Containerisierung unter Linux),
- Rocket (rkt) von CoreOs,
- Windows Hyper-V Containers (die leichtgewichtigen VMs ähneln),
- Docker für Windows,
- Oracle Zones,
- FreeBSD Jails, usw.
Eine zweite Stufe bei der Beschleunigung der Einführung von Containern wurde erreicht, als Google 2015 seine Lösung Kubernetes (K8s), den weitgehend marktbeherrschenden Orchestrator, öffnete.
Aber was ist ein Container-Orchestrator?
Die Agilität und Elastizität, die durch den massiven Einsatz von Containern versprochen wird, ist nur möglich, wenn die Container :
- gut verwaltet werden,
- sicher sind,
- einfach einzusetzen oder von einem Rechner auf einen anderen zu verschieben sind,
- und dabei die Ressourcen der Infrastruktur nach Bedarf modulieren.
Außerdem kann eine Container-Anwendung andere Dienste in Anspruch nehmen, die ihrerseits von anderen Containern unterstützt werden; sie ist daher darauf angewiesen, dass alle diese Dienste rechtzeitig verfügbar sind.
👉 Dies ist die Funktion des Orchestrators, der sich um die Komponenten Ihres Clusters kümmern wird, um die Bereitstellung und Verfügbarkeit Ihrer Container zur Abdeckung der Bedürfnisse Ihrer Anwendungen zu gewährleisten.
Auch hier gibt es viele Konkurrenten von K8s (und manchmal koexistieren sie auch):
- Docker Straw,
- Amazon ECS,
- Rancher,
- Microsoft AKS, das auf... Kubernetes basiert!
Diese Kombination aus Container/Orchestrator und eventuell VM verspricht also, die Herausforderungen von Unternehmen zu meistern, die schnell wachsen oder auf der Suche nach Elastizität, Agilität und Innovation sind.
[Beispiel] Einige konkrete Anwendungsfälle.
- Auf der DockerCon 2017 stellte Paypal seinen Weg zur Transformation seiner Anwendungen vor, um sie zu rationalisieren und ihre Verfügbarkeit zu verbessern. So sind in zwei Jahren Arbeit 150.000 Container entstanden, um ihre Kernanwendungen zum Nutzen ihrer Kunden zu modernisieren.
- In jüngerer Zeit, im Jahr 2019, hat das CRM-Tool Pipedrive die Wirksamkeit der Containerisierung demonstriert, um seine Entwicklungen zu beschleunigen und die Elastizität seiner Infrastruktur zu verbessern.
- Babylon wiederum implementierte Containerisierung, um die Übertragbarkeit seiner KI-Engines im Gesundheitsbereich zu fördern, vor allem aber, um den gierigsten Nutzern die Verwendung von Cloud-Ressourcen zu ermöglichen, und absorbierte so ein Wachstum von über 1.500 % in drei Jahren.
- Blablacar demonstrierte, wie Containerisierung in Verbindung mit einer guten Orchestrierung den Lebenszyklus einer Anwendung um mehrere Tage verkürzen können, auch hier vor dem Hintergrund eines exponentiellen Wachstums. Darüber hinaus wird ein Erfahrungsbericht über die Vorteile der Elastizität der Kombination aus Container und Cloud in einem Krisenkontext wie der Gesundheitskrise, die die Welt des Transports mit voller Wucht erlebt hat, mit Spannung erwartet.
- Docker hob die Vorschläge von Netflix hervor, die Nutzung dieser Technologien durch Lösungen zur Sicherung der Container, zur Rationalisierung ihrer Nutzung und zur Gewährleistung einer besseren Interoperabilität zu unterstützen.
Schlussfolgerung
Als logische Folge der von den VMs begonnenen Bemühungen zur Rationalisierung der Ressourcen bieten die Container darüber hinaus einen starken Mehrwert für die Organisation und die Innovation in der IT-Entwicklung.
Wie jede größere technologische Entwicklung kennt auch die Containerisierung ihren Anteil an "Bad Buzz", der für Unternehmen, die an der Spitze der Innovation stehen, eine Herausforderung darstellt, der sie sich mit hoher Geschwindigkeit stellen müssen.