Serverless Computing

Die Bescha↵ungsplattform f¨ ur Gesch¨ aftskunden Serverless Computing mit AWS-Lambda J¨ org Adler, 31.3.2017 Wir @ Mercateo Mercateo ist Europas f...
Author: Kai Albert
3 downloads 1 Views 785KB Size
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