Serverless Computing: Ein Überblick zu den Services von Amazon und Microsoft

Im Serverless-Modell werden Anwendungskomponenten wie Datenbanken oder Komponenten zur Datenverarbeitung automatisch und bedarfsabhängig vom Cloud-Provider zur Verfügung gestellt und betrieben. Die Verantwortung des Cloud-Nutzers liegt darin, diese Ressourcen zu konfigurieren – etwa durch eigenen Code oder anwendungsspezifische Parameter – und sie zu kombinieren.

Kosten fallen nach verbrauchten Kapazitäten an und die Skalierung erfolgt automatisch auf Basis der Last. Bereitstellung, Skalierung, Wartung, Hochverfügbarkeit und Verwaltung von Ressourcen liegen in der Verantwortung des Cloud-Providers.

Serverless eignet sich besonders für schwer vorhersehbare oder kurzlebige Arbeitslasten, für Automatisierungsaufgaben oder Prototypen. Serverless ist weniger ideal für ressourcenintensive, langlebige und planbare Aufgaben, da in diesem Fall die Kosten signifikant höher sein können als bei selbstverwalteten Ausführungsumgebungen.

Building Blocks

Im Rahmen eines Serverless-Adventskalenders wurden die Cloud-Services von AWS und Azure gegenübergestellt. Die Türchen öffnen sich unter dem Hashtag #ZEISSDigitalInnovationGoesServerless.

KategorieAWSAzure
COMPUTE
Serverless Function
AWS LambdaAzure Functions
COMPUTE
Serverless Containers
AWS Fargate
Amazon ECS/EKS
Azure Container Instances / AKS
INTEGRATION
API Management
Amazon API GatewayAzure API Management
INTEGRATION
Pub-/Sub-Messaging
Amazon SNSAzure Event Grid
INTEGRATION
Message Queues
Amazon SQSAzure Service Bus
INTEGRATION
Workflow Engine
AWS Step FunctionsAzure Logic App
INTEGRATION
GraphQL API
AWS AppSyncAzure Functions mit Apollo Server
STORAGE
Object Storage
Amazon S3Azure Storage Account
DATA
NoSQL-Datenbank
Amazon DynamoDBAzure Table Storage
DATA
Storage Query Service
Amazon Aurora ServerlessAzure SQL Database Serverless
SECURITY
Identity Provider
Amazon CognitoAzure Active Directory B2C
SECURITY
Key Management
AWS KMSAzure Key Vault
SECURITY
Web Application Firewall
AWS WAFAzure Web Application Firewall
NETWORK
Content Delivery Network
Amazon CloudFrontAzure CDN
NETWORK
Load Balancer
Application Load BalancerAzure Application Gateway
NETWORK
Domain Name Service
Amazon Route 53Azure DNS
ANALYTICS
Data Stream
Amazon KinesisAnalytics
ANALYTICS
ETL Service
AWS GlueAzure Data Factory
ANALYTICS
Storage Query Service
Amazon AthenaAzure Data Lake Analytics

Einen Überblick zu den genannten Services und ihren Eigenschaften sowie einige beispielhafte Architekturmuster haben wir in Form eines Posters zusammengetragen. Dieser Überblick ermöglicht einen leichten Einstieg in das Thema Serverless-Architektur.

Abbildung 1: Vorschau Poster „Serverless Computing“

Gerne senden wir Ihnen das Poster auch in Originalgröße (1000 x 700 mm) zu. Schreiben Sie uns dazu einfach eine E-Mail mit Ihrer Adresse an info.digitalinnovation@zeiss.com. Beachten Sie hierzu bitte unsere Datenschutzhinweise.

Best Practices für Serverless-Funktionen

Jede Funktion sollte nur eine Sache tun (Single Responsibility Principle). Dies verbessert Wartbarkeit und Wiederverwendbarkeit. Speicherkapazität, Zugri­ffsrechte und Timeout-Einstellung können gezielter konfiguriert werden.

Mit der Erhöhung des zugewiesenen Speichers einer Lambda-Funktion werden auch CPU‑ und Netzwerkkapazität erhöht. Ein optimales Verhältnis aus Ausführungszeit und Kosten sollte per Benchmarking gefunden werden.

