Interview mit Sascha Möllering

„Der Reiz von Serverless liegt in der besseren Fokussierung auf die Business-Logik“

Hartmut Schlosser

Im Rahmen unseres Themenfokus Serverless haben wir mit DevOpsCon-Speaker Sascha Möllering (Amazon Web Services) über die Möglichkeiten des neuen Architekturansatzes gesprochen. Für ihn sind Serverless-Anwendungen oft „nano“ und überraschend vielfältig. Und NoOps ist für ihn nur ein Buzzword.

JAXenter: Was macht für dich persönlich den Reiz des Serverless-Ansatzes aus?

Sascha Möllering: Für mich besteht der Reiz von Serverless-Architekturen in der Möglichkeit der besseren Fokussierung auf die eigentliche Business-Logik. Es besteht nicht mehr die Notwendigkeit, sich über das Sizing, die Hochverfügbarkeit und das Monitoring von Servern Gedanken zu machen, sondern es kann deutlich schneller als bisher an der Anwendung gearbeitet werden. Dadurch verkürzen sich die Entwicklungszyklen. Frameworks wie Chalice oder Serverless helfen zusätzlich dabei, die Entwicklung zu vereinfachen. Ein weiterer interessanter Aspekt ist, dass diese Art der Architektur deutlich kosteneffizienter ist. Wenn die Infrastruktur nicht genutzt wird, fallen keine Kosten an.

Der Aufwand für Orchestrierung, Monitoring, Logging und auch Fehlersuche steigt.

JAXenter: Was sind deiner Erfahrung nach die größten Herausforderungen, um eine Serverless-Anwendung produktiv zum Laufen zu bringen?

Sascha Möllering: Eine Serverless-Anwendung ist im Regelfall deutlich kleinteiliger als eine klassische Anwendung. Eberhard Wolff hat in seinem Buch über Microservices im Kontext von AWS Lambda den Begriff Nanoservice verwendet, was ich sehr passend finde. Der Aufwand für Orchestrierung, Monitoring, Logging und auch Fehlersuche steigt. Beispielsweise ist die Verwendung einer Correlation ID, um das Verhalten von Requests über die Grenzen von Services bzw. AWS-Lambda-Funktionen hinweg verfolgen zu können, sehr sinnvoll. Amazon CloudWatch hat kürzlich ein neues Feature hinzubekommen, was die Fehlersuche bei Serverless-Architekturen deutlich vereinfacht: Metriken können mit Logs in CloudWatch Logs zeitlich korreliert werden.


DevOpsCon Logo schwarzTreffen Sie Sascha Möllering auf der DevOpsCon

In seiner Session Serverless Architecture – Highly scalable Applications without any Servers zeigt Sascha, wie man mit Amazon API Gateway, AWS Lambda, Amazon S3 und Amazon DynamoDB hoch skalierbare Applikationen ohne Server bauen kann.

 

JAXenter: Für welche Art von Anwendungen eignet sich der Serverless-Ansatz gut?

Sascha Möllering: Viele Entwickler, mit denen ich spreche, denken bei Serverless zunächst an die klassische Webapplikation, die sich mit einem Serverless-Ansatz sehr einfach realisieren lässt. Grundsätzlich gilt, dass die Anwendung zustandslos sein bzw. dass der Zustand in externen Systemen gehalten werden sollte, beispielweise einer Datenbank wie Amazon DynamoDB. Serverless eignet sich aber auch sehr gut für ETL-Jobs und Glue Code zwischen einzelnen Services. Ich bin aber immer wieder positiv überrascht, in welchem Kontext Serverless noch verwendet werden kann. Ein Beispiel ist eine Referenzarchitektur für eine serverlose Map-Reduce-Implementierung. Die Vorteile liegen auf der Hand: Die Setup-Zeit der Architektur ist kurz und die Kosten sind gering.

Serverless eignet sich auch sehr gut für ETL-Jobs und Glue Code zwischen einzelnen Services.

