Frank Pientka MATERNA SE

„Genauso, wie es ein Mythos ist, dass Cloud immer günstiger ist als selbst-betriebene Lösungen, gilt gleiches für Serverless-Dienste. Wie so oft hängt es von den Anforderungen, den jeweiligen Anwendungsfällen und deren Umsetzung ab.“

Serverlose Architekturen sind der nächste Schritt in der Evolution der Clouddienste. Erste Gehversuche damit sind leicht. Man sollte jedoch die Stolperfallen kennen, um sie vermeiden zu können und länger Freude damit zu haben. In diesem Artikel werden die typischen Herausforderungen mit entsprechenden Lösungsmöglichkeiten dargestellt.

Function as a Service (FaaS) ist die einfachste Möglichkeit, Code in der Cloud auszuführen. Dadurch kann man auch von den Vorteilen einer gemanagten Umgebung wie automatischer Skalierung, hoher Verfügbarkeit und Fehlertoleranz profitieren, ohne initiale Aufwände und langfristige Kosten zu verursachen. Deswegen bietet sich FaaS sehr gut für unregelmäßige, fehlertolerante und kurzzeitige Dienste mit einer hohen Skalierbarkeit bei geringen Kosten an. Es muss dafür kein Server bereitgestellt, verwaltet, gepatcht oder aktualisiert werden. Solange der Code ausgeführt wird, wird nur der reine Verbrauch bezahlt. Denn kein Server ist einfacher zu managen als gar kein Server. Wer braucht noch Server, wenn es Dienste gibt?

Doch wie kann man die Abhängigkeit von einem Anbieter reduzieren und die Kosten unter Kontrolle halten? Wie kann man die angestrebten Qualitätsziele wie Sicherheit, Reaktionsfähigkeit und Überwachbarkeit erreichen und die Entwicklung und das Deployment in die bestehenden DevSecOps-Prozesse einbinden?

Was ist Serverless Computing?

Serverless Computing ist eine noch neue und sich schnell weiterentwickelnde Disziplin. Die Idee ist, dass man sich nur noch um die Erstellung und Konfiguration der Funktion kümmern muss, aber nicht mehr um ihre Skalierung und die benötigten Ressourcen. Deswegen bezahlt man auch nur für den realen Verbrauch und nicht für die zur Verfügung gestellte Infrastruktur. Da man sich die Infrastruktur trotz Isolierung mit anderen teilen muss, kann es jedoch sein, dass Ausführungs- und Durchführungsdauer der Funktion schwanken. Die anbieterunabhängige λ Serverless Benchmark kann für eine erste Orientierung dienen.

Infrastrukturtechnisch beruht Serverless Computing auf Containern, wobei diese als Nanocontainer immer kleiner und damit schneller werden. Hinsichtlich der Programmierung basieren sie auf Events und Funktionen. Wobei bisher nur für Events mit CNCF-Cloud-Events-Spezifikation ein Standard entwickelt wird, um Serverless mit Multicloudumgebungen – auch von verschiedenen Herstellern – sowie als hybride Clouds umsetzen zu können. Deswegen legt man sich bei der Programmierung und dem Betrieb bisher meist auf einen Cloudanbieter und dessen Modell fest. Um von Function as a Service (FaaS) zu Serverless Computing zu kommen, ist es wichtig, dass der Cloudanbieter immer mehr seiner Dienste auch für die direkte Nutzung serverlos zur Verfügung stellt. Für höherwertige Dienste wie z. B. Datenbanken können diese immer noch als Backend as a Service (BaaS) eingebunden werden.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin Spezial Vol. 21: Serverless - "Serverless"

Alle Infos zum Heft
579903844Wie man Stolperfallen beim Serverless Computing vermeidet
X
- Gib Deinen Standort ein -
- or -