Eine Funktion sollte keine weitere Funktion synchron aufrufen. Das Warten führt zu unnötigen Kosten und erhöhter Kopplung. Stattdessen ist asynchrone Verarbeitung, z. B. über Message Queues, einzusetzen.

Das Deployment-Paket einer Funktion sollte so klein wie möglich sein. Auf große externe Bibliotheken ist zu verzichten. Das verbessert die Kaltstartzeit. Wiederkehrende Initialisierungen von Abhängigkeiten sollten außerhalb der Handler-Funktion stattfinden, damit sie nur einmalig beim Kaltstart ausgeführt werden müssen. Es ist ratsam, betriebliche Parameter über Umgebungsvariablen einer Funktion abzubilden. Das verbessert die Wiederverwendbarkeit.

Die Zugriffsberechtigungen auf andere Cloud-Ressourcen sind für jede Funktion individuell und so restriktiv wie möglich zu definieren. Zustandsbehaftete Datenbankverbindungen sind zu vermeiden. Stattdessen sollten Service-APIs verwendet werden.

AWS Athena: SQL – nur ohne Datenbank

Eine besondere Herausforderung vieler Unternehmen besteht darin, dass Daten oft noch Jahre später für neue Anwendungsfälle von Interesse sein können, jedoch zu diesem Zeitpunkt bereits längst entsorgt wurden oder sich deren Schemata in der Zwischenzeit mehrfach geändert haben. Auch kommt es oft vor, dass Daten bereits vor dem ersten Speichern selektiert, aggregiert oder transformiert wurden und somit für die spätere Verwendung nicht mehr komplett vorliegen.

Gerade für datenintensive Vorhaben im Bereich von Data Science oder KI müssten passende Daten daher erst neu gesammelt werden, was eine starke Verzögerung in den geplanten Vorhaben verursacht.

Wie können Data Lakes helfen?

Data Lakes sind ein Architekturpattern, welches darauf abzielt, Daten aus verschiedenen Applikationen in einem zentralen Ökosystem langfristig verfügbar zu machen. Daten möglichst aller Bereiche und Abteilungen eines Unternehmens werden an einer zentralen Stelle vorgehalten. Im Gegensatz zu klassischen Data Warehouses werden dabei jedoch immer auch die Rohdaten gespeichert, oft in Objektspeichern wie S3.

Der Vorteil dabei ist, dass die Informationen in vollem Umfang zur Verfügung stehen und nicht wie in klassischen Data Warehouses bei der ersten Speicherung bereits reduziert oder transformiert werden. Dadurch gibt es in dem zentralen Datenpool kein an spezielle Nutzerbedürfnisse angepasstes Schema, sodass sich die Konsumenten die Bedeutung der Daten in diesem Fall selbst herleiten müssen.

Um den Vorteil von Data Lakes effizient nutzen zu können, sollten diese bereichsübergreifend zur Verfügung gestellt werden. Dadurch können die Daten an allen Stellen abgerufen werden, an denen sie benötigt werden.

Dabei gibt es die Möglichkeit, die Daten in verschiedenen Zonen abzulegen. Dies ermöglicht den Zugriff für verschiedene Abstraktionslevel. So dienen bspw. für Data Scientists Low-Level-Tools wie Athena dazu, einen sehr tiefen und detaillierten Einblick in den Datenpool zu bekommen, während für Fachabteilungen eher spezialisierte Data Marts bereitgestellt werden sollten.

Was bietet Amazon Athena?

Mit Amazon Athena lassen sich SQL-Abfragen direkt auf (semi-) strukturierten Daten in S3-Buckets ausführen – ohne die Notwendigkeit einer Datenbank mit einem festen Schema. Auch vorbereitende ETL-Prozesse (Extract Transform Load), wie aus dem Bereich klassischer Data Warehouses bekannt, sind für die Arbeit mit den Rohdaten nicht notwendig.

