Über unsMediaKontaktImpressum
Frank Pientka 07. Februar 2017

Function as a Service: Was ist serverless Computing?

Mit serverless Computing und DevOps rückt  die Entwicklung in den Vordergrund. © francis bonami / Fotolia.com
© francis bonami / Fotolia.com

Nicht nur für Start-ups, sondern auch für immer mehr Projekte in etablierten Firmen werden cloud-native Anwendungen zum neuen Standard für die digitale Transformation.

Alles nur (ge)Cloud

Standen bei den ersten Gehversuchen in der Cloud eher Infrastrukturdienste (IaaS) und gehostete Software (SaaS) im Vordergrund, werden jetzt immer mehr PaaS-(Platform as a Service)-Lösungen eingesetzt. Eine gerade beliebte spezielle Spielart von Microservices sind serverless Architekturen. Angefeuert durch Microservices, gibt es von einigen Cloud-Anbietern die Möglichkeit, kleine Funktionen ereignisgesteuert aufzurufen und bedarfsgerecht abzurechnen. Als FaaS (Function as a Service) stellen diese in Kombination mit Container as a Service-(CaaS)-Lösungen und bestehenden Cloud-Diensten ein attraktives Angebot dar. Wir erklären den neuen Ansatz.

Abb.1: Container, Platform, Function As a Service. © Frank Pientka
Abb.1: Container, Platform, Function As a Service. © Frank Pientka

Small is beautiful

Im Rahmen der Energiekrise war "Small is beautiful" ein Ruf zur "Rückkehr zum rechten Maß" und einen angemessenen Umgang mit Ressourcen zu finden. In der digitalisierten Welt beschreibt "Software is eating the world" einen Trend, dass Software immer mehr zur Grundlage von Geschäftsprozessen, neuen Geschäftsmodellen und damit der entscheidende Faktor bei der digitalen Transformation wird. Die Cloud spielt dabei eine herausragende Rolle. Mit serverless Computing und der DevOps-Bewegung rückt wieder die Entwicklung in den Vordergrund. Eine gute Einführung in serverless Computing und Architekturen findet sich beim Beratungsunternehmen Thoughtworks Interner Link[1,2].

Dabei geht es einerseits darum, einzelne Funktionen schneller und mit nutzungsabhängigen Kosten dynamisch und flexibel zur Verfügung zu stellen – quer durch alle Branchen. Denn kein Server ist einfacher zu managen als gar kein Server. Wer braucht noch Server, wenn es Dienste gibt? Querschnittliche Aufgaben wie Sicherheit oder Überwachung werden durch spezialisierte Komponenten umgesetzt.

Damit solche rein auf die Fachlichkeit konzentrierten leichtgewichtigen Dienste erstellt werden können, muss die Architektur des Gesamtsystems neu gedacht und gebaut werden. Dadurch, dass diese Dienste in beliebiger Anzahl verteilt und zustandslos ablaufen, benötigt man neben einem automatisierten Deployment-Prozess auch viele durch DevOps bekannt gewordene Prinzipien und Muster. Dazu gehören die zwölf Faktoren eines konfigurierbaren, überwachbaren und unabhängig lauffähigen Dienstes Interner Link[3], als auch die Muster zur Umsetzung der vier Prinzipien einer reaktiven Architektur. Reaktive Systeme können die Kriterien antwortbereit, widerstandsfähig, elastisch und nachrichtenorientiert erfüllen Interner Link[4].

Abb.2: Kennzeichen reaktiver Systeme. © Frank Pientka
Abb.2: Kennzeichen reaktiver Systeme. © Frank Pientka

Function as a Service in der Cloud

