Der Trend der letzten Jahre in der IT geht in Richtung Microservices. Seit der flächendeckenden Verfügbarkeit von Hardwarevirtualisierung laufen einzelne Dienste voneinander getrennt in unterschiedlichen virtuellen Maschinen. Das kostet vor allem Arbeitsspeicher für vollständig geladene Betriebssysteme, der Speicherplatz auf Festplatten war im Verhältnis dazu schon immer erschwinglich. Die Abstraktion für das Betriebssystem erfolgt mittels emulierter Hardware, die über paravirtualisierte Treiber den Zugriff auf die realen Ressourcen des Computers performant ermöglicht.
Modernere Plattformen mit Containertechnologie, wie etwa das von Google initiierte Kubernetes, optimieren den Ressourcenverbrauch insbesondere im Hin- blick auf den Arbeitsspeicherverbrauch beim Einsatz von Microservices noch weiter. Dank sogenannter Namespaces im Linux-Kernel ist es heute nicht mehr nötig, ein Betriebssystem bereitzustellen, um eine Software von anderen laufenden Programmen oder bestimmten Dateien im Dateisystem zu isolieren. Es kommt allein auf die unmittelbare Laufzeitumgebung eines Programms an, also die Systembibliotheken in Form von dynamischen Bibliotheken (die sogenannten Shared Libraries). Die Aufrufe der Kernelfunktionen der Programme und Bibliotheken können dabei ja auch von einem einzigen Kernel bearbeitet werden.
Die beschriebene Architektur führt dazu, dass einzelne Anwendungen, beispielsweise Software zur kooperativen Bearbeitung von Dokumenten oder Kalendersysteme, in jeweils eigenen Containern ohne direkten Zugriff auf die Ressourcen anderer Prozesse laufen. Auch eine im Backend angebundene Datenbank arbeitet dabei in einer eigenen Umgebung, die Kommunikation erfolgt dann über ein im Kernel virtualisiertes privates Netzwerk. Die üblichen Werkzeuge sind für die Kommunikation über ein Netzwerk entwickelt.
Vor allem mit Blick auf
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.