Adacor - Cloud

Wie Serverless Infrastructures mit Microservices zusammenspielen

11. April 2019 von Andreas Bachmann

Programmieren ohne Server? Das hört sich ein wenig an wie „Backen ohne Mehl“. Seit 2016 drängen die großen Cloud-Anbieter mit serverlosen Architekturen auf den Markt – den sogenannten „Serverless Infrastructures“. Aber wie soll das gehen? Kann man wirklich auf den Einsatz von Servern verzichten? Und welche Rolle spielendie Mikrodienste bei der serverlosen Datenverarbeitung?

Natürlich nicht. Als physikalische Einheit oder virtuelle Ressource arbeiten im Hintergrund der Anwendungen immer noch „echte“ Server. Letztlich müssen nach wie vor Daten und Codes irgendwo gespeichert und betrieben werden. Mit der Administration und Betriebssteuerung der Server haben die Nutzer serverloser Infrastrukturen allerdings nichts mehr zu tun. Diese Arbeit übernehmen die jeweiligen Cloud-Anbieter. Was bei diesen läuft, spielt sich in einer Art Black-Box ab. Entwickler können also mithilfe der serverlosen Datenverarbeitung Applikationen erstellen, ohne sich um Rahmenbedingungen wie Server-Strukturen oder Betriebssysteme Gedanken zu machen.

Microsoft wirft „Azure-Functions“ ins Rennen, „Google“ nennt sein Produkt „Cloud- Functions“, Amazon hat die Nase mit „AWS Lambda“ weit vorn, und IBM mischt im Markt der Serverlosen mit „OpenWhisk“ mit. Was sind typische Anwendungsfälle? Bei welchen Projekten machen sich die neuen serverlosen Infrastrukturen bezahlt?

Mobile Backends

Um ein Backend aufzusetzen, mussten Unternehmen bisher eine Menge Arbeit investieren: Backend-Entwickler und Administratoren mussten sich abstimmen, Server verwalten, Datenbanken integrieren und die logische Architektur entwickeln. Unterschiedliche Schnittstellen mussten definiert und mit den Frontend-Entwicklern abgeglichen werden. Ein Prozess, der Manpower und Zeit bindet, also Geld kostet und relativ langsame Reaktionszeiten auf sich stets verändernde Business-Anforderungen zur Folge hatte.

Bestandteil des Services von Anbietern der „serverless infrastructures“ ist deshalb „Backend as a Service (BaaS)“. Diese browserbasierten Entwicklungsumgebungen erleichtern die Entwicklung von Backends für mobile Apps und Webseiten – durch automatisierte Funktionen und Interaktionen.

Ein Beispiel: Auf diesem Weg können Bilder nicht nur automatisiert hochgeladen, sondern durch eine verknüpfte Funktion an die Bildgröße für eine definierte Anwendung angepasst werden.

Mikrodienste

Mikrodienste wie Microservices auch bezeichnet werden erfüllen jeweils eine kleine Aufgabe im Rahmen einer Anwendung. Die Dienste lassen sich modulhaft miteinander verbinden, sodass sich daraus eine komplexere Software ergibt. Der Vorteil dieser Verknüpfungsarchitekturen besteht darin, dass sich die einzelnen Module je nach veränderter Anforderung schnell ersetzen, erweitern oder anpassen lassen und von einem Entwicklerteam genutzt werden können.

 

Microservices sind kleinteilig und modular aufgebaut und lassen sich flexibel an Anforderungen anpassen.

Microservices sind elementare Bestandteile der serverlosen Datenverarbeitung. Sie bestehen nicht aus monolithischen Codes mit internen Abhängigkeiten, sondern aus einzelnen kleinen Diensten, die über definierte Schnittstellen miteinander interagieren. Das garantiert eine hohe Skalierbarkeit, da mehrere Teams unabhängig voneinander an ihrem jeweiligen Microservice arbeiten können.

Da die Microservices von den anderen Diensten und Prozessen isoliert fungieren, können sie im Prinzip in einer beliebigen Programmiersprache erstellt werden. Die Anbieter von serverlosen Infrastrukturen haben in ihrem Angebotsportfolio meist automatisierte APIs, die unter anderem das Erstellen von Komponenten der grafischen Benutzeroberfläche ermöglichen oder vereinfachen. Das bedeutet in der Praxis zum Beispiel, dass es schnell und einfach ist, Bilder zu verarbeiten, Videos zu transcodieren, Dateien zu validieren oder beliebige Onlinedienste aufzurufen.

Managed Kubernetes Hosting von Adacor

