Slide 1

Slide 1 text

BUILDING SERVERLESS APPLICATIONS

Slide 2

Slide 2 text

SANDER VAN DE GRAAF. Cloud Solutions Architect / Consultant 15+ years large scale applications 5+ years AWS experience AWS APN Ambassador http://twitter.com/svdgraaf http://linkedin.com/in/svdgraaf http://svdgraaf.nl [email protected]

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

WHAT IS SERVERLESS?

Slide 5

Slide 5 text

PERSPECTIVE. •VM's •Hardware abstraction •Unit of scale: machines • WHAT IS SERVERLESS?

Slide 6

Slide 6 text

PERSPECTIVE. •VM's •Hardware abstraction •Unit of scale: machines •Containers •OS abstraction •Unit of scale: application • WHAT IS SERVERLESS?

Slide 7

Slide 7 text

PERSPECTIVE. •VM's •Hardware abstraction •Unit of scale: machines •Containers •OS abstraction •Unit of scale: application •Serverless •Runtime abstraction •Unit of scale: functions WHAT IS SERVERLESS?

Slide 8

Slide 8 text

PERSPECTIVE. •VM's "I want to configure machines, storage, networking and my OS" •Containers "I want to run servers, configure applications and control scaling" •Serverless "Run my code when it's needed" WHAT IS SERVERLESS?

Slide 9

Slide 9 text

PERSPECTIVE. By Simon Wardley: https://twitter.com/swardley/status/951783539334352896 WHAT IS SERVERLESS?

Slide 10

Slide 10 text

WHAT IS SERVERLESS? "An application running on 3rd party services (BAAS) and/or using serverless computing (FAAS)" - Martin Fowler WHAT IS SERVERLESS?

Slide 11

Slide 11 text

WHAT IS SERVERLESS? "An application running on 3rd party services (BAAS) and/or using serverless computing (FAAS)" - Martin Fowler WHAT IS SERVERLESS?

Slide 12

Slide 12 text

BAAS/FAAS. WHAT IS SERVERLESS? •BAAS: Backend As A Service - Databases: Parse/Firebase/etc - Authentication: Auth0, AWS Cognito - etc... •FAAS: Functions As A Service

Slide 13

Slide 13 text

PROVIDERS. Google Cloud Functions Azure Functions AWS Lambda WHAT IS SERVERLESS?

Slide 14

Slide 14 text

WHY SERVERLESS?

Slide 15

Slide 15 text

PATCHING?! Patching? YAY!
 Said no one ever. WHY SERVERLESS?

Slide 16

Slide 16 text

PATCHING?! WHY SERVERLESS?

Slide 17

Slide 17 text

PATCHING?! WHY SERVERLESS?

Slide 18

Slide 18 text

RUNTIMES. •C# .net core 1.0/2.0 •Go 1.x •Java 8 •NodeJS 4.3, 6.10 •Python 2.7, 3.6 WHY SERVERLESS?

Slide 19

Slide 19 text

EVENT BASED. • API Gateway • AWS IoT • Alexa Skills Kit • Alexa Smart Home • CloudWatch Events • CloudWatch Logs • CodeCommit • Cognito Sync Trigger • DynamoDB • Kinesis • S3 • SNS WHY SERVERLESS?

Slide 20

Slide 20 text

STATELESS. Event doStuff(event) Time WHY SERVERLESS?

Slide 21

Slide 21 text

STATELESS. doStuff() Time doStuff() doStuff() doStuff() doStuff() doStuff() doStuff() doStuff() WHY SERVERLESS?

Slide 22

Slide 22 text

SCALABLE BY DEFAULT. Seconds WHY SERVERLESS? Provisioned Servers Requests / second 0 100 200 300 400 0 10 20 30 40 50 60 70 80 90 100 110 120 130 Requests

Slide 23

Slide 23 text

SCALABLE BY DEFAULT. Seconds WHY SERVERLESS? Provisioned Servers Requests / second 0 100 200 300 400 0 10 20 30 40 50 60 70 80 90 100 110 120 Requests 130

Slide 24

Slide 24 text

COSTS. Pay per usage VM's: per minute WHY SERVERLESS?

Slide 25

Slide 25 text

COSTS. Pay per usage VM's: per minute Lambda: Per 100ms + per request WHY SERVERLESS?

Slide 26

Slide 26 text

COSTS. Pay per usage VM's: per minute Lambda: Per 100ms + per request $0.000000208 / 100ms + $0.0000002 / request

Slide 27

Slide 27 text

FREE STUFF! WHY SERVERLESS?

Slide 28

Slide 28 text

FREE STUFF! 400.000 GB-seconds / month 1 Million requests / month WHY SERVERLESS?

Slide 29

Slide 29 text

EXAMPLES.

Slide 30

Slide 30 text

SIMPLE WEBSITE.

Slide 31

Slide 31 text

CRON.

Slide 32

Slide 32 text

JOB QUEUEUEUEUE.

Slide 33

Slide 33 text

RESILIENT UPLOADING.

Slide 34

Slide 34 text

SERVERLESS LORAWAN.

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

SERVERLESS LORAWAN. https://www.thethingsnetwork.org/docs/applications/http/

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

FRAMEWORKS. •Serverless Framework: serverless.com •Zappa: zappa.io •Chalice: github.com/aws/chalice

Slide 43

Slide 43 text

DEMO

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

SERVERLESS. •serverless.yml

Slide 50

Slide 50 text

SERVERLESS. •Serverless functions

Slide 51

Slide 51 text

SERVERLESS. •Deploy •pipenv run serverless deploy

Slide 52

Slide 52 text

SERVERLESS. •Setup ttn webhook •https://console.thethingsnetwork.org/applications/my-svdgraaf- application/integrations

Slide 53

Slide 53 text

SERVERLESS. •Simulate device •echo "20.3" | xxd -pu | xargs ttnctl devices simulate my-test-device

Slide 54

Slide 54 text

SERVERLESS. •Show logs •https://console.aws.amazon.com/cloudwatch/home?region=us- east-1#logs:prefix=/aws/lambda/ttn-serverless

Slide 55

Slide 55 text

SERVERLESS. •Call back

Slide 56

Slide 56 text

SERVERLESS. •Show logs •https://console.aws.amazon.com/cloudwatch/home?region=us- east-1#logStream:group=/aws/lambda/ttn-serverless-dev-downlink •

Slide 57

Slide 57 text

SERVERLESS. •Show data •https://console.thethingsnetwork.org/applications/my-svdgraaf- application/devices/my-test-device/data

Slide 58

Slide 58 text

CONCLUSION. •Cost effective infrastructure •Event based •Stateless •Highly scalable out of the box

Slide 59

Slide 59 text

QUESTIONS? Cloud Solutions Architect / Consultant 15+ years large scale applications 5+ years AWS experience AWS APN Ambassador http://twitter.com/svdgraaf http://linkedin.com/in/svdgraaf http://svdgraaf.nl [email protected] SANDER VAN DE GRAAF.