JAXenter: Für welche Anwendungen eignet sich der Serverless-Ansatz eher weniger?

Sascha Möllering: Aktuell wissen wir noch gar nicht, welche Art von Workloads in der Zukunft von Kunden auf Basis von serverloser Architektur umgesetzt werden wird. Beim Launch von AWS Lambda wurden Lambda-Funktionen primär als Glue Code verwendet und man hat sich zu dem Zeitpunkt noch nicht vorstellen können, dass beispielsweise vollständige E-Commerce-Lösungen damit gebaut werden würden. Aktuell finde ich eine Kombination aus Docker-Containern und Serverless sehr interessant. Eine Lambda-Funktion kann – als Reaktion auf ein Event – einen Task in einem Amazon ECS-Cluster schedulen. Ein sehr interessantes Beispiel für dieses Pattern ist eine Applikation, die eine POV-Ray-3D-Szene mithilfe von Amazon S3, AWS Lambda und Amazon ECS berechnet. Eine POV-Ray-Szene wird als ZIP-Datei in einen S3-Bucket hochgeladen, eine Lambda-Funktion reagiert auf dieses PUT-Event und schedult dann einen ECS-Task mit den entsprechenden Daten in einem ECS-Cluster.

JAXenter: Weshalb ist Serverless im Rahmen der DevOps-Bewegung interessant. Es macht derzeit ja auch die Formel NoOps die Runde.

Sascha Möllering: Das Ziel von DevOps besteht darin, mehr Agilität zu erreichen, um den Kunden Software schneller bereitzustellen. In diesem Kontext hat sich die Aufteilung der Software in Microservices als vorteilhaft erwiesen, da Teams unabhängig voneinander die einzelnen Services entwickeln können. Serverless ist einfach nur die nächste Evolutionsstufe: Serverless hilft Entwicklern, sich stärker auf die Fachlichkeit zu fokussieren, weil die Infrastruktur bzw. die notwendigen Ressourcen durch Werkzeuge wie Amazon CloudFormation erzeugt werden kann und nicht die Notwendigkeit besteht, sich um diese Komponenten zu kümmern. Bei AWS Lambda übernimmt AWS das komplette Management der Infrastruktur und Entwickler können die für ihre Aufgaben notwendigen Compute-Ressourcen einfach nutzen. Entwickler können durch Infrastructure as Code die notwendigen Bausteine für ihre Applikation selbst zusammenstellen und erzeugen. Serverless bedeutet aber nicht NoOps, denn Ops ist ja deutlich mehr als nur die Administration von Servern. Monitoring, Deployment und Networking bleiben als Ops-Aufgaben erhalten. Auch dafür müssen entsprechende Strategien entwickelt werden.

JAXenter: Domain-driven Design ist ein Inspirationsgeber für Microservice-Architekturen. Serverless wurde auch schon als „Extreme Microservices“ bezeichnet. Wie siehst du den Zusammenhang zwischen DDD und Serverless? Ergänzen sich die Ansätze, stehen sie nebeneinander oder sind sie nicht miteinander vereinbar?

Sascha Möllering: Die Konzepte und Ideen von DDD sind ja zunächst mal unabhängig von der technischen Implementierung. Durch die Nutzung von DDD wird der Entwurf von Microservices deutlich einfacher. Dabei ist es irrelevant, ob diese Services serverless sind oder nicht. Aufgrund der feinen Granularität der einzelnen Lambda-Funktionen ist es natürlich möglich, dass der fachliche Bounded Context mit mehr als einer Lambda-Funktion umgesetzt wird.

JAXenter: Vielen Dank für das Gespräch!

moellering_sascha_300x210Sascha Möllering arbeitet als Solutions Architect bei der Amazon Web Services Germany GmbH. Seine Interessen liegen in den Bereichen Automation, Infrastructure as Code, Distributed Computing, Container und JVM.

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: