running microservices with lambda and api gateway

58
AWS Cloud Kata for Start-Ups and Developers Hong Kong Aug 3

Upload: amazon-web-services

Post on 15-Apr-2017

817 views

Category:

Technology


0 download

TRANSCRIPT

AWS Cloud Kata for Start-Ups and Developers

Hong Kong

Aug 3

AWS Cloud Kata for Start-Ups and Developers

Hong Kong

Building Serverless BackendsUsing AWS Lambda and Amazon API Gateway

Alex Smith

Head of Media & Entertainment Architecture, Asia Pacific

Amazon Web Services

AWS Cloud Kata for Start-Ups and Developers

The Familiar 3 Tier Architecture

https://d0.awsstatic.com/whitepapers/AWS_Serverless_Multi-Tier_Architectures.pdf

AWS Cloud Kata for Start-Ups and Developers

Here is what that translates to in real life

http://media.amazonwebservices.com/architecturecenter/AWS_ac_ra_web_01.pdf

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

Dr Werner Vogels

CTO - Amazon

AWS Cloud Kata for Start-Ups and Developers

No server is easier to manage…

AWS Cloud Kata for Start-Ups and Developers

No server is easier to manage…

…than no server.

AWS Cloud Kata for Start-Ups and Developers

No server is easier to manage…

…than no server.

AWS Lambda

AWS Cloud Kata for Start-Ups and Developers

AWS Lambda: Run code in response to events

Lambda functions: Stateless, trigger-based code execution

Triggered by events:

• Direct Sync and async API calls

• AWS Service integrations

• 3rd party triggers

Makes it easy to:

• Perform data-driven auditing, analysis, and notification

• Build back-end services that perform at scale

AWS Cloud Kata for Start-Ups and Developers

Cost-effective and

efficient

No Infrastructure

to manage

Pay only for what you use

Bring Your

Own Code

Productivity focused compute platform to build powerful, dynamic, modular

applications in the cloud

Run code in standard

languages

Focus on business logic

Benefits of AWS Lambda

1 2 3

AWS Cloud Kata for Start-Ups and Developers

Utilisation Window

AWS Cloud Kata for Start-Ups and Developers

AWS Compute offerings

VM App Function

Service EC2 ECS Lambda

H/W OS Runtime

Unit of scale

Level of

abstraction

AWS Cloud Kata for Start-Ups and Developers

Multiple Application Types using AWS

LambdaAnalytics

• Operational management

• Live Dashboards

Data workflows

• Content management

• ETL workflows

Interactive Backends

• Bots

• Webhooks

Autonomous IT

• Policy engines

• Infrastructure management

AWS Cloud Kata for Start-Ups and Developers

Applications Components for Serverless

appsEVENT SOURCE FUNCTION SERVICES (ANYTHING)

Changes in

data state

Requests to

endpoints

Changes in

resource state

Node

Python

Java

… more coming

AWS Cloud Kata for Start-Ups and Developers

Amazon

S3

Amazon

DynamoDB

Amazon

Kinesis

AWS

CloudFormationAWS

CloudTrail

Amazon

CloudWatch

Amazon

SNS

Amazon

SES

Amazon

API Gateway

Amazon

Cognito

AWS

IoT

Amazon

Alexa

Cron events

DATA STORES ENDPOINTS

REPOSITORIES EVENT/MESSAGE SERVICES

Event Sources that integrate with AWS

Lambda

… and the list continues to grow.

AWS Cloud Kata for Start-Ups and Developers

That’s Great!

I wish I had that, but for my…

AWS Cloud Kata for Start-Ups and Developers

That’s Great!

I wish I had that, but for my…

APIs

AWS Cloud Kata for Start-Ups and Developers

That’s Great!

I wish I had that, but for my…

APIs

WebApps

AWS Cloud Kata for Start-Ups and Developers

That’s Great!

I wish I had that, but for my…

APIs

WebApps

AWS Cloud Kata for Start-Ups and Developers

The Other Challenge..

AWS Cloud Kata for Start-Ups and Developers

APIs are Hard

