Serverless Weniger ist mehr, der Weg zur moderneren Architektur? Code-Days 2019 | Max Körbächer
A presentation at OOP in January 2019 in Munich, Germany by Max Körbächer
 
                Serverless Weniger ist mehr, der Weg zur moderneren Architektur? Code-Days 2019 | Max Körbächer
 
                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
 
                Was ist Serverless? Was oft unter Serverless allgemein verstanden wird … … ist in der Regel falsch. Quelle: pixabay.com
 
                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
 
                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.
 
                XaaS Familie Serverless nutzt bzw. orchestriert XaaS
 
                FaaS != Serverless II
 
                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”
 
                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
 
                FaaS Universum https://landscape.cncf.io/images/serverless.png
 
                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ö
 
                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
 
                Mit Serverless zur “moderneren” Architektur?
 
                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
 
                Beispiel: API Proxy & Datenmanipulation Im Grunde eine Fassade
 
                Beispiel: Serverless Applikation Frontend BI/DWH Auth Metriken/Logs Logik Echtzeitdaten
 
                Design Anti-/Pattern Anti-Pattern Ein einzige große Funktion Pattern Mehrere orchestrierte Funktionen Quelle: aws.com
 
                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
 
                Cloud Umgebungen sind das perfekte Umfeld für Serverless
 
                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
 
                Erreichen wir eine modernere Architektur mit Serverless?
 
                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?
 
                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”
 
                Entwickeln und Bereitstellen
 
                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
 
                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
 
                Danke! Wenn du mehr über Storm Reply erfahren willst: https://www.reply.com/ storm-reply
 
                