Direkt zum Inhalt
Serverloses Computing

Der nächste große Schritt im Serverless Computing

21. März 2022
https://storage.googleapis.com/gweb-cloudblog-publish/images/training2022a.max-2500x2500.jpg
Jason Polites

Group Product Manager

Aparna Sinha

Director of Product Management

GCP testen

Profitieren Sie von einem 300 $-Guthaben, um Google Cloud und mehr als 20 zu jeder Zeit kostenlose Produkte kennenzulernen.

JETZT TESTEN

Der Begriff „Serverless“ (serverlos) hat Eingang in viele Gespräche über die Cloud gefunden. Er steht für die natürliche Evolution des Cloud-nativen Computings, und bringt  viele Vorteile in puncto Produktivität, Effizienz und Einfachheit mit sich. Das Aufkommen moderner „Function as a Service“-Plattformen (FaaS) wie AWS Lambda und Google Cloud Functions hat eine Abkehr von monolithischen, langsamen Anwendungen mit dedizierter Server-Infrastruktur bewirkt. Gefragt sind verteilte, ereignisbasierte, serverlose Anwendungen, bei denen keine dahinterliegende Infrastruktur mehr verwaltet werden muss.

Diese ersten serverlosen Plattformen brachten die Entwickler*innen auf den Geschmack, sich nicht mehr um Infrastruktur kümmern oder dafür bezahlen zu müssen. Wenig überraschend begannen sie damit, die Vorteile von Serverless auch auf herkömmliche Workloads anzuwenden. Ob es sich um einfache ETL-Anwendungsfälle oder Legacy-Webanwendungen handelte – die Entwickler*innen wollten die Vorteile serverloser Plattformen nutzen, um ihre Produktivität zu steigern und eine schnellere Wertschöpfung zu erzielen.

Allerdings passen viele herkömmliche Workloads nur schlecht zu den architektonischen Vorgaben der meisten serverlosen Plattformen, und die großen, kritischen Alt-Anwendungen in unzählige ereignisbasierte Funktionen umzuschreiben, war kein verlockender Gedanke. Entwickler*innen wollten eine Plattform, die alle wichtigen Vorteile von serverlosen Plattformen bietet, ohne dass Anwendungen neu programmiert werden müssen – oder sie sich keine große Gedanken darüber machen müssen, welche Workloads ausgeführt werden sollen.

Mit der Einführung von Cloud Run 2019 zielte das Team von Google Cloud darauf ab, am Markt und bei Kunden ein Umdenken über Serverless herbeizuführen. Wir haben eine Plattform geschaffen, die im Kern serverlos ist, aber dennoch eine weitaus größere Anzahl von Anwendungen ausführen kann als bisherige serverlose Plattformen. Cloud Run erreicht dies, indem es Container als Grundprinzip nutzt. In den zwei Jahren seit der Einführung hat das Team 80 Updates für die Plattform veröffentlicht; im Durchschnitt also alle zehn Tage eines. Auch unsere Kunden halten Schritt: Die Verwendung von Cloud Run hat sich zwischen September 2020 und September 2021 mehr als vervierfacht.

Die nächste Generation von serverlosen Plattformen muss die wichtigsten Qualitäten der ersten Generation beibehalten, darunter:

  • Das schnelle Autoscaling von und auf Null
  • Die Möglichkeit, nutzungsabhängige Abrechnungsmodelle zu verwenden
  • Niedrige Einstiegshürden durch Einfachheit

Künftig werden serverlose Plattformen ein viel robusteres Funktionsangebot anbieten müssen, um ein neues, breiteres Spektrum an Workloads und Kunden zu bedienen. Hier die fünf wichtigsten Trends bei serverlosen Plattformen, die wir für 2022 und darüber hinaus erwarten.

1. Mehr (Legacy-)Workloads

Das Wertversprechen von Serverless ist nicht auf neue Anwendungen beschränkt und sollte keine umfassende Neuprogrammierung dessen erfordern, was vorher schon gut funktioniert hat. Entwickler*innen sollten in der Lage sein, die Vorzüge von Serverless auf ein breiteres Spektrum von Workloads anzuwenden – auch auf bereits bestehende, ohne umfassende Neuprogrammierung.