Da Amazon Athena in den Bereich der Serverless-Dienste fällt, ist keinerlei Provision von Infrastruktur erforderlich. Dies geschieht automatisiert und für den Nutzer transparent im Hintergrund. Das spart zum einen Aufwand und Spezialwissen, zum anderen fallen bei der Nutzung des Dienstes nur Kosten pro Gigabyte der aus S3 gelesenen Daten an.

Vortrag zum Online-Campus

Einen tieferen Einblick zu den technischen Hintergründen sowie den Einsatz- und Optimierungsmöglichkeiten gibt es im nachfolgender Aufzeichnung von unserem ersten Online-Campus. In diesem Video werden Erfahrungen aus der Praxis diskutiert und eine kurze Live-Demo in der AWS-Konsole gezeigt.

Greetings from Santa Cloud

Was uns Santa über die Cloud zu berichten hat …

Mit unserer diesjährigen Grußaktion möchten wir das Thema Cloud auch in Ihre Weihnachtsstube bringen. Vielleicht haben Sie schon einmal darüber nachgedacht, für Ihre digitalen Lösungen Cloud-Plattformen wie AWS oder Azure zu nutzen. Vielleicht nutzen Sie auch bereits erste Anwendungen in der Cloud oder sie haben bisher noch gar keine Berührungspunkte mit diesem Thema.

Santa Cloud möchte Ihnen eine klare Botschaft übermitteln:

Statt monolithische Anwendungen auf Application Servern zu entwickeln und zu betreiben, sollten Sie sich auf die Lieferung wertschöpfender Features für Ihre Nutzer und Ihr Geschäft konzentrieren.“

Ein fröhlicher Weihnachtsmann sitzt auf einer Wolke.

Durch den Einsatz skalierbarer Cloud-Lösungen erhalten Sie mehr Flexibilität und steigern Ihre Innovationskraft. Möglicherweise ist unser kleiner Weihnachtsgruß ein erster Anreiz für Sie. Santa Cloud würde sich freuen!

Was wir gemeinsam Gutes tun wollen …

Doch nicht nur Ihnen wollen wir neue Möglichkeiten eröffnen. Deshalb widmen wir uns in diesem Jahr einem ganz besonderen Projekt der Kindernothilfe, welches “Kleinen Herzen große Chancen gibt”. Mit der 1+3=4 Weihnachtsaktion werden öffentliche Zuschüsse wie z.B. vom Bundesministerium für wirtschaftliche Zusammenarbeit und Entwicklung (BMZ) beantragt. Durch diese Kofinanzierung wird die Spende vervierfacht. 

Mit unterschiedlichen Projekten bekämpft die Kindernothilfe den Hunger weltweit. So wird beispielsweise durch die Vermittlung von Wissen gezeigt, wie sich mehr Ernte-Erträge erbringen lassen. Es entstehen neue Einnahmequellen durch den Aufbau von Schafs-, Ziegen- oder Hühnerzuchten und es werden neue Möglichkeiten für den Anbau von Pflanzen, insbesondere von Kaffee, geschaffen.

Blaues Kreuz der Kindernothilfe

Weihnachtsaktion
“1 + 3 = 4”

Und wie Sie uns und Santa Cloud dabei helfen können …

Wir haben Ihnen einen kleinen Holzanhänger geschickt. Senden Sie einfach ein Foto von dem Anhänger an Ihren Ansprechpartner und zeigen uns, wo Santa Cloud Sie zur Weihnachtszeit oder über Weihnachten begleitet. Der Kreativität sind dabei keine Grenzen gesetzt.

Wir sammeln Ihre Bilder und spenden für die ersten 50 eingesendeten Fotos jeweils zehn Euro an die Kindernothilfe. Mit Ihrer Hilfe können wir unser Spendenziel von 2.000 Euro erreichen. Also machen Sie mit.

Einsendeschluss ist der 31. Januar 2020. Wir freuen uns über jede Rückmeldung!

Grün-weiß-gestreiftes Geschenk mit roter Schleife
Grünes Geschenk mit weißen Punkten und roter Schleife

Wir danken Ihnen für Ihre Unterstützung und wünschen Ihnen ein gesundes, frohes und erfolgreiches Jahr 2020!