Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
Serverless Computing mit AWS-Lambda J¨ org Adler, 31.3.2017
Wir @ Mercateo
Mercateo ist Europas f¨ uhrende Bescha↵ungsplattform. > 1 Mio. Gesch¨ aftskunden 21 Mio. Artikel mehr als 10.000 Hersteller
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
2
Wir @ Mercateo
Mercateo ist Europas f¨ uhrende Bescha↵ungsplattform. > 1 Mio. Gesch¨ aftskunden 21 Mio. Artikel mehr als 10.000 Hersteller Entwicklung von der Bescha↵ungsplattform zur Transaktionsplattform Massive Ver¨ anderungen in der IT-Landschaft
J¨ org Adler
[email protected] @joerg adler
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
2
Serverless
The Cloud
There is no cloud, it’s just somebody else’s computer.
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
3
Serverless
The Cloud
There is no cloud, it’s just somebody else’s computer. l¨ asst alle Services außer acht, die von Cloudanbietern bereitgestellt werden
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
3
Serverless
The Cloud
There is no cloud, it’s just somebody else’s computer. l¨ asst alle Services außer acht, die von Cloudanbietern bereitgestellt werden wo liegen die Kernkompetenzen der Firma
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
3
Serverless
The Cloud
There is no cloud, it’s just somebody else’s computer. l¨ asst alle Services außer acht, die von Cloudanbietern bereitgestellt werden wo liegen die Kernkompetenzen der Firma wie hoch sind die Kosten f¨ ur eigene Server
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
3
Serverless
The Cloud
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
4
No server is easier to ” manage than no server.“ Werner Vogels, CTO AWS
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
5
Serverless
FaaS
Der Cloudanbieter u ¨bernimmt Management aller Ressourcen
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
6
Serverless
FaaS
Der Cloudanbieter u ¨bernimmt Management aller Ressourcen Entwickler muss “nur“ Code bereitstellen
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
6
Serverless
FaaS
Der Cloudanbieter u ¨bernimmt Management aller Ressourcen Entwickler muss “nur“ Code bereitstellen Kann sehr schnell skaliert werden (starten von mehreren 1000 Funktionen gleichzeitig ist kein Problem)
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
6
Serverless
FaaS
Der Cloudanbieter u ¨bernimmt Management aller Ressourcen Entwickler muss “nur“ Code bereitstellen Kann sehr schnell skaliert werden (starten von mehreren 1000 Funktionen gleichzeitig ist kein Problem) keine dauerhafte lokale Speicherung
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
6
Serverless
FaaS
Der Cloudanbieter u ¨bernimmt Management aller Ressourcen Entwickler muss “nur“ Code bereitstellen Kann sehr schnell skaliert werden (starten von mehreren 1000 Funktionen gleichzeitig ist kein Problem) keine dauerhafte lokale Speicherung Umgebung nur f¨ ur einen Aufruf garantiert
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
6
Serverless
FaaS
Der Cloudanbieter u ¨bernimmt Management aller Ressourcen Entwickler muss “nur“ Code bereitstellen Kann sehr schnell skaliert werden (starten von mehreren 1000 Funktionen gleichzeitig ist kein Problem) keine dauerhafte lokale Speicherung Umgebung nur f¨ ur einen Aufruf garantiert zur Zeit nur anbieterspezifisch
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
6
AWS-Lambda
Spezifikationen
Unterst¨ utzt Java-, Node.js-, C#- und Python-Code. sehr harte Limits (z.B. 5 Minuten Ausf¨ uhrungszeit) Zugri↵ auf andere Amazon APIs
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
7
AWS-Lambda
Synchron
synchrone Ausf¨ uhrung mit API-Gateway Beispiel https://aws.amazon.com/de/serverless/
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
8
AWS-Lambda
Asynchron
asynchron von zahlreichen anderen Services (S3,...) Beispiel https://aws.amazon.com/de/serverless/
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
9
AWS-Lambda
Infrastruktur sogar an Edge Standorten, siehe https://aws.amazon.com/de/about-aws/global-infrastructure/
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
10
AWS-Lambda
Infrastruktur onsite beim Kunden https://aws.amazon.com/de/snowball-edge/
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
11
AWS-Lambda
Performance
Zahlen vom 13.2.17 https://arxiv.org/pdf/1702.04024.pdf
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
12
AWS-Lambda
Performance
Zahlen vom 13.2.17 https://arxiv.org/pdf/1702.04024.pdf Warmup-Zeiten f¨ ur Java-Lambdas liegen im Bereich mehrerer Sekunden
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
12
AWS-Lambda
Performance
Zahlen vom 13.2.17 https://arxiv.org/pdf/1702.04024.pdf Warmup-Zeiten f¨ ur Java-Lambdas liegen im Bereich mehrerer Sekunden Anbindung an S3 ca. 35 MB/sec
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
12
AWS-Lambda
Performance
Zahlen vom 13.2.17 https://arxiv.org/pdf/1702.04024.pdf Warmup-Zeiten f¨ ur Java-Lambdas liegen im Bereich mehrerer Sekunden Anbindung an S3 ca. 35 MB/sec mit 2800 Lambdas rund 40 Terraflops (rund 7 Cent/Sekunde, wenn ben¨ otigt)
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
12
AWS-Lambda
Performance
Zahlen vom 13.2.17 https://arxiv.org/pdf/1702.04024.pdf Warmup-Zeiten f¨ ur Java-Lambdas liegen im Bereich mehrerer Sekunden Anbindung an S3 ca. 35 MB/sec mit 2800 Lambdas rund 40 Terraflops (rund 7 Cent/Sekunde, wenn ben¨ otigt) zum Vergleich: Nvidia GTX Titan X Pascal 11 TFlops, 250 W TDP, rund 900 Euro
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
12
AWS-Lambda
Performance
Zahlen vom 13.2.17 https://arxiv.org/pdf/1702.04024.pdf Warmup-Zeiten f¨ ur Java-Lambdas liegen im Bereich mehrerer Sekunden Anbindung an S3 ca. 35 MB/sec mit 2800 Lambdas rund 40 Terraflops (rund 7 Cent/Sekunde, wenn ben¨ otigt) zum Vergleich: Nvidia GTX Titan X Pascal 11 TFlops, 250 W TDP, rund 900 Euro zum Vergleich: Intel i7: rund 92GFlops, 91W TDP, rund 320 Euro
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
12
AWS-Lambda
Performance
Zahlen vom 13.2.17 https://arxiv.org/pdf/1702.04024.pdf Warmup-Zeiten f¨ ur Java-Lambdas liegen im Bereich mehrerer Sekunden Anbindung an S3 ca. 35 MB/sec mit 2800 Lambdas rund 40 Terraflops (rund 7 Cent/Sekunde, wenn ben¨ otigt) zum Vergleich: Nvidia GTX Titan X Pascal 11 TFlops, 250 W TDP, rund 900 Euro zum Vergleich: Intel i7: rund 92GFlops, 91W TDP, rund 320 Euro plus Management, Infrastruktur
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
12
AWS-Lambda
AWS Libs
Amazon stellt SDKs und Libraries zur Verf¨ ugung
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
13
AWS-Lambda
AWS Libs
Amazon stellt SDKs und Libraries zur Verf¨ ugung gut gepflegt und auf github https://github.com/aws/aws-lambda-java-libs
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
13
AWS-Lambda
AWS Libs
Amazon stellt SDKs und Libraries zur Verf¨ ugung gut gepflegt und auf github https://github.com/aws/aws-lambda-java-libs zentrale Interfaces: 1 2 3
public interface RequestHandler { public O handleRequest ( I input , Context context ); }
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
13
AWS-Lambda
AWS Libs
Amazon stellt SDKs und Libraries zur Verf¨ ugung gut gepflegt und auf github https://github.com/aws/aws-lambda-java-libs zentrale Interfaces: 1 2 3
public interface RequestHandler { public O handleRequest ( I input , Context context ); }
1 2 3 4
public interface R e q u e s t S t r e a m H a n d l e r { public void handleRequest ( InputStream input , OutputStream output , Context context ) throws IOException ; }
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
13
AWS-Lambda
AWS Libs
Amazon stellt SDKs und Libraries zur Verf¨ ugung gut gepflegt und auf github https://github.com/aws/aws-lambda-java-libs zentrale Interfaces: 1 2 3
public interface RequestHandler { public O handleRequest ( I input , Context context ); }
1 2 3 4
public interface R e q u e s t S t r e a m H a n d l e r { public void handleRequest ( InputStream input , OutputStream output , Context context ) throws IOException ; }
Context beinhaltet Logger, Ablaufzeit, Speicher, Name der Funktion,...
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
13
AWS-Lambda
Wie weiter? f¨ ur asynchrones Aufrufen gibt es schon Standard-Events
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
14
AWS-Lambda
Wie weiter?
f¨ ur synchrones Aufrufen entweder eine Standard-Bean, oder Streams f¨ ur spezielle Mappings
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
15
AWS-Lambda
Wie weiter?
Maven Projekt bauen (mit shade plugin f¨ ur fat-jar)
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
16
AWS-Lambda
Wie weiter?
Maven Projekt bauen (mit shade plugin f¨ ur fat-jar) jar hochladen
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
16
AWS-Lambda
Wie weiter?
Maven Projekt bauen (mit shade plugin f¨ ur fat-jar) jar hochladen angeben wann Lambda getriggert werde soll (per Console, AWS-CLI, ...)
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
16
AWS-Lambda
Wie weiter?
Maven Projekt bauen (mit shade plugin f¨ ur fat-jar) jar hochladen angeben wann Lambda getriggert werde soll (per Console, AWS-CLI, ...) oder: Eclipse-Plugin benutzen
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
16
Demo
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
17
Go serverless, now!
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
18
Dokumentation lesen!
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
19
Vielen Dank f¨ ur Ihre Aufmerksamkeit. Fragen? :)
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
20
Zusammenfassung
Bildernachweis
Seite 5: https://en.wikipedia.org/wiki/Werner_Vogels Seite 18,19,20: www.pexels.com
Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden
21