Managing multiple versions and stages of an API is difficult

Monitoring 3rd party developers’ access is time consuming

Access authorization is a challenge

Traffic spikes create operational burden

What if I don’t want servers at all?

AWS Cloud Kata for Start-Ups and Developers

API Gateway to manage your REST endpoints

Build, Deploy, and Manage APIs

Throttling rules per HTTP method

Cache with customizable keys

Multiple API versions and stages

Generate client SDKs

Dashboard for visual monitoring

Flexible authorization model

API Keys for 3rd party developers

AWS Cloud Kata for Start-Ups and Developers

Benefits of API Gateway for web/mobile

appsLow cost and efficient

Performance at any

scale

DDoS protection and

throttling

Streamline API

development

Authenticate and

authorize requests

Create RESTful

Endpoints

AWS Cloud Kata for Start-Ups and Developers

API Gateway + Lambda = Frontend + Backend

Internet

Mobile Apps

Websites

Services

API

Gateway

AWS

Endpoints on

Amazon EC2

Any other publicly

accessible endpoint

Amazon

CloudWatch

Monitoring

Amazon

CloudFront

AWS Lambda

functions

API Gateway

Cache

AWS Cloud Kata for Start-Ups and Developers

Real World Architecture

http://media.amazonwebservices.com/architecturecenter/AWS_ac_ra_web_01.pdf

AWS Cloud Kata for Start-Ups and Developers

Real World “Serverless” Architecture

https://s3.amazonaws.com/awslambda-reference-architectures/web-app/lambda-refarch-webapp.pdf

AWS Cloud Kata for Start-Ups and Developers

Live Demo: Building a Serverless

web application

https://vote.alexjs.im

http://vote.alex.中文网

AWS Cloud Kata for Start-Ups and Developers

Demo site: A simple Serverless CRUD backend

http://squirrelbin.com/

AWS Cloud Kata for Start-Ups and Developers

Best practices for Lambda functions• Memory:

• CPU proportional memory

• Increasing memory makes your code

execute faster (if CPU bound)

• Timeout

• Increasing timeout allows for longer

functions, but more wait in case of errors

• Retries:

• For API Gateway, Lambda doesn’t retry

the function execution if failed

• Gateway generated SDKs retry throttled

requests

• Permission model:

• API Gateway synchronously triggers

Lambda, so assign API Gateway a

resource policy to invoke Lambda.

AWS Cloud Kata for Start-Ups and Developers

Monitoring and Debugging Lambda functions

• Console Dashboard

• Lists all Lambda functions

• Easy editing of resources,

event sources and other

settings

• At-a-glance metrics

• Metrics in CloudWatch

• Requests

• Errors

• Latency

• Throttles

• Logging in CloudWatch Logs

AWS Cloud Kata for Start-Ups and Developers

Using API Gateway Input/Output

TransformsFilter output results

• Remove private/unnecessary data

• Filter dataset size to improve API performance

Translate between client-backend

• Convert GET query string parameters to body for POST

• Talk XML to API user-interface but JSON to Lambda

AWS Cloud Kata for Start-Ups and Developers

Managing different versions of your API

stack• Operate multiple API versions and

multiple stages for each version

simultaneously

• Clone an existing API to start working

on the next major version

• Set up custom domain names to point

directly to a stage

• Version Lambda functions, and

associate API stage with Lambda

function version alias

AWS Cloud Kata for Start-Ups and Developers

Three Next Steps

1. Check out http://squirrelbin.com/

2. Try out the “Serverless Web-App Reference Architecture” at

https://github.com/awslabs/lambda-refarch-webapp/

3. Build your own custom web-app using the AWS Lambda

blueprints at https://console.aws.amazon.com/lambda

AWS Cloud Kata for Start-Ups and Developers

Questions?

E: [email protected]

T: @alexjs

AWS Cloud Kata for Start-Ups and Developers

THANK YOU!

Please remember to fill out evaluations

AWS Cloud Kata for Start-Ups and Developers

Hong Kong

Aug 3

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers

AWS Cloud Kata for Start-Ups and Developers