SlideShare ist ein Scribd-Unternehmen logo
1 von 114
Downloaden Sie, um offline zu lesen
#WISSENTEILEN heute:
The Serverless
Survival Guide
by Lars Röwekamp
@mobileLarson
open knowledge GmbH
@_openknowledge
ÜBER OPEN KNOWLEDGE
Branchenneutrale Softwareentwicklung & IT-Beratung
ÜBER MICH
Wer bin ich - und wenn ja, wie viele?
• CIO New Technologies
• Enterprise & Mobile
• Autor, Speaker, Coach & Mentor
• Snowboard & MTB Enthusiast (a.k.a. “stets bemüht“)
Lars Röwekamp (a.k.a. @mobileLarson)
Serverless
Was bitte soll das sein?
“Run your business code
highly-available
in the cloud in response
to events and scale without
any servers to manage.“*
* AWS Lambda Advertising
Function as self-contained application
Serverless Function: Entwickler schreibt eine Business-
Funktion in einer der unterstützen Programmiersprachen,
„bundled“ diese mit den entsprechenden Abhängigkeiten
(LIBs) und lädt sie in die Cloud.
Serverless Environment: Führt die Funktion bei „Aufruf“ in
der passenden Runtime effizient, flexibel und hoch skalierbar
aus.
“
Serverless no need to maintain
Entwickler: Fokussiert sich ausschließlich auf die
Umsetzung der Business-Logik und das Erstellen des
Function-Bundle.
Cloud Provider: liefert und maintained rundum-sorglos
Umgebung für die Serverless Functions, inklusive etwaiger
Cloud Services (z.B. Storage, DB, Streaming, AI).
“
> Hands-On
AWS Cloud
1
trigger
request
Hands-on: Hello World
AWS Cloud
hello world serverless context
1
trigger
request
Hands-on: Hello World
AWS Cloud
hello world serverless context
HelloWorld
Logs
1
trigger
request
2
Hands-on: Hello World
Hands-on: Hello World
Hands-on: Hello World
Hands-on: Hello World
Serverless
Aber für was ist das gut?
Serverless
Szenarien
AWS Cloud
Create Thumbnail
Store raw Image
Szenario #1: Datei-/Datenbearbeitung
StoreImage
Logs
CreateThumbnail
Logs
S3 Object
created
1 2
3
4
5
upload
image
AWS Cloud
Data Stream Analysis
StreamAnalyzer
Logs
Real-Time Monitoring / Querying
store anomalies
extracted by lambda
function
1
sensor data stream is
uploaded to Kinesis
in real-time
2
3
Lambda runs code to
detect anomalies
4
data immediately
available for interested
parties to query
Szenario #2: Stream Processing
tons of
very important
sensor data
Szenario #3: Web Application
AWS Cloud
Web Client
storage related functions
database related functions
additional functions, e.g.
region aware
web app
delivery
1
login via id/pwd
returns JWT
2
6
3
REST
call
4
translated
lambda
trigger
5
lambda
@work
5
lambda
@work
Serverless
Und das funktioniert?
Reality Check
Part I
The Road to the Cloud ...
Der Serverless Showcase
Web Image Gallery
(easy version)
GET ../images/{imageId}
PUT ../images/{imageId}
DELETE ../images/{imageId}
POST ../images/
Web Image Gallery
(not so easy version)
GET ../images/{imageId}
PUT ../images/{imageId}
DELETE ../images/{imageId}
POST ../images/
Web Image Gallery
(real life version)
GET ../images/{imageId}
PUT ../images/{imageId}
DELETE ../images/{imageId}
POST ../images/
Reality Check
Part II
Spaß mit
Cold Start
1
trigger
request
Hello World „under the Hood“
AWS Cloud
HelloWorld
ZIP
1
trigger
request
Hello World „under the Hood“
Download
Function Code
ZIP
Cloud Storage
S3
AWS Cloud
2
HelloWorld
ZIP
1
trigger
request
Hello World „under the Hood“
Download
Function Code
Setup
Runtime
ZIP
Cloud Storage
S3
AWS Cloud
2 3
HelloWorld
ZIP
1
trigger
request
Hello World „under the Hood“
Download
Function Code
Setup
Runtime
Init
Function
ZIP
Cloud Storage
S3
AWS Cloud
2 3 4
HelloWorld
ZIP
1
trigger
request
Hello World „under the Hood“
Download
Function Code
Setup
Runtime
Init
Function
ZIP
Cloud Storage
S3
AWS Cloud
2 3 4
COLD START
trigger
request
Hello World „under the Hood“
Download
Function Code
ZIP
AWS Cloud
Setup
Runtime
Init
Function
COLD START
trigger
request
Hello World „under the Hood“
Download
Function Code
ZIP
AWS Cloud
Setup
Runtime
Init
Function
COLD START
Execute
Handler
trigger
request
Hello World „under the Hood“
Download
Function Code
ZIP
AWS Cloud
Setup
Runtime
Init
Function
COLD START
Execute
Handler
Terminate
Function
trigger
request
Hello World „under the Hood“
ZIP
AWS Cloud
COLD START
Terminate
Function
Execute
Handler
trigger
request
Hello World „under the Hood“
ZIP
AWS Cloud
COLD START
Terminate
Function
Execute
Handler
Execute
Handler
trigger
request
trigger
request
Hello World „under the Hood“
ZIP
AWS Cloud
COLD START
Execute
Handler
Terminate
Function
Execute
Handler
Execute
Handler
trigger
request
trigger
request
Lambda
Aufruf
Spaß mit Cold Start
ZIP
AWS Cloud
Active
Container
Active
Container
Active
Container
Cold Start
Container
aktiver
Container
vorhanden?
JA1) NEIN2)
1) Aktiver Container, der nicht
gerade einen Lambda Aufruf
abarbeitet, kann wieder / weiter
verwendet werden.
2) Neuer Container muss erzeugt,
Function Code herunter geladen
und die Runtime neu initialisiert
werden.
Spaß mit Cold Start
ZIP
AWS Cloud
Active
Container
Active
Container
Active
Container
Cold Start
Container
aktiver
Container
vorhanden?
JA1) NEIN2)
1) Aktiver Container, der nicht
gerade einen Lambda Aufruf
abarbeitet, kann wieder / weiter
verwendet werden.
2) Neuer Container muss erzeugt,
Function Code herunter geladen
und die Runtime neu initialisiert
werden.
Lambda
Aufruf
PING
PING
PING
Spaß mit Cold Start +++ NEW +++ NEW +++ NEW +++
EVENT
Hello World REALLY „under the Hood“
AWS Cloud
Frontend Invoker
Frontend Invoker
Workers Manager
Workers Manager
Worker
Worker
Worker
Worker
ZIP
ZIP
Load Balancer
Availability Zone
Availability Zone
Spaß mit Cold Start
Worker
Instance
Hardware
Guest OS
Sandbox
Lambda Runtime
Your Code
Host OS
Hypervisor
one
Function
one
Account
many
Accounts
EC 2
System
Firecracker*
*https://firecracker-microvm.github.io
Spaß mit Cold Start Initialization vs. Handler
Spaß mit Cold Start Initialization vs. Handler
Spaß mit
Skalierung
AWS Cloud
Execute
Handler
Spaß mit Skalierung
Cold
Start
Execute
Handler
Execute
Handler
Execute
Handler
Terminate
Function
Event Event Event Event
AWS Cloud
Execute
Handler
Spaß mit Skalierung
Cold
Start
Terminate
Function
Event Event Event Event
x x x
AWS Cloud
Spaß mit Skalierung
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #1
Event
AWS Cloud
Spaß mit Skalierung
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #1
Event Event
AWS Cloud
Spaß mit Skalierung
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #1
Event Event
Lambda
No #1 ?
AWS Cloud
Spaß mit Skalierung
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #1
Event Event
Lambda
No #1 ?
x
AWS Cloud
Spaß mit Skalierung
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #1
Event Event
Lambda
No #2 !
Cold
Start
Execute
Handler
Lambda
No #2
AWS Cloud
Spaß mit Skalierung
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #1
Event Event
Lambda
No #2 !
Cold
Start
Execute
Handler
Lambda
No #2
AWS Cloud
Spaß mit Skalierung
Cold
Start
Cold
Start
Execute
Handler
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #2
Lambda
No #1
Event Event Event
AWS Cloud
Spaß mit Skalierung
Cold
Start
Cold
Start
Execute
Handler
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #2
Lambda
No #1
Event Event Event
Lambda
No #1 ?
AWS Cloud
Spaß mit Skalierung
Cold
Start
Cold
Start
Execute
Handler
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #2
Lambda
No #1
Event Event Event
Lambda
No #1 ?
x
AWS Cloud
Spaß mit Skalierung
Cold
Start
Cold
Start
Execute
Handler
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #2
Lambda
No #1
Event Event Event
Lambda
No #2 ?
AWS Cloud
Spaß mit Skalierung
Cold
Start
Cold
Start
Execute
Handler
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #2
Lambda
No #1
Event Event Event
Lambda
No #2 ?
x
AWS Cloud
Spaß mit Skalierung
Cold
Start
Cold
Start
Execute
Handler
Execute
Handler
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #3
Lambda
No #2
Lambda
No #3
Lambda
No #1
Event Event Event
!
AWS Cloud
Spaß mit Skalierung
Cold
Start
Cold
Start
Execute
Handler
Execute
Handler
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #3
Lambda
No #2
Lambda
No #3
Lambda
No #1
Event Event Event
Event
AWS Cloud
Spaß mit Skalierung
Cold
Start
Event Event Event
Cold
Start
Execute
Handler
Execute
Handler
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #3
Lambda
No #2
Lambda
No #3
Lambda
No #1
Event
AWS Cloud
Spaß mit Skalierung
Cold
Start
Event Event Event
Cold
Start
Execute
Handler
Execute
Handler
Cold
Start
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #3
Lambda
No #2
Lambda
No #3
Lambda
No #1
Lambda
No #1 ?
Event
AWS Cloud
Spaß mit Skalierung
Cold
Start
Event Event Event
Cold
Start
Execute
Handler
Execute
Handler
Cold
Start
Execute
Handler
Execute
Handler
Lambda
No #1
Lambda
No #2
Lambda
No #3
Lambda
No #2
Lambda
No #3
Lambda
No #1
Lambda
No #1
Reality Check
Part III
The Road to the Cloud ...
Der Serverless Showcase
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
Use-Case: Upload Image
upload image
with additional
information
„Was kann
da schon
schiefgehen?“
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
AWS Cloud
AWS Step Functions workflow: Store Image
Create Thumbnail
Inform Subscribers
Store raw Image
Store Image Information
1
2
“Run your business code
highly-available
in the cloud in response
to events and scale
without any servers to
manage.“*
*(AWS Lambda product description)
“Run your business code
highly distributed
and event driven in a non
transparent environment
with no single
point of control.“*
*(my personal interpretation)
Serverless
Wie soll ich das nur testen*?
*Unit, Integration & End-toEnd
Testen in der Serverless Welt
„The biggest complexity is not within
the function itself, but in how it interacts
with other functions and services
(a.k.a. cloud components).“
#1 Trennen von Businesslogik und Infrastruktur
Testing Best Practices
AWS Cloud
On-Premise
handler
logic
Kandidat für Unit Tests
e
i
u
Kandidat für Integration Tests
Kandidat für End-to-Ende Tests
u
#2 Cloud-Infrastruktur Komponenten mocken
Testing Best Practices
AWS Cloud
On-Premise
handler
logic u
u
m
Kandidat für Unit Tests
e
i
u
Kandidat für Integration Tests
Kandidat für End-to-Ende Tests
#3 Lokale Umgebung für funktionale Tests verwenden (z.B. SAM local)
Testing Best Practices
AWS Cloud
On-Premise
handler
logic u
via SAM local
via SAM local
SAM
yaml
TEST
u
u
Kandidat für Unit Tests
e
i
u
Kandidat für Integration Tests
Kandidat für End-to-Ende Tests
#4 Lokale Umgebung zum Triggern von Integration Tests verwenden
Testing Best Practices
AWS Cloud
On-Premise
handler
logic u
via SAM local
via SAM local
SAM
yaml
TEST
u
u
i
i
Kandidat für Unit Tests
e
i
u
Kandidat für Integration Tests
Kandidat für End-to-Ende Tests
#5 Lokale Cloud-Komponenten für Integration Tests*
Testing Best Practices
AWS Cloud
On-Premise
handler
logic u
via DynamoDB local
via FakeS3 via SAM local
via SAM local
SAM
yaml
TEST
u
u
i
i
i
i
WARNUNG: lokale Cloud
Komponenten können
lediglich funktionale
Korrektheit sicherstellen,
nicht aber infrastrukturelle,
wie z.B. DLQs, Timeouts,
Throttling, SLAs, …
Kandidat für Unit Tests
e
i
u
Kandidat für Integration Tests
Kandidat für End-to-Ende Tests
#6 temporäre Integration-Cloud für partielle Integration Tests
Testing Best Practices
AWS Cloud
On-Premise
handler
logic u
via SAM local
via SAM local
SAM
yaml
TEST
u
u
via DynamoDB local
via FakeS3
i
i
Temorary Intregration #Dev1
i
i
INT
i
i
Kandidat für Unit Tests
e
i
u
Kandidat für Integration Tests
Kandidat für End-to-Ende Tests
#7 permanente Integration-Cloud für End-to-End Tests
Testing Best Practices
AWS Cloud
On-Premise
handler
logic u
via SAM local
via SAM local
SAM
yaml
TEST
u
u
via DynamoDB local
via FakeS3
i
i
Permament Intregration
INT
e
e
e
e
i
i
Kandidat für Unit Tests
e
i
u
Kandidat für Integration Tests
Kandidat für End-to-Ende Tests
„Sind wir endlich
fertig?“
Testing endet nicht
in Produktion!
Testing in Produktion
Ziele des Testens: „Vertrauen gewinnen“
• Outages von Cloud & Cloud-Komponenten
• Outages von 3rd Party Apps
• Bugs / Probleme durch Skalierung
Testing in Produktion
Robustes Monitoring und Error Reporting
• Logging
• Tracing
• Metrics
• Alerting
Vorhersagen von Störungen
inklusive automatischer
Regenerierung!
Testing in Produktion
Chaos Engineering
• bewusst kleine “Probleme“ und „Fehler“
in das System einstreuen!
Serverless
Wie soll ich das monitoren*?
*Logging, Tracing, Metrics & Alerting
Mit einem gut geplantes Monitoring sollten wir in der Lage sein, …
• aufkommende Probleme vorherzusagen
• schnell die Ursache von Problemen zu identifizieren
• automatische Recovery-Prozesse anzustoßen
• notwendige Alarme zu triggern
Real-Life Monitoring
Real-Life Monitoring
Business
KPI
UX
SLA
“Produkte
pro Bestellung”
“Durchschnittlicher
Bestellwert”
“Abbruchrate”
“Erste Darstellung
von Inhalten”
“Erste sinnvolle
Darstellung"
“Erste
Interaktion”
“Verfügbarkeit”
“Latenz”
“Beständigkeit”
“Konsistenz”
Gut geplantes Monitoring berücksichtigt verschiedene Aspekte
• reliability: Komponenten und Kommunikation
• usage: funktional und nicht-funktional
• performance: Dauer, Latenz und Timeouts
• security: Zugriffsrechte, Attacken
• costs: aktuelle Kosten, Kostenentwicklung
Real-Life Monitoring
#1 User-facing Latency vermeiden
Monitoring Best Practices
AWS Cloud
My Lambda logs
log
stream
log
data
async
sync
Log Aggregator
log
data
1
very fast and cheap
2
3
time consuming and “expensive”
parse
log stream
#2 umfangreiche System-/Anwendungsmetriken sammeln
Monitoring Best Practices
AWS Cloud
My Lambda logs
log
stream
log
data
async
sync
Log Aggregator
metrics
custom
metrics
custom
metrics
log
data
2
3
1
very fast and cheap
parse
log stream
custom
metrics
#3 unnötige Kosten vermeiden
Monitoring Best Practices
AWS Cloud
My Lambda logs
log
stream
log
data
async
sync
Log Aggregator
metrics
custom
metrics
custom
metrics
log
data
archive
logs
1
2
custom
metrics
#4 Logs und Metriken korrelieren / aggregieren
Monitoring Best Practices
AWS Cloud
My Lambda logs
log
stream
log
data
async
sync
Log Aggregator
metrics
custom
metrics
custom
metrics
log
data
archive
logs
1
correlation
ID
custom
metrics
#5 Logging via ENV Vars an Edge Server enablen/disablen
Monitoring Best Practices
AWS Cloud
My Lambda logs
log
stream
log
data
async
sync
Log Aggregator
metrics
custom
metrics
custom
metrics
log
data
archive
logs
DEBUG
on/off
ENV var
1
2
custom
metrics
Schlussfolgerung: Spaß haben mit
Serverless?
“Find suitable
serverless workload
and apply the correct
integration patterns.”
“Serverless
testing & monitoring
is an essential part of your
serverless infrastructure.”
? ? ?
Lars Röwekamp, @mobileLarson
Kontakt:
lars.roewekamp@openknowledge.de
kontakt@openknowledge.de
Besten Dank! #WISSENTEILEN
#01 © asbe istockphoto.com
#09 © CandyDuck shutterstock.com
#19 © Myvisuals shutterstock.com
#24 © Bradley Hook pexels.com
Bildernachweis
All other pictures inside this presentation orginate from pexels.com,
pixabay.com, flaticon.com or were created by my own.

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!Hilfe, ich will meinen Monolithen zurück!
Hilfe, ich will meinen Monolithen zurück!
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte Entwicklungsperformance
 