Cloud Run konnte das Workload-Spektrum durch mehrere neue Funktionen erweitern, darunter:

  • Nebenläufigkeit (Concurrency) pro Instanz. Viele herkömmliche Anwendungen laufen schlecht, wenn sie auf ein Single-Request-Modell beschränkt sind, wie es bei FaaS-Plattformen üblich ist. Cloud Run kann bis zu 1.000 nebenläufige Anfragen auf einer einzigen Instanz einer Anwendung bearbeiten und bietet damit deutlich mehr Leistungsfähigkeit.
  • Hintergrundverarbeitung. Bisherige Generationen serverloser Plattformen halten Funktionen, die gerade nicht verwendet werden oft an. Das erleichtert die Abrechnung – bezahlt wird nur, solange die Plattform läuft – kann aber die Ausführung von Workloads, die im Hintergrund laufen sollen, erschweren. Cloud Run unterstützt neue CPU-Zuweisungssteuerungen, mit denen diese Hintergrundprozesse erwartungsgemäß ausgeführt werden.
  • Beliebige Laufzeit. Moderne Programmiersprachen oder Laufzeitumgebungen eignen sich in der Regel für neue Anwendungen. Viele bestehende Anwendungen können jedoch entweder nicht umgeschrieben werden, oder nutzen eine Programmiersprache, die die serverlose Plattform nicht unterstützt. Cloud Run unterstützt standardmäßige Docker-Images und kann damit jede Laufzeitumgebung bzw. Version ausführen, die in einem Container ausgeführt werden kann.

2. Sicherheit und Integrität der Lieferkette

In letzter Zeit haben spektakuläre Cyberangriffe wie SolarWinds, Mimecast/Microsoft Exchange und Codecov Schwachstellen in der Software-Lieferkette ausgenutzt, die die Software-Lieferkette von der Übermittlung schädlichen Codes bis hin zur Umgehung der CI/CD-Pipeline gefährden.

Cloud Run ist mit Cloud Build integriert, das standardmäßig mit SLSA Stufe 1 konform ist und eine überprüfbare Build-Herkunft bietet. Mit „Code Provenance” (deutsch: Quellcode-Herkunft) kann vom Binärcode ausgehend der Quellcode zurückverfolgt werden, um Manipulationen zu verhindern und sicherzustellen, dass der Quellcode, der ausgeführt wird, auch tatsächlich der gewünschte Quellcode ist. Darüber hinaus generiert die neue Build Integrity-Funktion automatisch digitale Signaturen, die dann vor der Bereitstellung durch Binäre Autorisierung validiert werden können.

3. Kostenkontrolle und flexible Rechnungsstellung

Workloads mit stark variierenden Datenverkehrsmustern oder solche mit generell geringem Datenverkehr eignen sich hervorragend für die schnelle automatische Skalierung und die Scale-to-Zero-Eigenschaften von Serverless. Workloads mit einem kontinuierlichen Datenverkehrsmuster können allerdings teuer werden, wenn sie mit hochauflösenden nutzungsabhängigen Abrechnungsmodellen betrieben werden. So leistungsfähig die unbegrenzte automatische Skalierung sein mag, so schwierig kann es sein, die Kosten für den Betrieb einer Anwendung vorherzusagen.

Cloud Run bietet mehrere Funktionen, die Sie bei der Verwaltung und Senkung der Kosten serverloser Workloads unterstützen. Organisationen mit stabiler, gleichmäßiger und vorhersehbarer Nutzung können jetzt direkt in der Abrechnungsoberfläche Verträge für zugesicherte Nutzung mit erheblichen Preisnachlässen abschließen. Es fallen keine Vorauszahlungen an, und mit den Rabatten können Sie Ihre Ausgaben um bis zu 17 % senken.

Mit der „Always-on-CPU”-Funktion entfallen alle Gebühren pro Anfrage und das zu einem um 25 % niedrigeren Preis gegenüber dem Pay-per-Request-Modell. Dieses Modell wird im Allgemeinen für Anwendungen mit vorhersehbaren Datenverkehrsmustern bevorzugt, oder für Anwendungen, die eine Hintergrundverarbeitung erfordern.

