Serverless vs Microservices – Vorteile und Unterschiede dieser Architekturtypen
Beim Aufbau von Serverstrukturen und Unternehmensanwendungen steht die Entscheidung für eine bestimmte Architektur an. Hier gibt es mehrere Optionen, die sich oftmals grundlegend unterscheiden. Zwei moderne Architekturtypen, die häufig zum Einsatz kommen, sind Microservices und ein Serverless-Ansatz. Beide Konzepte bringen spezifische Stärken mit und eignen sich für bestimmte Szenarien.
1 Der Aufbau einer Serverless-Infrastruktur
Der Name Serverless könnte darauf schließen lassen, dass gar keine Server zum Einsatz kommen. Dies ist jedoch irreführend, denn die Bezeichnung bezieht sich nur auf Unternehmensserver. Server sind weiterhin vorhanden, befinden sich jedoch ausschließlich in der Cloud. Außerdem kommt beim Serverless Computing ein spezieller Ansatz zum Tragen, und zwar gibt es auch keine klassischen Cloudserver wie VPS.
Vielmehr baut Serverless auf der Function as a Service (FaaS) auf. Hierbei führen die Entwickler Funktionen direkt auf der Infrastruktur in der Cloud aus, in der Regel in Containern. Ein Kontakt mit den eigentlichen Servern entsteht gar nicht. Die Verwaltung der Abbildung erfolgt über Docker oder vergleichbare Lösungen. Somit gibt es keinen Aufwand mit der Einrichtung, Konfiguration oder Wartung der IT-Infrastruktur.
Unternehmen, die Serverless Computing einsetzen, buchen Ressourcen von Dienstleistern in der Cloud. Aus diesem Grund ist auch die Abrechnung bei diesem Konzept speziell. Die Höhe der Kosten entscheidet sich anhand der Intensität der Nutzung, also nach dem Prinzip Pay-as-you-go. Benötigen die Unternehmensanwendungen viel Speicherplatz und Rechenleistung, steigen auch die Kosten. Alternativ buchen Unternehmen feste Kapazitäten.
2 Serverless und seine Vorteile
Ein großer Vorteil beim Serverless Computing ist die enorm schnelle Bereitstellung, denn die Umgebung ist ohne Konfiguration direkt einsatzbereit. Gleichzeitig ist faktisch keinerlei Aufwand mit der Administration der IT-Infrastruktur vorhanden, was die Verwaltung beim Serverless Computing enorm einfach macht. Als Entwicklungsumgebung ist die Architektur sehr flexibel und theoretisch unbegrenzt skalierbar.
3 Anwendungsfälle für Serverless-Infrastrukturen
Typische Anwendungsfälle für das Serverless Computing sind Szenarien, in denen eine extreme Skalierung benötigt wird. Serverless Computing kommt so für Entwicklungsumgebungen zum Einsatz. Den hohen Ressourcenbedarf während Testphasen deckt die Cloud optimal ab, während in den Zeiten der Entwicklung mit niedriger Last die Kosten sinken. Außerdem ist Serverless Computing für Anwendungen geeignet, die für Container entwickelt wurden. Das Backend lässt sich auf diesem Weg ganz einfach auslagern.
4 Microservices – so funktioniert eine solche Architektur
Bei den Microservices erfolgt der Aufbau einer Infrastruktur durch viele einzelne, voneinander getrennte Prozesse. Das Ganze ist vergleichbar mit einem Baukastenprinzip. Eine Reihe von einzelnen Komponenten, die jeweils eine spezifische Funktion haben, erzeugen zusammen das gewünschte Endergebnis. Über diesen Microservices liegt eine UI, also die Nutzeroberfläche, die den Zugriff auf die Funktionen erlaubt und die einzelnen Services zu einem Gesamtkonstrukt formt.
Jede einzelne dieser Komponenten ist autark und läuft in der Regel in einem autonomen System. Oftmals kommen Container zum Einsatz, in denen die einzelnen Microservices laufen. Ebenfalls ist ein Aufbau der Infrastruktur mit virtuellen Servern möglich. Die einzelnen Instanzen der Microservices kommunizieren über APIs. Diese verbinden die Container beziehungsweise die virtuellen Server. So entsteht eine Anwendung, die sich von außen wie eine normale Softwareplattform präsentiert.
5 Vorteile und Stärken von Microservices
Die zentralen Stärken einer solchen Infrastruktur liegen bei der Skalierbarkeit und der Flexibilität. Die Microservices können über die Virtualisierung und die Container schnell und problemlos zwischen Servern verschoben werden. Auf diese Weise lässt sich ohne großen Aufwand auf eine leistungsstärkere oder auch kleinere Infrastruktur umziehen.
Der nächste enorme Vorteil einer solchen Umgebung liegt in den Prozessen bei der Entwicklung, dem Test sowie der Bereitstellung von Software. Da jede Funktion in einem Microservice mit eigener Umgebung gekapselt ist, ist es sehr einfach, diese weiterzuentwickeln. Moderne Anwendungen befinden sich in der Regel in einem konstanten Entwicklungsprozess. Je größer die Umgebung, umso mehr trifft dies zu. Beispiele dafür sind Plattformen für das ERP oder CRM, die dutzende oder gar hunderte Funktionen mitbringen.
Microservices lassen sich einzeln weiterentwickeln, individuell testen und dann auch separat aktualisieren. So verkürzen sich Prozesse, da Wechselwirkungen zwischen den modularen Elementen nicht bestehen. Das erlaubt eine sehr einfache Weiterentwicklung einzelner Komponenten und Funktionen, ohne den Rest der Anwendung berühren zu müssen. Das Rollout ist ebenfalls deutlich simpler, da nur ein Container aktualisiert werden muss.
Das führt außerdem zu besonders stabilen Umgebungen. Bugs entstehen bei der Weiterentwicklung erfahrungsgemäß weniger als bei anderen Softwarearchitekturen. Die Anwendung funktioniert weitestgehend beispielsweise auch dann, wenn ein Microservice ausfällt. Damit sind diese Strukturen deutlich resilienter gegenüber Angriffen und Ausfällen.
6 Dies sind typische Einsatzmöglichkeiten für eine Architektur auf Basis von Microservices
Microservices kommen vor allem in Verbindung mit komplexen Anwendungen zum Einsatz. Überall dort, wo sich eine Anwendung aus vielen Funktionen zusammensetzt, kann der Einsatz dieser Architektur von Vorteil sein. Das trifft besonders dann zu, wenn es sich um eine individuell entwickelte Software handelt. Die einfachen Möglichkeiten zur Weiterentwicklung sind ein starkes Argument, diese Architektur zu favorisieren und sind vor allem für Entwickler von Vorteil.
Ebenfalls ist es sinnvoll, auf Microservices zu setzen, wenn Skalierbarkeit und Ausfallsicherheit der Plattform eine wichtige Rolle spielen. Durch die einzelnen Microservices ist es einfach, eine dynamische Lastverteilung mit Hochverfügbarkeit aufzubauen. So lassen sich temporäre Lastspitzen mit einer Architektur auf Basis von Microservices vergleichsweise einfach abfangen.
7 Der monolithische Architekturtyp im Vergleich
Als Vergleich lassen sich noch die Eigenschaften einer monolithischen Architektur betrachten. Diese Form der Infrastruktur war lange Zeit der Standard. Monolithische Strukturen laufen auf einem Server und bestehen aus einer Instanz. Ein Monolith ist faktisch die klassische Form einer Software. Alle Komponenten befinden sich in einer Anwendung, laufen auf einer Plattform und nutzen eine Datenbank. Bei der Weiterentwicklung muss die gesamte Anwendung kompiliert und im Gesamten neu ausgerollt werden. Die Funktionen innerhalb der Anwendung sind voneinander abhängig und beim Einsatz unterschiedlicher Versionen kommt es häufig zu Kompatibilitätsproblemen, was eindeutige Nachteile dieser Architektur sind.