Serverless

A presentation at OOP in January 2019 in Munich, Germany by Max Körbächer

Slide 1

Slide 1

Serverless Weniger ist mehr, der Weg zur moderneren Architektur? Code-Days 2019 | Max Körbächer

Slide 2

Slide 2

Hey! Max Körbächer Senior Cloud Solution Architect @ Storm Reply ● Design and build cloud ready solutions ○ microservice & event driven apps ○ serverless & kubernetes based ○ ♥ for , GraphQL & NoSQL ● Background as Enterprise Architect & Founder ● Visit me at: max.koerbaecher.io

Slide 3

Slide 3

Was ist Serverless? Was oft unter Serverless allgemein verstanden wird … … ist in der Regel falsch. Quelle: pixabay.com

Slide 4

Slide 4

Serverless architectures are application designs that incorporate third-party “Backend as a Service” (BaaS) services, and/or that include custom code run in managed, ephemeral containers on a “Functions as a Service” (FaaS) platform. - Mike Roberts

Slide 5

Slide 5

FaaS != Serverless FaaS im Allgemeinen kann als die Bereitstellung einer Plattform für die Ausführung von Code verstanden werden. Serverless hingegen ist ein Architekturansatz, der mehrere Komponenten der XaaS Familie verwendet.

Slide 6

Slide 6

XaaS Familie Serverless nutzt bzw. orchestriert XaaS

Slide 7

Slide 7

FaaS != Serverless II

Slide 8

Slide 8

Was verspricht Serverless zu sein? Kosteneffizient, hochskalierbar & geringe Wartung ● ● ● ● ● Die Kosten einer serverlosen Anwendung basieren auf der Anzahl der Funktionsausführungen Kleinere Entwicklungskomponenten führen zu einer schnelleren Bereitstellung von Funktionen und erhöhen die Anpassungsfähigkeit Die Kosten für den Betrieb sinken, im Grunde keine Systemadministration notwendig Hochskalierbar, quasi grenzenlos Fördert Innovation, Microservices und SOA Prinzipien “No server is easier to manage than no server”

Slide 9

Slide 9

Die Kehrseite von Serverless ● ● ● ● ● Risiko bzgl. Sicherheit, Disaster Recovery, Vendor Lock-in Technologische Fragmentierung ○ Wirklich schlimm? Komplexität der Architektur steigt exponentiell an Zeitlich begrenzte Rechenzeit Testing, local state und multi tenancy ist eine Herausforderung

Slide 10

Slide 10

FaaS Universum https://landscape.cncf.io/images/serverless.png

Slide 11

Slide 11

Serverless Prinzipien Verw e nd i u rg k u s ar u nb Sb one .gur d o Kr clou a - Sc Fu zus hre nk tan ibe t ein ione dslo s em n, d e er Zw ie n fü lle eck ur n ickle Entw eiche angr umf tends Fron nde Com Serv pute ices nach Beda rf Nutze Services von Drittanbietern h us nt p e ve ign e, E e s De iert ben n s ie ba etr nge g su Lö

Slide 12

Slide 12

Organisatorische Voraussetzungen für Serverless r e et re n i b n ie fle xi bi lis Vo exi rte ble ile ko in st Cl en ou sin d d Um ei n ge er bu de ng r g en rö ßt en te n Fl Ko s 1 2 e el vi on o v t s oft i e , hk h ic glic l ög ö M em h i ac s w n e t tz vic nu Ser ss le nde ern r e t rv ehe ie 3 Se est anb b ritt D a itt r e V n e u rt a in Dr n e h te n, te r o tw t n a n r rt Eve seh o f . so pw och s s le b r n al ss me s a us n, d im e m e er eh em m es yst im bg S ht n a ne d c i N avo iebe l sin d etr el g chn s s Ge h c s er v t äf

Slide 13

Slide 13

Mit Serverless zur “moderneren” Architektur?

