SERVERLOSE ARCHITEKTUR FÜR CLOUD-BASIERTE APPS: TECHNOLOGIE-ANBIETER UND GRENZEN

SERVERLOSE ARCHITEKTUR FÜR CLOUD-BASIERTE APPS: TECHNOLOGIE-ANBIETER UND GRENZEN

2017 war sicherlich ein wegweisendes Jahr für die Einführung serverloser Architekturen. Im Jahr 2018 verlor der Trend nicht an Dynamik. 2019 wird sich diese Entwicklung voraussichtlich fortsetzen. Auf der großen ServerlessConf 2018 in San Francisco war die Begeisterung greifbar, als Entwickler und Technologie-Unternehmer ihre Ansätze und Erfahrungen zum serverlosen Ansatz diskutierten.

 

Eine aktuelle Analyse zu AWS-Anwendern ergab, dass die serverlose Adoption 2,5-mal schneller wächst als die Adoption von Servercontainern. Hierdurch wird klar, dass die serverlose Architektur im Cloud Computing für Unternehmen obligatorisch ist und sich in den kommenden Jahren weiter durchsetzen wird. Serverlose Architekturen ermöglichen es Entwicklern, Programme und Services zu erstellen und zu betreiben, ohne sich mit den komplexen Prozessen, die mit dem Betrieb eines umfangreichen Server-Frameworks einhergehen, beschäftigen zu müssen.

 

Die Experten von K&C realisieren Backend-Apps für zahlreiche Kunden aus unterschiedlichsten Branchen. Im Laufe des letzten Jahres haben wir die Ansätze, die wir bei der Erstellung dieser Apps genutzt haben, kontinuierlich dokumentiert und überprüft. Da wir unseren Aufgaben mit Leidenschaft begegnen, möchten wir Sie auf dieser Seite an einigen Erkenntnissen teilhaben lassen.

Anbieter serverloser Technologien

Auf den Zug der serverlosen Ansätze sind in den vergangenen Jahren mehrere Technologie-Anbieter aufgesprungen. Obwohl diese oftmals hervorragende Funktionalitäten anbieten, hinken sie den Marktführern Amazon, (Microsoft) Azure und Google immer noch hinterher.

Lambda — Amazon Web Services

Der Name Amazon Web Services (AWS) kommt einem häufig zuerst in den Sinn, wenn es um Cloud Computing geht. Amazon ist der größte Anbieter im Cloud-Bereich und verfügt über ein umfangreicheres Portfolio an unterstützenden Tools und Ressourcen als jeder andere Wettbewerber. K&C hat sich bereits umfassend mit AWS-Beratung beschäftigt, woraus wertvolle Erkenntnisse entstanden sind.

 