Der älteste und sehr etablierte Cloud-Anbieter ist Amazon mit seinen Amazon Web Services (AWS). Diese entstanden vor 10 Jahren als Abfallprodukt des enormen Rechenbedarfs des Amazon-Shops. Das Angebot der dort inzwischen zur Verfügung stehenden Services ist inzwischen kaum mehr zu überblicken. Im Zuge von DevOps und Microservices gibt es seit drei Jahren AWS Lambda (Motto "Run Code, Not Servers"). Damit lassen sich leichter reaktive und event-orientierte Architekturen im AWS-Universum umsetzen. Doch auch die Konkurrenten Microsoft (Azure Functions), Google (Functions) und IBM (OpenWhisk) haben seit kurzem serverless Computing im Angebot. Neben den Lizenzen liegen den Angeboten auch unterschiedliche Betriebs- und Kostenmodelle zugrunde.

Der typische Aufbau einer serverless Computing-Architektur ist in Abb.3 dargestellt. Es gibt eine Funktion, die aufgrund eines Ereignisses, in einem bestimmten Kontext gestartet wird und Geschäftslogik oder andere Backend-Dienste aufruft. Dessen Ergebnis wird dann asynchron zurückgeliefert. Es kann jedoch auch nur der Start eines Batch-Programmes sein.

Abb.3: PaaS = FaaS + BaaS. © Frank Pientka
Abb.3: PaaS = FaaS + BaaS. © Frank Pientka

Wer sich noch an Stored Procedures und Trigger bei relationalen Datenbanken erinnert, wird hier einige Ähnlichkeiten aber auch entscheidende Unterschiede feststellen. Weil Stored Procedures eher für datenorientierte Verarbeitung gedacht waren, war es schwierig, mit der eingeschränkten Syntax komplizierte Geschäftslogiken abzubilden oder Integrationen weitere Systeme vorzunehmen.

Mangels Standards konnten diese nur mit großem Aufwand von einem Datenbankprodukt auf ein anderes portieren werden. Ebenso war das Deployment, Testen, die Überwachung und die Versionierung dieser Programme nur sehr eingeschränkt möglich. Letztendlich blieben sie immer ein Fremdkörper und erzeugen bis heute bei der Legacy-Ablösung große Probleme. Die serverless Computing-Funktionen sind zwar auch proprietär, jedoch zustandslos und beschränken sich bewusst selbst auf kurze und eventorientierte Teilfunktionen. Bis auf IBM OpenWhisk sind diese Plattformen jedoch nur in der Cloud verfügbar. Sie unterstützen eine Reihe von bekannten Skriptsprachen und Compilersprachen. Als Werkzeuge werden immer der Browser und die Kommandozeile unterstützt. Bei einigen Anbietern gibt es auch weitere spezialisierte Frameworks Interner Link[5] und Integrationen in die IDEs (Eclipse, Visual Studio). Die Anbieter erleichtern den Einstieg auch mit fertigen Beispielen und einer umfangreichen Dokumentation. Zum Thema serverless Computing allgemein, aber auch speziell für AWS Lambda, gibt es auch schon weiterführende Fachbücher Interner Link[6].

Ein sehr umfangreiches Thema, sind die geschätzten Kosten. Wer die entstehenden Kosten genauer abschätzen möchte, kann den Serverless Cost Calculator online zu einer Grobrechnung für die vier serverless Anbieter verwenden Interner Link[7]. Einen groben Überblick zu den serverless Computing-Angeboten gibt die folgende Tabelle.

Tabelle 1: Serverless Computing-Anbieter im Vergleich

Anbieter seit Umgebungen Cloud On Premise Lizenz
AWS Lambda [8] 2014 Node.js, Java, Python, .NET Core (C#) Ja Nein ASL
Azure Functions [9] 2016 Node.js, Java, Python, .NET (C#, F#), PHP, Bash Ja Nein MIT
Google Functions [10] 2016 (Alpha) JavaScript Ja Nein ASL
IBM OpenWhisk [11] 2014 Node.js, SWIFT Ja Ja ASL

Das Neueste und auch das Angebot, das sich noch in der Alpha-Phase befindet, ist das von Google. Dazwischen bewegen sich IBM und Microsoft, zunächst mit dem Schwerpunkt in den eigenen Produktwelten. Letztendlich bietet das Angebot von Amazon – nicht nur von der Reife, sondern auch von der Vielzahl der gut integrierten Dienste und Events – eines der attraktivsten Angebote. Aus Kostengesichtspunkten sollte man sich jedoch gut überlegen, welche Microservices für serverless Computing in Frage kommen oder ob man diese besser ins Backend verlagert.

Abb.4: Lambda in Action: PaaS = FaaS + BaaS. © Frank Pientka
Abb.4: Lambda in Action: PaaS = FaaS + BaaS. © Frank Pientka

Der Megatrend Digitalisierung erfordert ein radikales Umdenken in der Unternehmens-IT.

Bei Azure Functions haben Sie z. B. die Wahl zwischen zwei Tarifen: dem Verbrauchstarif (die verwendeten Ressourcen, wenn Ihre Funktion ausgeführt wird) oder den App Service-Tarif (wenn bereits weitere Azure-Dienste genutzt werden, sind die App-Functions kostenlos und werden über die jeweils genutzten Azure-Dienste abgerechnet). Bei AWS Lambda kann man sehr einfach die vielen anderen Amazon Web Services zunächst kostenlos nutzen, solange man die monatlichen Freikontingente für Lambdas (1 Mio. Aufrufe und 400.000 GB/s Datenverarbeitungszeit) nicht überschreitet. Die kostenlose Nutzung der anderen AWS-Dienste endet nach 12 Monaten. Bei IBM Bluemix endet die kostenlose Nutzung bereits nach 30 Tagen. Sicher sprechen IBM und Microsoft zunächst ihre Stammkunden mit ihren eigenen Produkten an. Es ist jedoch auch möglich, die Angebote der Anbieter miteinander zu kombinieren und z. B. den Storage bei Google Drive einzukaufen oder die Benutzerverwaltung bei Azure zu haben.

Fazit

Der Megatrend Digitalisierung erfordert ein radikales Umdenken in der Unternehmens-IT. Die Zeiten von Monolithen und großen Middleware- und relationalen Datenbank-Produkten neigen sich dem Ende. Das haben nicht nur die Anbieter dieser traditionelleren Produkte schmerzhaft merken müssen. Auch die damit umgesetzten Systeme sind bereits an ihre natürlichen Grenzen gestoßen.

Für die heutigen Anforderungen durch mobile, aber auch IoT-Anwendungen sind Microservices-Anwendungen, wie sie mit FaaS möglich sind, die richtige Antwort. Nur wer bereits erste Schritte mit DevOps und Cloud-Computing gegangen ist, kann den nächsten Evolutionsschritt mitgehen. Wie immer bietet dies nicht nur neue Chancen, sondern auch Herausforderungen. Die sich rasant weiterentwickelnden Cloud-Angebote bieten jedoch immer besser werdende Unterstützung und liefern Best Practice-Umsetzungen, die in eigenen Projekten gut nutzbar sind. Der Weg zur Right-Sized-IT führt für viele Unternehmen zu einer bimodalen IT-Organisation. Um Ressourcen und Kosten effizient zu nutzen, bieten die bereits existierenden serverless Computing-Angebote eine gute Ergänzung für erste Gehversuche. Geschwindigkeit und Flexibilität spielen bei einer immer weniger mit festen Budgets planbaren dynamischen IT-Landschaft eine immer größere Rolle.

Quellen
  1. Martin Fowler: Externer LinkServerless
  2. Martin Fowler: Externer LinkServerless Architectures
  3. Externer LinkDie zwölf Faktoren
  4. Externer LinkDas Reaktive Manifest
  5. Externer LinkServerless
  6. M. Hausenblas, 2017: Serverless Ops, O’Reilly Media
    D. Poccia, 2016: AWS Lambda in Action, Event-driven serverless applications, Manning
    P. Sbarski, 2017: Serverless Architectures on AWS, Manning
    JJ Geewax, 2017: Google Cloud Platform in Action, Manning
  7. Externer LinkServerless Cost Calculator
  8. Externer LinkAWS Lambda
  9. Externer LinkAzure Functions
  10. Externer LinkGoogle Functions
  11. Externer LinkIBM OpenWhisk
nach Oben
Autor

Frank Pientka

Frank Pientka ist Principal Software Architect bei der Materna GmbH in Dortmund. Als Softwarearchitekt und Mitgründer der iSAQB-Vereinigung liegt ihm mehr Qualität in der Software am Herzen.
>> Weiterlesen
Buch des Autors:

YTo2OntzOjY6ImZldXNlciI7aTowO3M6MzoicGlkIjtpOjMwODA7czozOiJjaWQiO3M6NToiMTk5MDIiO3M6NDoiY29uZiI7YTo4OntzOjEwOiJzdG9yYWdlUGlkIjtpOjgyMjtzOjEzOiJVc2VySW1hZ2VTaXplIjtpOjE4O3M6OToiYWR2YW5jZWQuIjthOjI6e3M6MTA6ImRhdGVGb3JtYXQiO3M6OToiZC1tLXkgSDppIjtzOjIxOiJzaG93Q291bnRDb21tZW50Vmlld3MiO2k6MDt9czo4OiJzaGFyaW5nLiI7YToxOntzOjEyOiJ1c2VTaGFyZUljb24iO047fXM6ODoicmF0aW5ncy4iO2E6Mjp7czoxNjoicmF0aW5nSW1hZ2VXaWR0aCI7aToxMTtzOjE2OiJyZXZpZXdJbWFnZVdpZHRoIjtpOjE2O31zOjY6InRoZW1lLiI7YToxMjp7czoyNjoiYm94bW9kZWxUZXh0YXJlYUxpbmVIZWlnaHQiO2k6MjA7czoyNDoiYm94bW9kZWxUZXh0YXJlYU5ickxpbmVzIjtpOjE7czoxNToiYm94bW9kZWxTcGFjaW5nIjtpOjQ7czoxODoiYm94bW9kZWxMaW5lSGVpZ2h0IjtpOjI1O3M6MTg6ImJveG1vZGVsTGFiZWxXaWR0aCI7aToxMzQ7czoyNjoiYm94bW9kZWxMYWJlbElucHV0UHJlc2VydmUiO2k6MDtzOjIyOiJib3htb2RlbElucHV0RmllbGRTaXplIjtpOjM1O3M6MTc6InNoYXJlYm9yZGVyQ29sb3IyIjtzOjY6ImNkZGVlYyI7czoxNzoic2hhcmVib3JkZXJDb2xvcjEiO3M6NjoiYWRhZWFmIjtzOjExOiJib3JkZXJDb2xvciI7czo2OiJkOGQ4ZDgiO3M6MjE6InNoYXJlQ291bnRib3JkZXJDb2xvciI7czo2OiJlM2UzZTMiO3M6MjA6InNoYXJlQmFja2dyb3VuZENvbG9yIjtzOjY6ImZmZmZmZiI7fXM6MTQ6ImRhdGVGb3JtYXRNb2RlIjtzOjQ6ImRhdGUiO3M6MTI6IlJlcXVpcmVkTWFyayI7czoxOiIqIjt9czo0OiJsYW5nIjtzOjI6ImRlIjtzOjM6InJlZiI7czoxNjoidHRfY29udGVudF8xOTkwMiI7fQ%3D%3DYTo0OntzOjQ6ImNvbmYiO2E6MzM6e3M6MTc6InVzZVdlYnBhZ2VQcmV2aWV3IjtzOjE6IjAiO3M6MjI6InVzZVdlYnBhZ2VWaWRlb1ByZXZpZXciO3M6MToiMCI7czoyMDoid2VicGFnZVByZXZpZXdIZWlnaHQiO3M6MjoiNzAiO3M6MjA6Im1heENoYXJzUHJldmlld1RpdGxlIjtzOjI6IjcwIjtzOjMxOiJ3ZWJwYWdlUHJldmlld0Rlc2NyaXB0aW9uTGVuZ3RoIjtzOjM6IjE2MCI7czozODoid2VicGFnZVByZXZpZXdEZXNjcmlwdGlvbk1pbmltYWxMZW5ndGgiO3M6MjoiNjAiO3M6Mjc6IndlYnBhZ2VQcmV2aWV3Q2FjaGVUaW1lUGFnZSI7czozOiIxODAiO3M6MzM6IndlYnBhZ2VQcmV2aWV3Q2FjaGVUaW1lVGVtcEltYWdlcyI7czoyOiI2MCI7czozMDoid2VicGFnZVByZXZpZXdDYWNoZUNsZWFyTWFudWFsIjtzOjE6IjAiO3M6Mjg6IndlYnBhZ2VQcmV2aWV3TnVtYmVyT2ZJbWFnZXMiO3M6MjoiMTAiO3M6Mzg6IndlYnBhZ2VQcmV2aWV3U2Nhbk1pbmltYWxJbWFnZUZpbGVTaXplIjtzOjQ6IjE1MDAiO3M6MzA6IndlYnBhZ2VQcmV2aWV3U2Nhbk1pbkltYWdlU2l6ZSI7czoyOiI0MCI7czozMDoid2VicGFnZVByZXZpZXdTY2FuTWF4SW1hZ2VTaXplIjtzOjM6IjQ1MCI7czoyOToid2VicGFnZVByZXZpZXdTY2FuTWluTG9nb1NpemUiO3M6MjoiMzAiO3M6MzE6IndlYnBhZ2VQcmV2aWV3U2Nhbk1heEltYWdlU2NhbnMiO3M6MjoiNDAiO3M6Mzg6IndlYnBhZ2VQcmV2aWV3U2Nhbk1heEltYWdlU2NhbnNGb3JMb2dvIjtzOjI6IjU1IjtzOjQwOiJ3ZWJwYWdlUHJldmlld1NjYW5NYXhIb3J6aXpvbnRhbFJlbGF0aW9uIjtzOjE6IjUiO3M6Mzc6IndlYnBhZ2VQcmV2aWV3U2Nhbm1heHZlcnRpY2FscmVsYXRpb24iO3M6MToiMyI7czozMDoid2VicGFnZVByZXZpZXdTY2FuTG9nb1BhdHRlcm5zIjtzOjEwOiJsb2dvLGNyZ2h0IjtzOjM4OiJ3ZWJwYWdlUHJldmlld1NjYW5FeGNsdWRlSW1hZ2VQYXR0ZXJucyI7czo1NzoicGl4ZWx0cmFucyxzcGFjZXIseW91dHViZSxyY2xvZ29zLHdoaXRlLHRyYW5zcGEsYmdfdGVhc2VyIjtzOjM4OiJ3ZWJwYWdlUHJldmlld0Rlc2NyaXB0aW9uUG9ydGlvbkxlbmd0aCI7czoyOiI0MCI7czoyNToid2VicGFnZVByZXZpZXdDdXJsVGltZW91dCI7czo0OiI3MDAwIjtzOjEyOiJ1c2VQaWNVcGxvYWQiO3M6MToiMCI7czoxMjoidXNlUGRmVXBsb2FkIjtzOjE6IjAiO3M6MTM6InBpY1VwbG9hZERpbXMiO3M6MzoiMTAwIjtzOjE2OiJwaWNVcGxvYWRNYXhEaW1YIjtzOjM6IjgwMCI7czoxNjoicGljVXBsb2FkTWF4RGltWSI7czozOiI5MDAiO3M6MjI6InBpY1VwbG9hZE1heERpbVdlYnBhZ2UiO3M6MzoiNDcwIjtzOjIzOiJwaWNVcGxvYWRNYXhEaW1ZV2VicGFnZSI7czozOiIzMDAiO3M6MjA6InBpY1VwbG9hZE1heGZpbGVzaXplIjtzOjQ6IjI1MDAiO3M6MjA6InBkZlVwbG9hZE1heGZpbGVzaXplIjtzOjQ6IjMwMDAiO3M6MjA6InVzZVRvcFdlYnBhZ2VQcmV2aWV3IjtzOjA6IiI7czoyNDoidG9wV2VicGFnZVByZXZpZXdQaWN0dXJlIjtpOjA7fXM6MTE6ImF3YWl0Z29vZ2xlIjtzOjI4OiJXYXJ0ZSBhdWYgQW50d29ydCB2b24gR29vZ2xlIjtzOjg6InR4dGltYWdlIjtzOjEzOiJCaWxkIGdlZnVuZGVuIjtzOjk6InR4dGltYWdlcyI7czoxNToiQmlsZGVyIGdlZnVuZGVuIjt9YTowOnt9YTowOnt9YTo3OntzOjE2OiJjb21tZW50TGlzdEluZGV4IjthOjE6e3M6MTk6ImNpZHR0X2NvbnRlbnRfMTk5MDIiO2E6MTp7czoxMDoic3RhcnRJbmRleCI7aTo1O319czoxNDoiY29tbWVudHNQYWdlSWQiO2k6MzA4MDtzOjE2OiJjb21tZW50TGlzdENvdW50IjtzOjU6IjE5OTAyIjtzOjEyOiJhY3RpdmVsYW5naWQiO2k6MDtzOjE3OiJjb21tZW50TGlzdFJlY29yZCI7czoxNjoidHRfY29udGVudF8xOTkwMiI7czoxMjoiZmluZGFuY2hvcm9rIjtzOjE6IjAiO3M6MTI6Im5ld2NvbW1lbnRpZCI7Tjt9 YTo1OntzOjExOiJleHRlcm5hbFVpZCI7aTozMDgwO3M6MTI6InNob3dVaWRQYXJhbSI7czowOiIiO3M6MTY6ImZvcmVpZ25UYWJsZU5hbWUiO3M6NToicGFnZXMiO3M6NToid2hlcmUiO3M6MTYzOiJhcHByb3ZlZD0xIEFORCBwaWQ9ODIyIEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuZGVsZXRlZD0wIEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuaGlkZGVuPTAgQU5EIChleHRlcm5hbF9yZWZfdWlkPSJ0dF9jb250ZW50XzE5OTAyIikgQU5EIHBhcmVudHVpZD0wIjtzOjEwOiJ3aGVyZV9kcGNrIjtzOjkwOiJwaWQ9ODIyIEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuZGVsZXRlZD0wIEFORCB0eF90b2N0b2NfY29tbWVudHNfY29tbWVudHMuaGlkZGVuPTAiO30%3D YToyOntpOjA7czoxNDk6IjxpbWcgc3JjPSIvdHlwbzNjb25mL2V4dC90b2N0b2NfY29tbWVudHMvcmVzL2Nzcy90aGVtZXMvdGlzcXVzL2ltZy9wcm9maWxlLnBuZyIgY2xhc3M9InR4LXRjLXVzZXJwaWMgdHgtdGMtdWltZ3NpemUiIHRpdGxlPSIiICBpZD0idHgtdGMtY3RzLWltZy0iIC8%2BIjtpOjk5OTk5O3M6MTUxOiI8aW1nIHNyYz0iL3R5cG8zY29uZi9leHQvdG9jdG9jX2NvbW1lbnRzL3Jlcy9jc3MvdGhlbWVzL3Rpc3F1cy9pbWcvcHJvZmlsZWYucG5nIiBjbGFzcz0idHgtdGMtdXNlcnBpY2YgdHgtdGMtdWltZ3NpemUiIHRpdGxlPSIiICBpZD0idHgtdGMtY3RzLWltZy0iIC8%2BIjt9
Bitte bestätigen Sie
Nein
Ja
Information
Ok

Noch keine Kommentare vorhanden

Ihr Kommentar ist eine Antwort auf den folgenden Kommentar
Vorschau wird geladen ...
*: Pflichtfeld