© frankie's/Shutterstock.com
Entwickler Magazin
Wie man Stolperfallen beim Serverless Computing vermeidet

Serverlos, nicht kopflos!

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. In diesem Artikel werden die typischen Herausforderungen mit entsprechenden Lösungsmöglichkeiten dargestellt.

Frank Pientka


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 leichter zu managen als einfach 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 [1], [2]. 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 [3] 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 [4] 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 imme...

Entwickler Magazin
Wie man Stolperfallen beim Serverless Computing vermeidet

Serverlos, nicht kopflos!

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. In diesem Artikel werden die typischen Herausforderungen mit entsprechenden Lösungsmöglichkeiten dargestellt.

Frank Pientka


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 leichter zu managen als einfach 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 [1], [2]. 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 [3] 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 [4] 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 imme...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang