Serverless-Architekturen basieren auf Function-as-a-Service-Angeboten, wie zum Beispiel AWS Lambda, welche den Kleber für Serverless-Ressourcen darstellen. Genauer gesagt ist AWS Lambda eine elegante und skalierbare Lösung für die Verarbeitung von Ereignissen in der Cloud. Geeignete Beispiele sind die Analyse von eingehenden E-Mails und das Konvertieren von Dateiuploads in andere Formate. In Kombination mit serverless API-Gateways eignet sich AWS Lambda auch für den Betrieb von HTTP-basierten APIs.
Aus Entwicklerperspektive sollten Serverless-Architekturen einfacher zu ändern sein, da das Pflegen der zugrunde liegenden Infrastruktur entfällt. Hierbei wird häufig übersehen, dass Serverless-Applikationen meist mehrere Cloud-Dienste und zahlreiche Cloud-Ressourcen umfassen und daher eine manuelle Konfiguration dieser stark fehleranfällig ist. Dem neusten Stand der Technik entsprechend ist die Lösung für dieses Problem Continuous Integration/Delivery (CI/CD). Jedoch lassen sich etablierte Praktiken und Tools für CD-Pipelines nicht auf natürliche Art auf Serverless-Architekturen anwenden und schaffen hierdurch neue Herausforderungen.
Wir zeigen Lösungen für diese neuen Probleme auf, auf welche die Entwickler von Serverless-Anwendungen schließlich stoßen. Hierbei diskutieren wir Methoden, etablierte Praktiken und Tools für die Realisierung von Serverless-CI/CD-Pipelines für AWS Lambda und verwandte Dienste. Demonstriert werden diese an Hand einer Single-Page-Applikation, welche ausschließlich auf Serverless-Technologien basiert.
// Referent
Alex Krause
@alex0ptr
ist Cloud Developer bei cosee in Darmstadt. Er begeistert sich für DevOps, Cloud-Native Microservices und Reaktive Programmierung.