Slide 14

Slide 14

Wo können wir Serverless einsetzen? ● ● ● ● ● Web Applikationen - statisch, komplexe Apps Backend - Mobile, IoT oder klassische Anwendungsbackend Chatbots & Sprachassistenten Datenverarbeitung - Batchprozesse & Echtzeitdatenverarbeitung ○ ETL Jobs sind am kommen System- & Infrastruktur Management

Slide 15

Slide 15

Beispiel: API Proxy & Datenmanipulation Im Grunde eine Fassade

Slide 16

Slide 16

Beispiel: Serverless Applikation Frontend BI/DWH Auth Metriken/Logs Logik Echtzeitdaten

Slide 17

Slide 17

Design Anti-/Pattern Anti-Pattern Ein einzige große Funktion Pattern Mehrere orchestrierte Funktionen Quelle: aws.com

Slide 18

Slide 18

Design Prinzipien Speicher den Zustand (state) in einen persistenten Storage Orchestriere die Funktionen mit Statemachines Verwende Event-Getriebene Designs Designe für Fehler und Duplikate Nutze das Saga Pattern Verwende API Gateways

Slide 19

Slide 19

Cloud Umgebungen sind das perfekte Umfeld für Serverless

Slide 20

Slide 20

Security ja, auch bei Serverless ● ● ● ● OWASP gilt auch hier bspw. Input Validation Eine Funktion = eine Nutzerrolle Speichern und Verschlüsseln sie Passwörter und Zertifikate mittels Key & Secret Management Tools Verwendung von WAFs und SIEMs

Slide 21

Slide 21

Erreichen wir eine modernere Architektur mit Serverless?

Slide 22

Slide 22

Take Aways 01 Weniger ist mehr! ● ● Reduziere das Package size! Frameworks nur wenn es sein muss 02 Benutze ENVs ● Passe deine Funktionen durch ENVs an 03 Die richtige Sprache ● ● Interpretierte Sprachen sind schneller initialisiert ABER nicht unbedingt schneller insgesamt 04 Lagere deine Abhängigkeiten aus ● bspw. .jar in /lib Ordner 05 Mehr Speicher, ist mehr CPU, ist mehr Bandbreite ● Ist die Funktion Speicher/CPU/Netzwerk lastig?

Slide 23

Slide 23

Grüße aus der Zukunft Lambda@Edge ● ● Funktionen werden via CDN näher am Kunden ausgeführt Dynamische Anpassung von Webinhalten, Auth, Security etc. AWS Greengrass - Lambdas auf IoT Devices ● ● ● Funktionen können wie gewohnt entwickelt werden Werden auf IoT Devices installiert Bspw. Implementierung trainierte Algorithmen (ML) “direkt an der Maschine”

Slide 24

Slide 24

Entwickeln und Bereitstellen

Slide 25

Slide 25

SAM AWS Serverless Application Model ● ● ● ● CLI Tool für das lokale Entwicklung und Testen Aufrufen von AWS Services bspw. S3, DynamoDB Lokales API Gateway mit Hot Reload Boilerplate Templates Transform: ‘AWS::Serverless-2016-10-31’ Resources: ThumbnailFunction: Type: ‘AWS::Serverless::Function’ Properties: Runtime: nodejs6.10 Handler: index.handler CodeUri: ./src Events: ThumbnailApi: Type: Api Properties: Path: /thumbnail Method: GET

Slide 26

Slide 26

Weitere Tools Serverless Framework Zeit.co APEX.run Weitverbreitetes Framework für Serverless Entwicklung Open Source & Enterprise Cloud Agnostisch Kostenlos mit Limitierung & Enterprise Bietet Services wie Tests auf der Zeit Infrastruktur Open Source Breite Community

Slide 27

Slide 27

Danke! Wenn du mehr über Storm Reply erfahren willst: https://www.reply.com/ storm-reply

Slide 28

Slide 28