28. April 2021

Vorteile von Containerisierung

container shipping containers

Grundlagen: Was sind Container?

Im Grunde kann man sich die Bedeutung auch von einem Container eines Containerschiffes als Analogie herleiten. Bei einem Containerschiff haben die Container genormte Größen, was den Transport und die Verladung enorm erleichtert. Ähnlich verhält es sich in der digitalen Welt. Container bilden eine geschlossene, isolierte Einheit für Applikationen. Der Container beinhaltet alle notwendigen Abhängigkeiten zur Ausführung der Applikation. Durch die Containerisierung können sich die Entwickler somit auf die Anwendungslogik fokussieren. Um die Bereitstellung kümmern sich dann operative IT-Teams.

Vorteile von Containern 

Isolation

Die Container werden unabhängig voneinander betrieben. Mehrere verschiedene Container können auf einem Server laufen, ohne dass sie sich gegenseitig beeinflussen. Da die virtuellen Server in der Regel nur gering ausgelastet sind, bleiben viele Ressourcen die meiste Zeit reserviert bzw. ungenutzt. Durch Container können Serverressourcen effizient genutzt werden. So können Sie Kosten einsparen.

Portabel & Cross Plattform

Dem Container ist es egal, welches Betriebssystem der Host ausführt. Container sind Cross-Plattformfähig. Dabei bildet die „Container Runtime“ die Schnittstelle zwischen dem OS und dem Container.

Konsistente Umgebung

Die Umgebungen sind für die Entwickler vorhersehbar, denn ein Container beinhaltet alle Abhängigkeiten um die Applikation auszuführen. Zu den Abhängigkeiten gehören u.a. die externen Softwarebibliotheken, die von der Anwendung verwendet werden. Durch diese Eigenschaften werden die Entwicklerteams produktiver, denn Sie müssen weniger Zeit für die Fehlersuche aufwenden. Ganz nach dem Motto: „wenn es auf meiner Machine läuft, läuft es überall“ – die Umgebung stellt schlussendlich keine Rolle mehr!

Strategie

Die Vorteile von Containern sollten bis hier hin klar geworden sein. Nun geht es aber um eine seetaugliche Strategie. Selbstverständlich verfolgt jedes Unternehmen seine eigene Unternehmensstrategie. Dennoch kann man zu diesem Thema einige allgemeingültige Empfehlungen aussprechen.

Generell gibt es natürlich zwei verschiedene Ansätze, wenn man von der Containerisierung profitieren möchte. Der erste Ansatz besteht darin, die Container im eigenen Rechenzentrum zu betreiben, also On-Premise. Der andere Ansatz besteht darin, die Container in der Cloud zu betreiben. Welcher Weg für Ihr Vorhaben am sinnvollsten ist, muss individuell betrachtetet werden.

Nun könnte man natürlich vorschlagen, zukünftig alle Anwendungen in Containern bereit zu stellen. Erstmal keine schlechte Idee… Doch es steht noch die Frage im Raum, ob die Anwendung dafür überhaupt konzipiert wurde?! Container sind natürlich eine schöne Sache, aber wirklich Sinn machen Sie erst bei modularen Applikationen.

Mit Microservices lassen sich Teile der Software getrennt voneinander entwickeln, bereitstellen und skalieren. Und genau diese Schritte werden durch die Containerisierung erleichtert

docker logo

Docker

Das wohl bekannteste Tool zur Containerisierung stellt wohl Docker dar (wenn auch nicht das einzige). Docker ist ein Open Source Projekt, welches kostenfrei kommerziell genutzt werden kann. Viele Anbieter unterstützen Docker und es gibt eine große Community sowie auch detaillierte Dokumentation.
Darüber hinaus sind Enterprise Szenarien in Kombination mit erweiterten Toolsets wie z.B. Kubernetes abbildbar. Falls Sie bereits darüber nachdenken Kubernetes einzusetzen, sollten Sie berücksichtigen, dass Kubernetes den Support für Docker in Kürze einstellt.

Fazit

Container bieten eine Vielzahl von Vorteilen, dennoch darf die Ausgangsposition und das Ziel nicht außer Acht gelassen werden. Wenn die Bewertungskriterien für die Containerisierung der Applikation sprechen, steht der neuen Technologie nichts mehr im Weg!