In der Software Entwicklung haben sich in den letzten Jahren die Microservices respektive die Microservice Architekturen durchgesetzt. Was für Möglichkeiten bietet die Cloud um diese Services zu betreiben?
Microservices kurz erklärt
Microservices sind kleine, lose entkoppelt, unabhängig funktionierende Dienste welche oft modular in einer Plattform zusammengefasst werden. Die einzelnen Services kommunizieren über standardisierte Protokolle und Schnittstellen miteinander. Jeder einzelne Service ist durch die Unabhängigkeit sehr einfach in der Wartung und jederzeit individuell erweiterbar. Microservices ermöglichen eine kontinuierliche Bereitstellung und Erweiterung grosser, komplexer Software Plattformen.
Infrastruktur as a Service (IaaS)
IaaS ist eigentlich nichts anderes als was wir heute schon mit der eigenen Infrastruktur haben, nur mit dem Betriebsmodell in der Cloud als Service. Die Infrastruktur wird als Leistung in einer Cloud Umgebung oft automatisiert und über Selbstbedienung Prozesse schnell und unkompliziert bereitgestellt. Alles was über die Bereitstellung der Infrastruktur hinausgeht ist jeder selber verantwortlich daher oft reicht IaaS noch nicht um komplexe Plattformen mit minimalem Aufwand erfolgreich betreiben zu können.
Platform as a Service (PaaS)
PaaS hat einen höheren Abstraktionslevel gegenüber IaaS und wird vorwiegend eingesetzt wenn man sich nicht mehr um Themen wie Betriebssysteme kümmern möchte. Die Auswahl fällt auf eine von der Plattform angebotenen Laufzeitumgebung. Sehr interessant ist das PaaS Modell für Entwickler, weil alle Themen welches jedes Betriebssystem mit sich bringen wie Patchmanagement, Sicherheit etc einfach wegfallen. Durch diese Einschränkung konzentriert man sich auf den Betrieb der Microservices. Mit wenigen Klicks können in einem PaaS Umfeld eigene Services mit Datenbanken oder andere Anwendungen integrieren werden.
Im Kontext von Zeit-, Kosten und Arbeitsaufwand entscheiden sich viele insbesondere kleine und mittlere Unternehmen für einen PaaS anstatt einen IaaS Ansatz.
Container as a Service (CaaS)
CaaS ist ähnlich aufgebaut wie IaaS, aber anstatt wie bei IaaS – der Name schon sagt wir uns auf einer Infrastruktur bewegt – kann man bei Container as a Service bereits direkt die Microservices betreiben ohne sich um die dahinterliegende Virtualisierten Systeme kümmern zu müssen.
Cloud Native
Cloud Anbieter wie zum Beispiel Amazon mit AWS, Microsoft mit Azure oder Google bieten teilweise eigene Tools und Dienste an welche die Verwaltung von Anwendungen basierend auf Microservices.
Amazon AWS unterstützt mit dem eigenen Product AWS Lambda den Entwicklern Code in einer serverlosen Umgebung laufen zu lassen und zu provisionieren. Tools wie die CloudWatch, ein Überwachungsdienst für Cloud-Anwendungen unterstützen die Betreiber und liefern eine Gesamtbild über den Zustand der Anwendung.
Microsoft hat eine eigene Platform die Azure Service Fabric die das Verwalten von Microservices innerhalb von Containern ermöglicht.
Google hat mit der Unterstützung mit Tools wie Kubernetes und Istio zwei Technologien die Konzerne beim Erzeugen und Verwalten von Microservices unterstützen. Kubernetes wurde durch Google ursprünglich entwickelt und hatte auch bei Istio die eine oder andere Wort mitgesprochen.
Bezahlt wird in der Regel bei allen Anbietern nur für die Zeit in der der Code tatsächlich läuft.