serverless london - lambda@edge (serverless & originless on aws)

22
clda.co/lambdaedgelondon AWS Lambda@Edge (Preview) Serverless & Originless on AWS 4/5/2017

Upload: alex-casalboni

Post on 21-Apr-2017

148 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

clda.co/lambda-­‐edge-­‐london

AWS  Lambda@Edge  (Preview)

Serverless  &  Originless  on  AWS

4/5/2017

Page 2: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

About  Me

@alex_casalboni

clda.co/lambda-­‐edge-­‐london

Computer  Science  Background

Master  in  Sound  &  Music  Engineering

Sr.  SoEware  Engineer  &  Web  Developer

Cloud  Evangelist  @  Cloud  Academy

Page 3: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

Agenda

What  is  Lambda@Edge?

Benefits  and  use  cases

Preview  limitaKons

My  personal  experiment

clda.co/lambda-­‐edge-­‐london

Page 4: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

What  is  Lambda@Edge?

How  does  it  work  and  how’s  it  different  from  AWS  Lambda?

clda.co/lambda-­‐edge-­‐london

Page 5: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

AWS  Lambda  &  Regions

us-­‐east-­‐1

clda.co/lambda-­‐edge-­‐london

Page 6: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

AWS  Lambda  &  Regions

us-­‐east-­‐1 eu-­‐west-­‐1

clda.co/lambda-­‐edge-­‐london

Page 7: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

AWS’s  CDN  &  PoPs

70+  PoPs

clda.co/lambda-­‐edge-­‐london

Page 8: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

Amazon  CloudFront

StaKc  content  (web  assets,  videos,  etc.)

Dynamic  content  (cache)

70+  Edge  LocaKons

Custom  SSL  &  domain  name

Cache  InvalidaKon

AnalyKcs  dashboard

Custom  origins  (e.g.  EC2)

Supports  cookies  &  querystrings

clda.co/lambda-­‐edge-­‐london

Page 9: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

Hits/Misses/Errors

clda.co/lambda-­‐edge-­‐london

Page 10: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

Lambda@Edge  Architecture

clda.co/lambda-­‐edge-­‐london

Page 11: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

CloudFront  Triggers

Viewer  Request

Viewer  Response

Origin  Request

Origin  Response

Before  cache  hit/miss

A8er  cache  hit/miss

Only  if  cache  miss,  before  forwarding

Only  if  cache  miss,  a8er  forwarding

clda.co/lambda-­‐edge-­‐london

Page 12: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

Benefits  and  use  cases

Use  cases  categorisa@on  and  analysis

clda.co/lambda-­‐edge-­‐london

Page 13: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

AWS  Lambda@Edge  Use  cases

Request/Response  manipulaKon

Dynamic  content  generaKon

Pure  latency  opKmizaKon

clda.co/lambda-­‐edge-­‐london

Page 14: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

1.  Request/Response  manipulaQon

Custom  HTTP  headers

Adapt  to  client  capabiliKes

Add  Kmezone-­‐related  info

A/B  tesKng

URL  rewriKng  /  redirects

Cookies  manipulaKon

clda.co/lambda-­‐edge-­‐london

Page 15: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

2.  Dynamic  content  generaQon  *

Custom  error  pages

Custom  signup  forms

Opzimized  JS  code  (Polyfill.io)

Dynamic  HTML

*  Never  hit  the  origin!

clda.co/lambda-­‐edge-­‐london

Page 16: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

3.  Pure  latency  opQmizaQon  *

401  errors  if  missing  auth

Custom  edge-­‐based  logging

Custom  data  validaKon

Custom  data  transformaKon

*  Assuming  dynamic  origin

clda.co/lambda-­‐edge-­‐london

Page 17: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

Preview  limitaKons

What  restric@ons  do  you  encounter  during  the  preview  phase?

clda.co/lambda-­‐edge-­‐london

Page 18: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

LimitaQons  (preview  only)

Max  50ms

Only  128MB  (RAM)

Only  1MB  of  code

Only  Node.js  4.3

clda.co/lambda-­‐edge-­‐london

Slightly  different  programming  model

Manual  handling  of  HTTP  convenKons  (OPTIONS,  204,  etc.)

Page 19: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

LimitaQons  (permanent)

No  HTTP  calls

No  AWS  SDK

No  VPC/DLQ  config

No  real-­‐Kme  logging

No  3rd-­‐party  monitoring

Slow  deploy  (up  to  15min)

clda.co/lambda-­‐edge-­‐london

Page 20: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

My  personal  experiment

Finally  some  code  :)

clda.co/lambda-­‐edge-­‐london

Page 21: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

Render  dynamic  HTML  with  Lambda@Edge

<  origin-­‐less  demo  >

clda.co/lambda-­‐edge-­‐london

clda.co/lambda-­‐edge-­‐gist

clda.co/lambda-­‐edge-­‐demo

Page 22: Serverless London - Lambda@Edge (Serverless & Originless on AWS)

Thank  you  =)

clda.co/lambda-­‐edge-­‐london

Q  &  A

4/5/2017