Running Microservices with Lambda and API Gateway

Download Running Microservices with Lambda and API Gateway

Post on 15-Apr-2017

801 views

Category:

Technology

0 download

Embed Size (px)

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

    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

    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

    Thats Great!

    I wish I had that, but for my

  • AWS Cloud Kata for Start-Ups and Developers

    Thats Great!

    I wish I had that, but for my

    APIs

  • AWS Cloud Kata for Start-Ups and Developers

    Thats Great!

    I wish I had that, but for my

    APIs

    WebApps

  • AWS Cloud Kata for Start-Ups and Developers

    Thats 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 dont 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

    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

    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 doesnt 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

    http://squirrelbin.com/https://github.com/awslabs/lambda-refarch-webapp/https://console.aws.amazon.com/lambda

  • AWS Cloud Kata for Start-Ups and Developers

    Questions?

    E: alexjs@amazon.com

    T: @alexjs

    mailto:alexjs@amazon.com

  • 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