Shared Data in verteilten Systemen
Shared Data in verteilten SystemenShared Data in verteilten Systemen
Shared Data in verteilten Systemen
 
Microservices mit dem MicroProfile
Microservices mit dem MicroProfileMicroservices mit dem MicroProfile
Microservices mit dem MicroProfile
 
API-Design, Microarchitecture und Testing
API-Design, Microarchitecture und TestingAPI-Design, Microarchitecture und Testing
API-Design, Microarchitecture und Testing
 
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrtArbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt
 
Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
 
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
 
Architecture Best Practices für Webanwendungen auf AWS
Architecture Best Practices für Webanwendungen auf AWSArchitecture Best Practices für Webanwendungen auf AWS
Architecture Best Practices für Webanwendungen auf AWS
 
Zukunftssichere Architekturen mit Microservices
Zukunftssichere Architekturen mit MicroservicesZukunftssichere Architekturen mit Microservices
Zukunftssichere Architekturen mit Microservices
 
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
Von „less Server“ bis „Serverless“: Wie viel Cloud soll es sein?
 
Webinar Windows auf AWS (Deutsch)
Webinar Windows auf AWS (Deutsch)Webinar Windows auf AWS (Deutsch)
Webinar Windows auf AWS (Deutsch)
 
Webinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteWebinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute Dienste
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
Oracle Cloud
Oracle CloudOracle Cloud
Oracle Cloud
 