Für Anwendungen, die eine hohe Verfügbarkeit bei globaler Bereitstellung erfordern, können herkömmliche Plattformen mit regional übergreifenden Deployment enorm kostspielig sein. Der Grund: jede redundante Region muss Kapazität für den gesamten globalen Datenverkehr aufweisen. Das Scale-to-Zero-Verhalten von Cloud Run und seiner Verfügbarkeit in allen GCP-Regionen ermöglicht eine global verteilte Anwendung, ohne dass in einer Region festgelegte Kapazitäten zugewiesen werden müssen.

4. Integrierte DevOps-Erfahrung und Best Practices

Wenn es um Einfachheit und Produktivität geht, müssen vor allem die Einstiegshürden niedrig sein, damit sich Entwickler*innen ganz auf den Code konzentrieren können. Diese Einfachheit muss über die Implementierung (Day-One-Operations) hinausgehen und gängige DevOps-Methoden unterstützen.

Cloud Run liefert eine durchgängige DevOps-Unterstützung, vom Quellcode bis hin zu den Tools für den laufenden Betrieb (Day-Two-Operations):

  • Beginnen Sie mit einem Container oder verwenden Sie Buildpacks zur Erstellung von Container-Images direkt aus dem Quellcode heraus. Dazu müssen Sie sich nicht einmal mit Docker oder Containern auskennen – mit einem einzigen „gcloud run deploy“-Befehl können Sie Ihren Code für Cloud Run erstellen und bereitstellen.
  • Integrierte Tutorials im Cloud Shell-Editor und Cloud Code machen es leicht, mit Serverless vertraut zu werden ohne zwischen Registerkarten, Dokumenten, Ihrem Terminal und Ihrem Quellcode hin und her zu wechseln. Sie können sogar eigene Tutorials schreiben, damit Best Practices weitergeben und neue Mitarbeiter*innen schneller einarbeiten.
  • Experimentieren Sie und testen Sie Ideen umgehend. Mit nur wenigen Klicks können Sie graduelle Rollouts und Rollbacks vornehmen und ein erweitertes Management des Netzwerkverkehrs in Cloud Run realisieren.
  • Erhalten Sie Zugang zu verteiltem Tracing ohne zusätzlich Installation oder Konfiguration, um Leistungsengpässe in Produktion in Minutenschnelle finden zu können.

5. Portabilität

Der Quellcode, den Sie schreiben, und die Anwendungen, die Sie ausführen, sollten nicht an einen einzigen Cloud-Anbieter gebunden sein. Ihrer Anwendung sollte die Vorteile der Plattform des Cloud-Anbieters nutzen, ohne dass Sie an ihr Änderungen vornehmen müssen, die Sie an einen bestimmten Cloud-Anbieter binden.

Cloud Run führt standardmäßige Docker-Container-Images aus. Bei der Implementierung von Quellcode direkt in Cloud Run verwenden wir Open-Source-Buildpacks, um Ihren Quellcode in einen Container zu verwandeln. Ihr Quellcode, das von Ihnen verwendete Buildpack und Ihr Container können jederzeit lokal, vor Ort oder in einer anderen Cloud ausgeführt werden.

Worauf es ankommt

Diese fünf Trends sind wichtige Vergleichskriterien für die verschiedenen serverlosen Lösungen, die in diesem Jahr auf dem Markt kommen. Die beste serverlose Lösung sollte es Ihnen ermöglichen, ein breites Anwendungsspektrum ohne Sprach-, Netzwerk- oder regionale Einschränkungen auszuführen. Außerdem sollte die Lösung eine sichere Mandantenfähigkeit mit einer integrierten sicheren Software-Lieferkette bieten. Zuletzt sollten Sie sich fragen, wie die Plattform zur Kostenreduktion beiträgt, ob sie gängige DevOps-Methoden integriert und Portabilität gewährleistet. Wenn Sie diese Fragen für sich beantwortet haben, empfehlen wir Ihnen, Cloud Run zu testen, und zwar mit diesen Schnellstartanleitungen.

Gepostet in