function as a service (faas) aka...

35
© 2010 VMware Inc. All rights reserved Function as a Service (FaaS) aka Serverless Computing AWS Lambda in Action Danilo Poccia Manning

Upload: others

Post on 30-May-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

© 2010 VMware Inc. All rights reserved

Function as a Service (FaaS)aka

Serverless Computing

AWS Lambda in ActionDanilo PocciaManning

Page 2: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

2

Function as a Service (FaaS)

§ Cloud provider • Manages infrastructure

• Manages software stack (OS, runtime)

• Handles provisioning

• Availability

• Scalability

§ Developer• Implements application as set of functions

• Functions run when certain events are triggered• Web request

• File upload

• Alarm

• Database update

§ Examples:• AWS Lambda, Google Cloud Functions, IBM OpenWhisk, MSFT Azure Functions

Page 3: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

3

Lambda Execution Environment

§ Function runs inside an operating system container• Single OS runs multiple containers• Isolation ensures that only processes inside container are visible• Has its own file system /tmp

§ Runtimes: C#, Node.js, Java, Python

§ A container handles a single function/event at a time

§ Concurrent execution by container replication

§ Containers may be reused for subsequent function executions

§ Containers may be terminated at any time• Stateless• Store all persistent state outside of container

Page 4: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

4

Lambda Invocation Modalities

§ Synchronous (RequestResponse)

§ Asynchronous (Event)

Page 5: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

5

Lambda Application Architecture

Page 6: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

6

1st Lambda Function

Page 7: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

7

1st Lambda Function

Page 8: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

8

1st Lambda Function

Page 9: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

9

1st Lambda Function

Page 10: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

10

1st Lambda Function

Page 11: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

11

1st Lambda Function

Page 12: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

12

Lambda Function Testing Arguments

Page 13: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

13

Lambda Function Testing

Page 14: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

14

Lambda Command Line Interface (CLI)

§ Download from http://aws.amazon.com/cli

§ Configure credentials

Create access key on AWS Console

> aws configure

§ Call function

> aws lambda list-functions

> aws lambda invoke --function-name helloWorld --payload '{}' output.txt

> aws lambda invoke --function-name helloWorld --payload '{"name":"Eyal"}' output.txt

Page 15: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

15

Reacting to S3 Events

Page 16: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

16

Reacting to S3 Events

Page 17: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

17

Reacting to S3 Events

Page 18: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

18

Reacting to S3 Events

Page 19: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

19

Reacting to S3 Events

Page 20: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

20

Reacting to S3 Events

Page 21: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

21

Reacting to S3 Events

Page 22: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

22

Reacting to S3 Events

Page 23: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

23

Function as Web API

§ Amazon API Gateway can be integrated with Lambda§ Turn http request into Lambda events§ Maps each Lambda Event into a URL endpoint

Page 24: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

24

Function as Web API

Page 25: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

25

Function as Web API

Page 26: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

26

Function as Web API

Page 27: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

27

Function as Web API

Page 28: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

28

Function as Web API

Page 29: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

29

Function as Web API

Page 30: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

30

Function as Web API

Page 31: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

31

Function as Web API

Page 32: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

32

Function as Web API

Page 33: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

33

Function as Web API

Page 34: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

34

Zappa

• Deploy Python WSGI applications on AWS Lambda + API Gateway. • https://github.com/Miserlou/Zappa

• Steps:• Install and configure AWS CLI• Create flask directory structure• Create a python virtual environment:

> virtualenv -p python3.6 venv> source venv/bin/activate

• Install flask> pip install flask

• Install zappa> pip install zappa> zappa init

Page 35: Function as a Service (FaaS) aka ServerlessComputingdelara/courses/ece1779/handouts/lambda/Lambda_large.pdf2 Function as a Service (FaaS) §Cloud provider •Manages infrastructure

35

Zappa

• zappa_settings.json

• Deploy application to AWS Lambda > zappa deploy dev