Amazon Web Services
Amazon Web ServicesAmazon Web Services
Amazon Web Services
 
Unternehmensanwendungen auf AWS - Oracle, SAP, Microsoft
Unternehmensanwendungen auf AWS - Oracle, SAP, MicrosoftUnternehmensanwendungen auf AWS - Oracle, SAP, Microsoft
Unternehmensanwendungen auf AWS - Oracle, SAP, Microsoft
 
Erweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud ServicesErweitern sie ihr Data Center mit Cloud Services
Erweitern sie ihr Data Center mit Cloud Services
 
Süßwarenhersteller und Discounter launchen Webportal für EM 2016-Gewinnspiel
Süßwarenhersteller und Discounter launchen Webportal für EM 2016-GewinnspielSüßwarenhersteller und Discounter launchen Webportal für EM 2016-Gewinnspiel
Süßwarenhersteller und Discounter launchen Webportal für EM 2016-Gewinnspiel
 

Ähnlich wie Serverless Survival Guide

Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
QAware GmbH
 

Ähnlich wie Serverless Survival Guide (20)

Less Server vs. Serverless?
Less Server vs. Serverless?Less Server vs. Serverless?
Less Server vs. Serverless?
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
 
Dockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloudDockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloud
 
Day CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuDay CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neu
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-LösungMit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
Mit LoRaWAN und Serverless zur eigenen Smart-Office-Lösung
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
AuroraWP - Infracoders Meetup Graz
AuroraWP - Infracoders Meetup GrazAuroraWP - Infracoders Meetup Graz
AuroraWP - Infracoders Meetup Graz
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
Ansible für Entwickler: Konfigurationsmanagement nicht nur für Ops
Ansible für Entwickler: Konfigurationsmanagement nicht nur für OpsAnsible für Entwickler: Konfigurationsmanagement nicht nur für Ops
Ansible für Entwickler: Konfigurationsmanagement nicht nur für Ops
 