AWS Lambda ist ein Feature-as-a-Service, das eine serverlose Entwicklung von Cloud-basierten Anwendungen in der AWS Cloud ermöglicht. Es versetzt Entwickler in die Lage, JavaScript und andere verwandte Sprachen zu nutzen. Weitere eingesetzte Technologien sind Node.js, Python, Java und die .NET-Sprachen der Microsoft-Familie (C#, Visual Basic und F#).

 

Ein wesentlicher Pluspunkt bei der Implementierung von AWS Lambda ist die umfassende und gut geschriebene Dokumentation. Sie spiegelt den Reifegrad des Projekts klar wider. Aktuelle Informationen oder neue Funktionalitäten können online eingesehen werden. Missverständnisse werden hierdurch aus dem Weg geräumt.

MEHR

Lambda unterstützt die Bereitstellung serverloser, skalierbarer Anwendungen, die zudem eine breite Funktionalität erfordern:

 

– Cloud-Logikschicht

– Orchestrierung und Statusmanagement

– Anpassungsfähige Datenquellen

– Framework für die Anwendungsmodellierung

– Entwicklungsumgebung

– Anwendungs- und Integrationsbibliotheken

– Sicherheit und Zugriffskontrolle

– Zuverlässigkeit und Leistungsfähigkeit

– Globale Skalierung und Reichweite

 

Lambda verschaffte sich durch den Erfolg einiger hochkarätiger Kunden wie InVision, CircleCI und 9GAG zusätzliche Bekanntheit und Glaubwürdigkeit. Eine weitere Stärke ist die „defensive“ Preisgestaltung des Standardmodells, das bis zu einer Million Anfragen und 400 Terabyte-Sekunden Rechenzeit pro Monat beinhaltet. Dies ist mehr als ausreichend, um die Stärken und Schwächen im Kontext individueller Anforderungen zu evaluieren. Die Kosten bleiben hierbei im Rahmen.

Azure Functions (Microsoft Azure)

Selbstverständlich verfügt K&C auch über umfangreiche Consulting-Erfahrung im Azure-Umfeld. Microsoft baut seine Funktionalitäten (ebenso wie seinen Kundenstamm) in diesem Bereich rasant aus, um AWS Marktanteile streitig zu machen. Die unterstützten Ressourcen ähneln dem AWS-Angebot stark. Allerdings umfasst Azure einige zusätzliche Funktionen, die speziell für die .NET- und Typescript-Kundschaft entwickelt wurden.

Azure Functions ist das Non-Server-Angebot von Microsoft. Das Modell umfasst ähnliche Services wie AWS Lambda. Zusätzlich zu JavaScript unterstützt Azure die folgenden Sprachen: Node.js, C#, F#, Python, PHP, Bash, Batch und PowerShell.

 

Die Microsoft-Entwickler-Community profitiert von sorgfältigen Dokumentationen sämtlicher Produkte. Weitere Verbesserungen lassen sich in diesem Umfeld gut realisieren. Das attraktive Preismodell von Azure sorgt darüber hinaus für ein stetiges Wachstum der Community. Setzt man die gleiche Auslastung voraus, so ist Azure im Vergleich der großen Anbieter am kostengünstigsten.

 

Wenn Sie sich zwischen den beiden führenden Anbietern (AWS und Azure) entscheiden müssen, wird vermutlich ausschlaggebend sein, wer die komfortabelste Umgebung und den besten Support für Ihre Technologien anbietet. Zögern Sie nicht uns anzusprechen, für den Fall, dass Sie für diese Entscheidung Unterstützung benötigen. Gerne analysieren unsere Experten Ihre Anforderungen und erarbeiten mit Ihnen gemeinsam die für Sie beste Lösung.

Cloud Functions (Google Cloud Platform)

Es überrascht wenig, dass Google (Alphabet) den Non-Server-Markt seinen Wettbewerbern AWS und Azure nicht überlässt. Googles Cloud Functions sticht im Vergleich zu den beiden Alternativprodukten nicht maßgeblich hervor. Einige der angebotenen Features sind dennoch erwähnenswert.

 

Aktuell unterstützt Google Cloud Functions nur noch eine Sprache – JavaScript. Es wird jedoch erwartet, dass in naher Zukunft zahlreiche Alternativen umgesetzt werden, um mit AWS und Azure gleichzuziehen.

 

Google legt Wert auf ausführliche, leicht verständliche und einfach anzuwendende Dokumentationen. Dies zeigt deren hoher Detailgrad deutlich.

 

Das Preismodell für Google Cloud Functions unterscheidet sich leicht von AWS und Azure. Das kostenfreie Basisangebot beinhaltet 2 Millionen Aufrufe pro Monat. Für jeden weiteren Aufruf wird eine Gebühr von $0,00000000004 berechnet.

Einschränkungen von serverloser Architektur

Wie eingangs erwähnt, möchten wir nun einige Einschränkungen aufzeigen, die bei der Implementierung einer serverlosen Architektur derzeit noch bestehen.

EINSICHTNAHME IST KOMPLEX

Jede Diskussion über die Nachteile eines serverlosen Ansatzes beginnt zwangsläufig mit dem Thema der umständlichen Einsichtnahme. Die von Entwicklern dringend benötigten Einblicke in ihre Funktionen werden erschwert. Ein Großteil der Entwickler hat hierdurch schlicht keine Kenntnis darüber, wie neue Funktionen einzusetzen sind. Selbst einfachste Aufgaben lassen sich dann nicht erfüllen.

 

Obwohl diese Problematik komplex ist, sollte sich die Beobachtbarkeit im serverlosen Bereich in den kommenden Jahren deutlich verbessern. In der Zwischenzeit sollte der Ball jedoch flach gehalten werden.  Einige Überwachungs- und Logging-Plattformen haben in kurzer Zeit bereits massive Verbesserungen erfahren. Serverlose Funktionen sind zustandslos, was die Fehlersuche in vielen Fällen erschwert.

START-UP-LATENZ UND “KALTSTARTS”

Beim Thema „serverlos“ kommen uns oftmals auch „Kaltstarts“ in den Sinn.

 

Glücklicherweise existiert ein relativ einfacher Workaround: Halten Sie Ihre Funktionen einfach „warm“. Dies ist realisierbar, wenn Sie sie in regelmäßigen Abständen aufrufen. Beachten Sie jedoch, dass dies nur bei kleineren Funktionen oder einfachen Workflows funktioniert.

 

Wenn Sie die Kaltstartzeiten reduzieren möchten, sollten Sie die Größe Ihrer Anwendung und damit Ihren Code stets minimieren. Außerdem empfehlen wir Ihnen, die eingesetzte Sprache sorgfältig zu wählen – wir präferieren im Allgemeinen Python oder Go.

AUSFÜHRUNGSZEIT

FaaS-Funktionen sind in der Regel durch die maximale Dauer eines Aufrufs eingeschränkt. Derzeit beträgt die Reaktionszeit der AWS Lambda-Funktion auf ein Ereignis etwa 5 Minuten. Microsoft Azure und Google Cloud Functions verhalten sich in dieser Hinsicht vergleichbar.

 

Hieraus ergibt sich die Notwendigkeit, bestimmte Aufgabenklassen neu zu strukturieren, um sie für FaaS-Funktionen nutzbar zu machen. Möglicherweise müssen Sie mehrere verschiedene koordinierte FaaS-Funktionen erstellen, während in einer traditionellen Umgebung nur ein Langzeit-Task erforderlich wäre, der sowohl die Koordination als auch die Ausführung übernimmt.

BESTEHENDE INFRASTRUKTUR

Serverless Computing wie AWS Lambda bringt zweifelsfrei Mehrwert. Zögern Sie also nicht, die Technologie in Ihre Cloud DevOps-Lieferkette zu integrieren. Fairerweise muss jedoch auch erwähnt werden, dass Serverless Computing zwar für zahlreiche Aufgaben unersetzlich ist. Andere Technologien kann es aber nach wie vor nicht ersetzen. Dies ist der Fall, wenn es um die Bereitstellung und Verwaltung eigener Container geht. Serverless Computing ist so konzipiert, dass es zwar Container nutzt, diese jedoch nicht ersetzt.

SICHERHEIT

Zunächst sei erwähnt, dass das JSON-Parsing relativ kompliziert sein kann. Glücklicherweise unterstützt AWS das Event Payload in einer definierten Struktur. Wenn Processing Messages in der JSON Payload selbst eingebunden sind, müssen Sie nur die JSON Schema Validation Tools durchsuchen. Nach der Validierung prüfen Sie dann die Datentypen der Attribute in JSON. Wenn Sie binäre Objekte nutzen, sollten Sie sich außerdem die Pakete ansehen, die für die Überprüfung der Inhalte relevant sind.

TESTS UND CI/CD

Ihre CD-Pipeline sollte als Code erfasst werden und einer Versionskontrolle unterliegen. Builds sollten replizierbar sein. Abhängigkeiten, einschließlich transienter Abhängigkeiten, sollten versionsgenau gesperrt werden. Wenn es sich um eine Minor/Patch-Version handelt, können sich Updates zwischen zwei Builds einschleichen. In diesem Fall kann der Build nicht reproduziert werden.

Zusammenfassung

Die Migration auf eine serverlose Architektur sollte wohlüberlegt sein. Um von einem serverlosen Ansatz zu profitieren, müssen Sie für Transparenz zu folgenden Fragestellungen sorgen: Warum benötige ich diesen Ansatz? Wie wird er umgesetzt? Mit welchen Nachteilen werden Sie möglicherweise zu kämpfen haben?

 

Das Team von K&C befasst sich bereits seit mehreren Jahren mit serverloser Architektur. Es verfügt über umfangreiche Erfahrung in den Bereichen Cloud DevOps Consulting, AWS Consulting und Hybrid-Cloud-Lösungen. Sie haben Zweifel, ob „serverless“ der richtige Ansatz für Sie ist? Dann nehmen Sie einfach Kontakt mit uns auf und lassen Sie sich unverbindlich beraten!

Kommentar hinzufügen

E-Mail-Adresse ist schon registriert. Bitte benutze Das Login-Formular oder nenne eine andere.

Du hast einen falschen Nutzernamen oder Passwort eingegeben

Sorry that something went wrong, repeat again!
Kontaktieren Sie uns