Wir unterstützen Sie ganz nach Ihren Bedürfnissen

  • Kubernetes Cluster individuell bereitgestellt
  • CI/CD Pipeline maßgeschneidert aufgebaut
  • Übernahme des Cluster- & Container-Managements

Jetzt mehr erfahren!

Webhooks und Bots

Webhooks sind nicht-standardisierte Verfahren zur Kommunikation von Servern untereinander. Sie erfassen bestimmte Ereignisse und lösen automatisch eine Reaktion auf diese aus. Bots wiederum sind Computerprogramme, die eine definierte Struktur sich ständig wiederholender Ereignisse ausführen. Die Anbieter serverloser Infrastrukturen bieten eine Reihe von Webhooks an, die automatisch das Verhalten eines Bots anpassen. Der Vorteil: Entwickler können ohne großen Aufwand Funktionen erstellen, die serviceübergreifende Prozesse auf schnelle Weise implementieren.

Ein Beispiel: Verschiedene Chat-Dienste nutzen Webhooks, um automatische Benachrichtigungen im Chatraum anzuzeigen – etwa Benachrichtigungen für ein Supportteam, dass ein neues -Ticket für den Helpdesk eingegangen ist.

Internet der Dinge

Immer mehr technische Geräte streamen über Cloud-Dienste Daten, die verarbeitet, transformiert oder gespeichert werden – von der app-gesteuerten Kaffeemaschine in der privaten Küche bis zur ferngesteuerten smarten Fabrik. Geräte verschiedener Hersteller nehmen miteinander Kontakt auf, wenn etwa die Wetter-App auf dem Smartphone auslöst, dass bei starkem Wind die Markise zuhause einfährt. Die Dienste der Anbieter serverloser Infrastrukturen halten Funktion vor, die solche Nachrichten automatisiert transformieren, verarbeiten und in Datenbanken einspeisen.

Automatische Skalierung

Die Anwendungsbeispiele lassen es ahnen: Ein entscheidender Vorteil der serverlosen Infrastrukturen ist ihre Flexibilität. Die Anpassung der Ressourcen wird auf den Cloud- Anbieter verlagert. Er stellt immer ausreichend Serverplatz zur Verfügung und skaliert je nach Anfrage-Aufkommen die Kapazitäten. Hinzu kommt, dass auf Entwicklerseite die Komplexität erheblich reduziert wird. Server, Betriebssystem und Co. fallen nicht mehr in sein Ressort. Daran orientieren sich auch die Abrechnungsmodelle. Bezahlt wird nur, wenn Funktionen ausgeführt und Kapazitäten genutzt werden.

Und die Nachteile?

Das hört sich doch toll an, oder? Entwickler können sich auf ihre Kernaufgaben konzentrieren und müssen sich nicht mehr mit ablenkenden Fragen zur Infrastruktur herumschlagen. Allerdings mahnen Kritiker der Technologie, dass Entwickler zunehmend die Kontrolle über ihre Projekte verlieren. Möglichkeiten auf die virtuellen Maschinen zuzugreifen oder Änderungen an Betriebssystem oder Laufzeitumgebung vorzunehmen, gibt es kaum.

Auch warnen sie vor einem Lock-in-Effekt. Wer sich einmal für einen Cloud-Anbieter und dessen Produkt für eine serverlose Infrastruktur gebunden hat, verknüpft seine Entwicklungen ausschließlich mit dessen Umgebungen. Da gilt der Ratschlag: Drum prüfe, wer sich bindet … .

Die richtige Strategie ist gefragt

Ebenso wie beim Aufsetzen klassischer IT-Projekte oder vor dem Verlagern von Diensten in eine Cloud macht es Sinn, sich im Vorfeld strategisch mit dem Thema „serverless infrastructures“ auseinanderzusetzen.

  • Was sind die aktuellen Anforderungen an die IT- Projekte?
  • Welche Ziele sollen erreicht werden?
  • Wie wichtig ist eine vollständige Kontrolle über alle Details?

Kampagnen oder Minimal Viable Products im Rahmen der Prototypen- Entwicklung sind prädestiniert für die Datenverarbeitung ohne Server. Andere IT-Projekte eignen sich vielleicht eher weniger für die neue Technologie.
Adacor erstellt zu solchen Fragestellungen fundierte Analysen. Sie beziehen bei ihrer Betrachtung die verschiedenen Anbieter und Modelle ein, begleiten plattformübergreifend die ersten Schritte in der neuen Umgebung und stehen Entwicklern kompetent als Know-how-Backup zur Seite.

Verwandte Artikel