In diesem Referat wird verdeutlicht warum sich immer mehr Kunden an Serverless Architekturen orientieren.
Es wird aufgezeigt in welchen Bereichen die Stärken und Schwächen von Serverless Architekturen liegen und anhand einer Beispiel-Applikation wird demonstriert, wie eine typische Serverless Anwendung deployed und ausgeführt wird.
7. Overview Serverless
Was ist Serverless
• «Serverless» bedeutet nicht, dass keine Server mehr involviert sind.
Vielmehr bedeutet es, dass Entwickler sich nicht mehr darum kümmern
müssen…
• Ein Task ist die Einheit nach welcher eine Serverlessumgebung skaliert
• Wenn man dies mit Container vergleicht bedeutet dies::
“The task processing essentially becomes container processing with the
containers set up and removed on a task by task basis.”
Thinking at the task level
8. Business Treiber
Faster Time to Market
• Kein Setup von Runtime
• Funktion als Service
• Experiment quickly and fail fast
• Ideal für die Entwicklung von Microservices (natural fit)
10. Business Treiber
Focus on Logic
• Eliminierung von Infrastruktur Management
• Eliminierung von Plattformbereitstellung und Configuration
Management
(image creation, configuration management, application installation,
os patches, system monitoring, and log collection)
• Build-In Scaling und Failover
• Ideal für DevOps und Agile Development Kultur
11. Serverless Technologie
Definition
Backend as a Service (BaaS):
(“ursprüngliche” Definition)
• bietet standardisierte Backend Services und somit standardisierte Geschäftslogik
in der Cloud
Functions as a Service (FaaS):
(“neue” Bedeutung)
• Individuelle Logik (serverseitig), welche die BaaS-Angebote nicht abdecken
können.
• Fokus auf Funktion (nicht auf Prozess wie bei Microservice)
• Stateless und asynchron (normalerweise)
14. Serverless Technologie
Die 4 Prinzipien
• Einfache aber sinnvolle Funktionseinheiten (z.B. kleine, nutzbare Building
Blocks)
• Skalierend bei Gebrauch (Autoscaled Servers im Hintergrund)
• Pay-only usage (Abrechnung basierend auf Execution Time)
Beispiel AWS Lambda
0,0000002 USD pro Request
0,00001667 USD pro GB/SEKUNDE
• Built-in Availability und Fault Tolerance (NoOps).
15. Serverless Technologie
Wichtige Architekturkonzepte
• Synchronous / Asynchronous
Synchron: Direct Feedback (Blocking, kein Retry, keine DLQ)
Asynchron: Längere Processing-Time (Retry und DLQ)
• Stateless
Funktionen sollten keine Software Konfigurationen oder States intern speichern
Immer nur ein Change-Vektor pro Funktion (clean code guidelines)
• Ephemeral
Eine Funktion und deren State existiert nur während der Runtime der Funktion
• Idempotent
Mehrere Requests haben den gleichen Effekt wie ein Einzelner (Wichtig bei paralleler und
asynchroner Ausführung).
• Polyglot
Funktionen können in unterschiedlichen Programmiersprachen geschrieben sein
• Compatible
Funktionen untereinander
Versionenierung einzelner Funktionen
16. Serverless Technologie
Typische Use Cases / Patterns
• Event-driven data processing
• Mobile and Internet-of-Things applications
• Application ecosystems
• Web applications
• Event workflows
17. Serverless Technologie
Typische Use Cases / Patterns
• Event-driven data processing
• Mobile and Internet-of-Things applications
• Application ecosystems
• Web applications
• Event workflows
18. Serverless Technologie
Typische Use Cases / Patterns
• Event-driven data processing
• Mobile and Internet-of-Things applications
• Application ecosystems
• Web applications
• Event workflows
19. Serverless Technologie
Typische Use Cases / Patterns
• Event-driven data processing
• Mobile and Internet-of-Things applications
• Application ecosystems
• Web applications
• Event workflows
20. Serverless Technologie
Typische Use Cases / Patterns
• Event-driven data processing
• Mobile and Internet-of-Things applications
• Application ecosystems
• Web applications
• Event workflows
22. Fazit
Kundenprojekterfahrungen & Lessons learned
• Pros:
Günstiger Einstieg, Scale on demand
Einfacher, günstiger Betrieb (vgl. TCO)
In-line mit modernen Technologien (REST, Microservice…)
Innovation, Schneller Go to Market
Kurzer Feedbackloop (Lean Prinzip, Kurze Testzyklen)
• Cons:
3rd Party API, Vendor Lock
Wenige Operational Tools
Komplexe Architektur (Parallelität, Funktionsgrösse, Error-Handling)
Startup Latency (Cold Start)
Runtime und Time-Out (<5min)
Serverless != NoOps
• Monitoring, Deployment, Networking, Security, Debugging
Betrieb ist schwieriger, da alles neu.
23. Fazit
Kostenanalyse
• Breakeven Lambda vs EC2
EC2: m4.large (2 vCPU, 8 GB RAM, $0.12/hr)
Lambda: $0.000000208 pro ms (128MB), 0.000000417 pro ms (256MB)
• Beispiel 1: Wenn eine typische Transaktion 100ms dauert und 128MB RAM
benötigt, muss die EC2 instanz 82 Requests pro Sekunde ausführen.
• Beispiel 2: Wenn eine typische Transaktion 1s dauert und 1GB RAM benötigt,
muss die EC2 Instanz 2 Requests pro Sekunde ausführen.
Function Execution
Memory & Time
# Requests pro Stunde damit
Lambda gleich viel kostet wie EC2 Requests per Second
100 ms @ 128 MB 295,000 81.9
200 ms @ 512 MB 64,000 17.8
200 ms @ 1 GB 34,000 9.4
1 sec @ 1 GB 7,100 2