Startimpuls at Microsoft w/ IFJ
Startimpuls at Microsoft w/ IFJStartimpuls at Microsoft w/ IFJ
Startimpuls at Microsoft w/ IFJ
 
Blueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWS
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenBASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
 
Das ist SIDESTREAM
 Das ist SIDESTREAM Das ist SIDESTREAM
Das ist SIDESTREAM
 
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
 
Continuous Delivery in ADF Projekten
Continuous Delivery in ADF ProjektenContinuous Delivery in ADF Projekten
Continuous Delivery in ADF Projekten
 
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web ServicesFMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
 

Mehr von OPEN KNOWLEDGE GmbH

Mehr von OPEN KNOWLEDGE GmbH (19)

Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AIWarum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
 
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationFEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
 
Nie wieder Log-Files!
Nie wieder Log-Files!Nie wieder Log-Files!
Nie wieder Log-Files!
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud. From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud.
 
API Expand Contract
API Expand ContractAPI Expand Contract
API Expand Contract
 
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoReady for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
 
Shared Data in verteilten Architekturen
Shared Data in verteilten ArchitekturenShared Data in verteilten Architekturen
Shared Data in verteilten Architekturen
 
Machine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.jsMachine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.js
 
KI und Architektur
KI und ArchitekturKI und Architektur
KI und Architektur
 
