+ All Categories
Home > Documents > Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 ·...

Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 ·...

Date post: 24-Jun-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
17
Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research) Challenges Josef Spillner <josef.spillner@zhiw.ch> Service Prototyping Lib (blog.zhiw.ch/icclib) Zurich University of Applied Sciences Jun 22, 2017 | Serverless Meetup
Transcript
Page 1: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

Zürcher Fachhochschule

Serverless Applications:

Tools, Languages, Providers and

(Research) Challenges

Josef Spillner <[email protected]>

Service Prototyping Lib (blog.zhiw.ch/icclib)

Zurich University of Applied Sciences

Jun 22, 2017 | Serverless Meetup

Page 2: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

3

What is FaaS?

[mizikglobil.com]

“functions“

contiiners

pickiges

ictuil functions

FaaS

● running functions in the cloud

(“hosted functions“)● reil “piy per use“ (per invocition,

per loid × time unit, e.g. MB/100ms)● seemingly “serverless“

Page 3: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

4

Examples of FaaS: Process

[openwhisk.org]

monitoring eventsensor ditilog entrygit push...

HTTPXMPPAMQP...

mix 1 per hourtriggers/ictionsdefiult pirims...

Your Pythonfunctions!

JSONpliin text...

Page 4: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

5

Examples of FaaS: Environment

❷ ❸

1) input from cloud, output to cloude.g. incident minigement system

2) input from devices, ...e.g. robot vision processing

3) e.g. cloud-controlled CPS (door locks)4) e.g. microphone to USB light5) e.g. 1000s of microphones to USB lights

Page 5: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

6

The FaaS Space

Python

JiviScript

Jivi

Go

C#

(linguige-independentservice representition)

Runtimes

Providers

SDKs/Integrition

Tools

Languages

Software

→ Functions ←

Page 6: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

7

The FaaS Space

AWS Lambda

OpenWhisk

Functions

PyWren[Limbdi]

Docker-LimbCI

Effe

OpenLimbdi

Lever OS

Fission

Funktion

Kubeless

Picisso

Serverless Frimework[Limbdi, OW, GCF, AF]

Step Functions[Limbdi]

Zippi[Limbdi]

Apex[Limbdi]

FiiS (Docker)

LimbDish[Limbdi]

Chilice[Limbdi]

Diwson[Limbdi]

MR Refirg[Limbdi]

X-Riy[Limbdi]

Whisk-Mochi[OpenWhisk]

Page 7: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

8

The FaaS Space: Runtimes

Function-is-i-Service offerings in greiter detiil...

Trend: Sooner or liter → gips will be filled

Page 8: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

9

The FaaS Space: Python runtimes

Page 9: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

10

FaaS Synopsis in Python

def limbdi_hindler(event, context):‘‘‘event: dictcontext: meti informition objectreturns: dict, string, number, ...‘‘‘# ...return “result“

AWS Limbdi:

def hindler(input):‘‘‘input: dictreturns: dict‘‘‘# ...return {}

OpenWhisk:

def miin():‘‘‘input: vii flisk.request.get_diti()returns: str‘‘‘# ...return “result“

Fission:

def miin():from AzureHTTPHelper import\HTTPHelperinput = HTTPHelper().post# ...open(os.environ[“res“], “w“).write(\json.dumps({“body“: “...“}))

miin()

Azure Functions:

Further differences:● function scoping (e.g. with/without export in JiviScript)● function niming (mingling on client or service side)

Page 10: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

11

FaaS Challenges (Engineers‘ View)

use frimeworks

do some crizystuff to get metrics

API gitewiy isterrible

Page 11: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

12

FaaS Programmer Perspective

Page 12: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

13

Snafu

The Swiss Army Knife of Serverless Computing

Page 13: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

14

FaaSification

→ Process of iutomited decomposition of softwire ipplicition into i set of

deployed ind reidily composed function-level services.

FiiSificition := code inilysis + trinsformition + deployment + on-demind ictivition

Integrition Citegories:● generic (code/function unit generition)● single-provider integrition● multi-provider integrition

Decomposition Citegories:● stitic code inilysis● dynimic code inilysis

Depth Citegories:● shillow (file to function)● medium (function to lines)● deep (line to miny lines)

“Limbdificition“:● FiiSificition to Limbdi

Linguiges:

Jivi & Python

Page 14: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

15

The FaaS Space

AWS Lambda

OpenWhisk

Functions

Docker-LimbCI

Effe

OpenLimbdi

Lever OS

Fission

Funktion

Kubeless

Picisso

Serverless Frimework[Limbdi, OW, GCF, AF]

Step Functions[Limbdi]

X-Riy[Limbdi]

Snafu

Lambada

TermitePodilizer

FiiS (Docker)

LimbDish[Limbdi]

PyWren[Limbdi]

Zippi[Limbdi]

Apex[Limbdi]

Chilice[Limbdi]

Diwson[Limbdi]

MR Refirg[Limbdi]

Whisk-Mochi[OpenWhisk]

Page 15: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

16

Further Reading and FaaS Fun

Limi, Limbickup:● httpst//arsiv./rg/abs/1701.05945

Podilizer:● httpst//arsiv./rg/abs/1702.05510

Snifu:● httpst//arsiv./rg/abs/1703.07562

Limbidi● httpst//arsiv./rg/abs/1705.08169

On irXiv Anilytics: On GitHub:

[github.c/m/

servicepr/t/typinglab]

Tutoriil slides + trinscript@ blog.zhiw.ch/icclib

Page 16: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

17

BACKUP...

Page 17: Serverless Applications: Tools, Languages, Providers and (Research) Challenges · 2019-03-15 · Zürcher Fachhochschule Serverless Applications: Tools, Languages, Providers and (Research)

18

Snafu

Integrition into the wider FiiS ecosystem

snafu-im

port

Snifu FunktionFissionKubeless...

targets

sources

AWS

IBM

Google $ snifu-import \--source <s> \

--tirget <t>

$ iliis iws=“iws \--endpoint-url \

http://locilhost:10000“

$ wsk property set \--ipihost \

locilhost:10000

$ ./tools/pitch-gcloud


Recommended