Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API...

71
01

Transcript of Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API...

Page 1: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

01

Page 2: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

02

Page 3: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Let's start!03

Page 4: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

What isserverless?

04

Page 5: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Look ma, noservers!

05

Page 6: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless ismeaningless!

06

Page 7: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

ServerlessI do not want to care about the servers!“07

Page 8: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless may also meanContainerless/Dockerless

Orchestratorless/Kubernetesless••

08

Page 9: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless !=Costless

09

Page 10: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless !=FaaS

10

Page 11: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless !=Operationless

11

Page 12: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless =Servicefull

12

Page 13: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Idea to production

13

Page 14: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless =IaU

14

Page 15: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Cheaper thanservers

15

Page 16: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless is a billing model!

16

Page 17: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Pay-as-you-go

17

Page 18: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

CapEx vsOpEx

18

Page 19: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Compute modelsL1: Hardware machines

L2: Virtual machines and hypervisors

L3: Containers and orchestrators

L4: Functions and services

••••

19

Page 20: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Security issuesWhat if my hardware is vulnerable? (Meltdown and Spectre)

What if my hypervisor is vulernable?

What if my operating system is vulernable? (Heartbleed)

What if my container engine is vulnerable? (CVE-2019-5736)

What if my application is vulnerable?

•••••

20

Page 21: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Lostprofessions

21

Page 22: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

FaaS22

Page 23: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Just codedef handler_name(event, context):

# implement logic

return some_value

01.

02.

03.

23

Page 24: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Just code?24

Page 25: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Typical questionsHow do I configure DB inside my function?

How do I add storage into my function?

How do I install tool X into my function?

•••

25

Page 26: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

You (usually)don't!

26

Page 27: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Built-in featuresLogging and auditing

Rate limits

Auto-scaling

Security controls

Multiple versions

Simplified deployment

••••••

27

Page 28: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Bought-in servicesDatabase-as-a-service

Storage-as-a-service

Messaging-as-a-service

Function-as-a-service

••••

28

Page 29: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Evolution29

Page 30: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

If it were 2005...Jetty/Tomcat/Ruby/PHP (on a server)

MySQL, PostgreSQL, HSQL, Sqlite (on a server)

File system (on a server)

•••

30

Page 31: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

If it were 2015...Jetty/Tomcat/Ruby/PHP (in a container on a server) or PaaS in the

cloud

MySQL, PostgreSQL, HSQL, Sqlite (on a server or in a container on a

server) or DaaS in the cloud

File system (in a volume on a server) or object storage in the cloud

31

Page 32: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

In 2020...CDN + FaaS + LB in the cloud

DaaS in the cloud

Object storage in the cloud

•••

32

Page 33: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

BenefitsNo baby-sitting with the infrastructure

Smaller accumulating technical debt

Minimise operations effort

Minimise cost of unused resources

••••

33

Page 34: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

FaaS painsMemory size

Archive size

CPU count

Cold starts

Long deployment times

Vendor lock-in

Limited runtime verions

Rate limits on external/internal traffic

Lots of infrastructure objects to configure

••••••••• 34

Page 35: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

FaaS offerings (generic cloud)Google Cloud Plafotm

Azure

IBM OpenWhisk

AWS

Zeit

•••••

35

Page 36: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

FaaS offerings (specialized)Cloudflare.com Web Workers (Edge)

Firebase Functions (BaaS)

Webtask.io (Chat Bots, Web Hooks)

Zapier.com (API Integrations)

Glitch.com (Chat Bots)

•••••

36

Page 37: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

AdoptionEvery organization that I worked with in the last 3 years runs at least

one function in production in the cloud.

37

Page 38: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Strangler patternYou can always optimize and migrate slowly!

38

Page 39: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Not just code39

Page 40: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless 1.0vs Serverless

2.040

Page 41: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless 2.0Improved DX (developer experience)

Support for custom runtimes (with or without Docker)

Serverless platformas deployable on-prem (e.g. OpenFaaS)

Local simulation environments

Integration with Git-based ecosystems

Automation of infrastructure dependecy management

••••••

41

Page 42: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

FaaS elementsFunction store

Gateway (ingress, routing, certificates)

Security

Event bus

GitOps experience

•••••

42

Page 43: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Patterns43

Page 44: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Single-purpose function

44

Page 45: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Single-purpose functionSmall function that does one thing, does it only and does it well!

45

Page 46: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Lambdalith

46

Page 47: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

LambdalithFunction implements several features, most likely responds to various

endpoints. It may be a fully-blown web server.

47

Page 48: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Function vsService

48

Page 49: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Function vs ServiceF: Fast to start, invoked on demand, uses limited resources, is not

guarateed to preserve state.

S: Always there (at least one instance), may have some long-living

internal cache, background proceses, usually takes longer to start.

49

Page 50: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Function vsContainer

50

Page 51: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

AWS Fargate51

Page 52: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

On-prem/CustomOpenFaaS

Kubeless

KNative

•••

52

Page 53: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Fat lambda

53

Page 54: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Fat lambdaOne code base, many (deployed) functions.

54

Page 55: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Routing lambdaFunction is calling other functions (through event bus or through direct

calls).

55

Page 56: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Craftbot

56

Page 57: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Routing function

57

Page 58: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Callback channel

58

Page 59: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Final setup

59

Page 60: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Terraform

60

Page 61: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Serverless

61

Page 62: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

dev.tube62

Page 63: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Peak time

63

Page 64: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Node.js64

Page 65: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

GCP65

Page 66: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Price optimizationData is inside a function! HA database attached to public internet

traffic is expensive!

Load balancer is expensive! f1.micro with nginx was cheaper.

Indexer runs once a day with some heuristics to not over-use Youtube

quota.

••

66

Page 67: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

ConclusionServerless is a platform! PaaS is reborn!

Serverless is not about lack of servers, it is about focusing on a higher

level abstraction!

Serverless is about bringing value faster by resuing services!

Servicefull!

••

••

67

Page 68: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Thank you!68

Page 69: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

69

Page 70: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Links &References70

Page 71: Let's start! · Firebase Functions (BaaS) Webtask.io (Chat Bots, Web Hooks) Zapier.com (API Integrations) Glitch.com (Chat Bots) • • • • • 36. Adoption Every organization

Projectshttps://serverless.com/

https://kubeless.io/

https://fnproject.io/

https://openfaas.com/

https://fission.io/

https://openwhisk.apache.org/

https://www.iron.io/

•••••••

71