It's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale NetzeIt's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale Netze
 
Business-Mehrwert durch KI
Business-Mehrwert durch KIBusiness-Mehrwert durch KI
Business-Mehrwert durch KI
 
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
 
Die Matrix: Enterprise-Architekturen jenseits von Microservices
Die Matrix: Enterprise-Architekturen jenseits von MicroservicesDie Matrix: Enterprise-Architekturen jenseits von Microservices
Die Matrix: Enterprise-Architekturen jenseits von Microservices
 
Maschinen ohne Gewissen: wenn KI auf Ethik trifft
Maschinen ohne Gewissen: wenn KI auf Ethik trifftMaschinen ohne Gewissen: wenn KI auf Ethik trifft
Maschinen ohne Gewissen: wenn KI auf Ethik trifft
 
Modern Web: Trends der Webentwicklung
Modern Web: Trends der WebentwicklungModern Web: Trends der Webentwicklung
Modern Web: Trends der Webentwicklung
 
Spaß mit Microservices: Transaktionen
Spaß mit Microservices: TransaktionenSpaß mit Microservices: Transaktionen
Spaß mit Microservices: Transaktionen
 

Serverless Survival Guide

  • 1. #WISSENTEILEN heute: The Serverless Survival Guide by Lars Röwekamp @mobileLarson open knowledge GmbH @_openknowledge
  • 2. ÜBER OPEN KNOWLEDGE Branchenneutrale Softwareentwicklung & IT-Beratung
  • 3. ÜBER MICH Wer bin ich - und wenn ja, wie viele? • CIO New Technologies • Enterprise & Mobile • Autor, Speaker, Coach & Mentor • Snowboard & MTB Enthusiast (a.k.a. “stets bemüht“) Lars Röwekamp (a.k.a. @mobileLarson)
  • 5. “Run your business code highly-available in the cloud in response to events and scale without any servers to manage.“* * AWS Lambda Advertising
  • 6. Function as self-contained application Serverless Function: Entwickler schreibt eine Business- Funktion in einer der unterstützen Programmiersprachen, „bundled“ diese mit den entsprechenden Abhängigkeiten (LIBs) und lädt sie in die Cloud. Serverless Environment: Führt die Funktion bei „Aufruf“ in der passenden Runtime effizient, flexibel und hoch skalierbar aus. “
  • 7. Serverless no need to maintain Entwickler: Fokussiert sich ausschließlich auf die Umsetzung der Business-Logik und das Erstellen des Function-Bundle. Cloud Provider: liefert und maintained rundum-sorglos Umgebung für die Serverless Functions, inklusive etwaiger Cloud Services (z.B. Storage, DB, Streaming, AI). “
  • 8.
  • 10.
  • 12. AWS Cloud hello world serverless context 1 trigger request Hands-on: Hello World
  • 13. AWS Cloud hello world serverless context HelloWorld Logs 1 trigger request 2 Hands-on: Hello World
  • 14.
  • 18. Serverless Aber für was ist das gut?
  • 20. AWS Cloud Create Thumbnail Store raw Image Szenario #1: Datei-/Datenbearbeitung StoreImage Logs CreateThumbnail Logs S3 Object created 1 2 3 4 5 upload image
  • 21. AWS Cloud Data Stream Analysis StreamAnalyzer Logs Real-Time Monitoring / Querying store anomalies extracted by lambda function 1 sensor data stream is uploaded to Kinesis in real-time 2 3 Lambda runs code to detect anomalies 4 data immediately available for interested parties to query Szenario #2: Stream Processing tons of very important sensor data
  • 22. Szenario #3: Web Application AWS Cloud Web Client storage related functions database related functions additional functions, e.g. region aware web app delivery 1 login via id/pwd returns JWT 2 6 3 REST call 4 translated lambda trigger 5 lambda @work 5 lambda @work
  • 25. The Road to the Cloud ... Der Serverless Showcase
  • 26. Web Image Gallery (easy version) GET ../images/{imageId} PUT ../images/{imageId} DELETE ../images/{imageId} POST ../images/
  • 27. Web Image Gallery (not so easy version) GET ../images/{imageId} PUT ../images/{imageId} DELETE ../images/{imageId} POST ../images/
  • 28. Web Image Gallery (real life version) GET ../images/{imageId} PUT ../images/{imageId} DELETE ../images/{imageId} POST ../images/
  • 31. 1 trigger request Hello World „under the Hood“ AWS Cloud
  • 32. HelloWorld ZIP 1 trigger request Hello World „under the Hood“ Download Function Code ZIP Cloud Storage S3 AWS Cloud 2
  • 33. HelloWorld ZIP 1 trigger request Hello World „under the Hood“ Download Function Code Setup Runtime ZIP Cloud Storage S3 AWS Cloud 2 3
  • 34. HelloWorld ZIP 1 trigger request Hello World „under the Hood“ Download Function Code Setup Runtime Init Function ZIP Cloud Storage S3 AWS Cloud 2 3 4
  • 35. HelloWorld ZIP 1 trigger request Hello World „under the Hood“ Download Function Code Setup Runtime Init Function ZIP Cloud Storage S3 AWS Cloud 2 3 4 COLD START
  • 36. trigger request Hello World „under the Hood“ Download Function Code ZIP AWS Cloud Setup Runtime Init Function COLD START
  • 37. trigger request Hello World „under the Hood“ Download Function Code ZIP AWS Cloud Setup Runtime Init Function COLD START Execute Handler
  • 38. trigger request Hello World „under the Hood“ Download Function Code ZIP AWS Cloud Setup Runtime Init Function COLD START Execute Handler Terminate Function
  • 39. trigger request Hello World „under the Hood“ ZIP AWS Cloud COLD START Terminate Function Execute Handler
  • 40. trigger request Hello World „under the Hood“ ZIP AWS Cloud COLD START Terminate Function Execute Handler Execute Handler trigger request
  • 41. trigger request Hello World „under the Hood“ ZIP AWS Cloud COLD START Execute Handler Terminate Function Execute Handler Execute Handler trigger request trigger request
  • 42. Lambda Aufruf Spaß mit Cold Start ZIP AWS Cloud Active Container Active Container Active Container Cold Start Container aktiver Container vorhanden? JA1) NEIN2) 1) Aktiver Container, der nicht gerade einen Lambda Aufruf abarbeitet, kann wieder / weiter verwendet werden. 2) Neuer Container muss erzeugt, Function Code herunter geladen und die Runtime neu initialisiert werden.
  • 43. Spaß mit Cold Start ZIP AWS Cloud Active Container Active Container Active Container Cold Start Container aktiver Container vorhanden? JA1) NEIN2) 1) Aktiver Container, der nicht gerade einen Lambda Aufruf abarbeitet, kann wieder / weiter verwendet werden. 2) Neuer Container muss erzeugt, Function Code herunter geladen und die Runtime neu initialisiert werden. Lambda Aufruf PING PING PING
  • 44. Spaß mit Cold Start +++ NEW +++ NEW +++ NEW +++
  • 45. EVENT Hello World REALLY „under the Hood“ AWS Cloud Frontend Invoker Frontend Invoker Workers Manager Workers Manager Worker Worker Worker Worker ZIP ZIP Load Balancer Availability Zone Availability Zone
  • 46. Spaß mit Cold Start Worker Instance Hardware Guest OS Sandbox Lambda Runtime Your Code Host OS Hypervisor one Function one Account many Accounts EC 2 System Firecracker* *https://firecracker-microvm.github.io
  • 47. Spaß mit Cold Start Initialization vs. Handler
  • 48. Spaß mit Cold Start Initialization vs. Handler
  • 50. AWS Cloud Execute Handler Spaß mit Skalierung Cold Start Execute Handler Execute Handler Execute Handler Terminate Function Event Event Event Event
  • 51. AWS Cloud Execute Handler Spaß mit Skalierung Cold Start Terminate Function Event Event Event Event x x x
  • 52. AWS Cloud Spaß mit Skalierung Cold Start Execute Handler Lambda No #1 Lambda No #1 Event
  • 53. AWS Cloud Spaß mit Skalierung Cold Start Execute Handler Lambda No #1 Lambda No #1 Event Event
  • 54. AWS Cloud Spaß mit Skalierung Cold Start Execute Handler Lambda No #1 Lambda No #1 Event Event Lambda No #1 ?
  • 55. AWS Cloud Spaß mit Skalierung Cold Start Execute Handler Lambda No #1 Lambda No #1 Event Event Lambda No #1 ? x
  • 56. AWS Cloud Spaß mit Skalierung Cold Start Execute Handler Lambda No #1 Lambda No #1 Event Event Lambda No #2 ! Cold Start Execute Handler Lambda No #2
  • 57. AWS Cloud Spaß mit Skalierung Cold Start Execute Handler Lambda No #1 Lambda No #1 Event Event Lambda No #2 ! Cold Start Execute Handler Lambda No #2
  • 58. AWS Cloud Spaß mit Skalierung Cold Start Cold Start Execute Handler Execute Handler Lambda No #1 Lambda No #2 Lambda No #2 Lambda No #1 Event Event Event
  • 59. AWS Cloud Spaß mit Skalierung Cold Start Cold Start Execute Handler Execute Handler Lambda No #1 Lambda No #2 Lambda No #2 Lambda No #1 Event Event Event Lambda No #1 ?
  • 60. AWS Cloud Spaß mit Skalierung Cold Start Cold Start Execute Handler Execute Handler Lambda No #1 Lambda No #2 Lambda No #2 Lambda No #1 Event Event Event Lambda No #1 ? x
  • 61. AWS Cloud Spaß mit Skalierung Cold Start Cold Start Execute Handler Execute Handler Lambda No #1 Lambda No #2 Lambda No #2 Lambda No #1 Event Event Event Lambda No #2 ?
  • 62. AWS Cloud Spaß mit Skalierung Cold Start Cold Start Execute Handler Execute Handler Lambda No #1 Lambda No #2 Lambda No #2 Lambda No #1 Event Event Event Lambda No #2 ? x
  • 63. AWS Cloud Spaß mit Skalierung Cold Start Cold Start Execute Handler Execute Handler Cold Start Execute Handler Lambda No #1 Lambda No #2 Lambda No #3 Lambda No #2 Lambda No #3 Lambda No #1 Event Event Event !
  • 64. AWS Cloud Spaß mit Skalierung Cold Start Cold Start Execute Handler Execute Handler Cold Start Execute Handler Lambda No #1 Lambda No #2 Lambda No #3 Lambda No #2 Lambda No #3 Lambda No #1 Event Event Event
  • 65. Event AWS Cloud Spaß mit Skalierung Cold Start Event Event Event Cold Start Execute Handler Execute Handler Cold Start Execute Handler Lambda No #1 Lambda No #2 Lambda No #3 Lambda No #2 Lambda No #3 Lambda No #1
  • 66. Event AWS Cloud Spaß mit Skalierung Cold Start Event Event Event Cold Start Execute Handler Execute Handler Cold Start Execute Handler Lambda No #1 Lambda No #2 Lambda No #3 Lambda No #2 Lambda No #3 Lambda No #1 Lambda No #1 ?
  • 67. Event AWS Cloud Spaß mit Skalierung Cold Start Event Event Event Cold Start Execute Handler Execute Handler Cold Start Execute Handler Execute Handler Lambda No #1 Lambda No #2 Lambda No #3 Lambda No #2 Lambda No #3 Lambda No #1 Lambda No #1
  • 69. The Road to the Cloud ... Der Serverless Showcase
  • 70. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2 Use-Case: Upload Image upload image with additional information
  • 72. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 73. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 74. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 75. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 76. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 77. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 78. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 79. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 80. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 81. AWS Cloud AWS Step Functions workflow: Store Image Create Thumbnail Inform Subscribers Store raw Image Store Image Information 1 2
  • 82. “Run your business code highly-available in the cloud in response to events and scale without any servers to manage.“* *(AWS Lambda product description)
  • 83. “Run your business code highly distributed and event driven in a non transparent environment with no single point of control.“* *(my personal interpretation)
  • 84.
  • 85. Serverless Wie soll ich das nur testen*? *Unit, Integration & End-toEnd
  • 86. Testen in der Serverless Welt „The biggest complexity is not within the function itself, but in how it interacts with other functions and services (a.k.a. cloud components).“
  • 87. #1 Trennen von Businesslogik und Infrastruktur Testing Best Practices AWS Cloud On-Premise handler logic Kandidat für Unit Tests e i u Kandidat für Integration Tests Kandidat für End-to-Ende Tests u
  • 88. #2 Cloud-Infrastruktur Komponenten mocken Testing Best Practices AWS Cloud On-Premise handler logic u u m Kandidat für Unit Tests e i u Kandidat für Integration Tests Kandidat für End-to-Ende Tests
  • 89. #3 Lokale Umgebung für funktionale Tests verwenden (z.B. SAM local) Testing Best Practices AWS Cloud On-Premise handler logic u via SAM local via SAM local SAM yaml TEST u u Kandidat für Unit Tests e i u Kandidat für Integration Tests Kandidat für End-to-Ende Tests
  • 90. #4 Lokale Umgebung zum Triggern von Integration Tests verwenden Testing Best Practices AWS Cloud On-Premise handler logic u via SAM local via SAM local SAM yaml TEST u u i i Kandidat für Unit Tests e i u Kandidat für Integration Tests Kandidat für End-to-Ende Tests
  • 91. #5 Lokale Cloud-Komponenten für Integration Tests* Testing Best Practices AWS Cloud On-Premise handler logic u via DynamoDB local via FakeS3 via SAM local via SAM local SAM yaml TEST u u i i i i WARNUNG: lokale Cloud Komponenten können lediglich funktionale Korrektheit sicherstellen, nicht aber infrastrukturelle, wie z.B. DLQs, Timeouts, Throttling, SLAs, … Kandidat für Unit Tests e i u Kandidat für Integration Tests Kandidat für End-to-Ende Tests
  • 92. #6 temporäre Integration-Cloud für partielle Integration Tests Testing Best Practices AWS Cloud On-Premise handler logic u via SAM local via SAM local SAM yaml TEST u u via DynamoDB local via FakeS3 i i Temorary Intregration #Dev1 i i INT i i Kandidat für Unit Tests e i u Kandidat für Integration Tests Kandidat für End-to-Ende Tests
  • 93. #7 permanente Integration-Cloud für End-to-End Tests Testing Best Practices AWS Cloud On-Premise handler logic u via SAM local via SAM local SAM yaml TEST u u via DynamoDB local via FakeS3 i i Permament Intregration INT e e e e i i Kandidat für Unit Tests e i u Kandidat für Integration Tests Kandidat für End-to-Ende Tests
  • 95.
  • 96. Testing endet nicht in Produktion!
  • 97. Testing in Produktion Ziele des Testens: „Vertrauen gewinnen“ • Outages von Cloud & Cloud-Komponenten • Outages von 3rd Party Apps • Bugs / Probleme durch Skalierung
  • 98. Testing in Produktion Robustes Monitoring und Error Reporting • Logging • Tracing • Metrics • Alerting Vorhersagen von Störungen inklusive automatischer Regenerierung!
  • 99. Testing in Produktion Chaos Engineering • bewusst kleine “Probleme“ und „Fehler“ in das System einstreuen!
  • 100. Serverless Wie soll ich das monitoren*? *Logging, Tracing, Metrics & Alerting
  • 101. Mit einem gut geplantes Monitoring sollten wir in der Lage sein, … • aufkommende Probleme vorherzusagen • schnell die Ursache von Problemen zu identifizieren • automatische Recovery-Prozesse anzustoßen • notwendige Alarme zu triggern Real-Life Monitoring
  • 102. Real-Life Monitoring Business KPI UX SLA “Produkte pro Bestellung” “Durchschnittlicher Bestellwert” “Abbruchrate” “Erste Darstellung von Inhalten” “Erste sinnvolle Darstellung" “Erste Interaktion” “Verfügbarkeit” “Latenz” “Beständigkeit” “Konsistenz”
  • 103. Gut geplantes Monitoring berücksichtigt verschiedene Aspekte • reliability: Komponenten und Kommunikation • usage: funktional und nicht-funktional • performance: Dauer, Latenz und Timeouts • security: Zugriffsrechte, Attacken • costs: aktuelle Kosten, Kostenentwicklung Real-Life Monitoring
  • 104. #1 User-facing Latency vermeiden Monitoring Best Practices AWS Cloud My Lambda logs log stream log data async sync Log Aggregator log data 1 very fast and cheap 2 3 time consuming and “expensive” parse log stream
  • 105. #2 umfangreiche System-/Anwendungsmetriken sammeln Monitoring Best Practices AWS Cloud My Lambda logs log stream log data async sync Log Aggregator metrics custom metrics custom metrics log data 2 3 1 very fast and cheap parse log stream custom metrics
  • 106. #3 unnötige Kosten vermeiden Monitoring Best Practices AWS Cloud My Lambda logs log stream log data async sync Log Aggregator metrics custom metrics custom metrics log data archive logs 1 2 custom metrics
  • 107. #4 Logs und Metriken korrelieren / aggregieren Monitoring Best Practices AWS Cloud My Lambda logs log stream log data async sync Log Aggregator metrics custom metrics custom metrics log data archive logs 1 correlation ID custom metrics
  • 108. #5 Logging via ENV Vars an Edge Server enablen/disablen Monitoring Best Practices AWS Cloud My Lambda logs log stream log data async sync Log Aggregator metrics custom metrics custom metrics log data archive logs DEBUG on/off ENV var 1 2 custom metrics
  • 109. Schlussfolgerung: Spaß haben mit Serverless?
  • 110. “Find suitable serverless workload and apply the correct integration patterns.”
  • 111. “Serverless testing & monitoring is an essential part of your serverless infrastructure.”
  • 112. ? ? ?
  • 114. #01 © asbe istockphoto.com #09 © CandyDuck shutterstock.com #19 © Myvisuals shutterstock.com #24 © Bradley Hook pexels.com Bildernachweis All other pictures inside this presentation orginate from pexels.com, pixabay.com, flaticon.com or were created by my own.