Niko Köbler Freelancer

„Serverlose Architekturen mit AWS Lambda und AWS-API-Gateway sind eine neue, interessante Möglichkeit, Anwendungen und Services zu betreiben. Es ist ein Muss ist, sich zumindest damit zu beschäftigen.“

Die Infrastruktur unter Containern und Clustern zu managen, kann ganz schön anstrengend sein. Amazon Lambda enthebt uns dieser lästigen Aufgabe. Mit Lambda können wir Code in einer von AWS vollständig gemanagten Infrastruktur deployen und ausführen. Um die Server müssen wir uns nicht mehr kümmern.

Langsam aber sicher haben wir uns an Microservices, Bounded Contexts, funktionale Dekomposition und Self-contained-Systems gewöhnt. Wir deployen unsere Anwendungen nicht mehr als Monolithen auf einem dicken Application Server, sondern bauen und starten für jedes Deployment einen Container und lassen diesen in einem Cluster laufen. Durch den DevOps-Ansatz sind die Grenzen zwischen Entwicklung und Betrieb fließend geworden, und bestenfalls managt jedes Team seine eigenen Services ganzheitlich. Soweit zur Best-Case-Theorie.

Mit der Zeit wird das aber recht anstrengend, für jeden kleinen Service einen eigenen Container zu erzeugen und diese entsprechend redundant in einem Containercluster in Betrieb zu nehmen. Nicht die Sache selbst, aber das Management wird komplexer. Um die Übersicht zu behalten, muss immer mehr Aufwand betrieben werden. Denn die Anzahl an laufenden Instanzen wird immer höher, je mehr wir uns daran gewöhnen, immer kleinere Einheiten (Microservices) zu entwickeln und zu betreiben. Letztendlich wollen wir eigentlich nur Code schreiben und ihn irgendwo ausführen. Egal wo, Hauptsache er läuft; zuverlässig und skalierbar, bestenfalls automatisiert. Durch das Verlagern von Komplexität in den Betrieb der Anwendungen befassen wir Entwickler uns mehr mit dem Betrieb, als wir manchmal eigentlich möchten. Nicht falsch verstehen, DevOps und das ganzheitliche Betrachten von Anwendungen ist mehr als richtig. Aber manchmal erscheint uns der Aufwand doch immens hoch zu dem, was wir eigentlich bewerkstelligen wollen. Geht das nicht auch einfacher? So wie anonyme Klasse oder Funktionen mitten in einem Programmcode existieren, könnte doch auch ein Service einfach so, ohne großen sichtbaren Aufwand in einer Infrastruktur leben. Auch Werner Vogels, CTO von Amazon, sagte auf der re:invent 2015 in Las Vegas: „Kein Server ist einfacher zu managen als kein Server.“

Der nächste Schritt: serverlos

Genau hier kommt AWS Lambda ins Spiel. Lambda erlaubt es uns, einfach nur Code in eine von AWS bereitgestellte und vollständig gemanagte Infrastruktur zu deployen und ihn auszuführen, ohne uns um die Server kümmern zu müssen. Werden mehr Ressourcen benötigt, skaliert AWS die Umgebung automatisch, sodass allen Lambda-Nutzern ausreichend Ressourcen zur Verfügung stehen. Lambda-Funktionen werden ereignisgesteuert ausgelöst, d. h. durch Events von anderen AWS-Services oder durch Aufrufe über das API-Gateway. Zahlen müssen wir nur die Zeit, die für die Ausführung unseres Codes aufgewendet wird. Es fallen also keine Kosten für Leerlaufzeiten an.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin Spezial Vol. 9: Microservices - "Microservices"

Alle Infos zum Heft
275521AWS Lambda: Weniger Infrastruktur, weniger Stress
X
- Gib Deinen Standort ein -
- or -