SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
George Mao
Specialist Solutions Architect, Serverless
Building Serverless Enterprise
Applications
SRV315
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Customers innovating with AWS Lambda
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Why are customers choosing Lambda & serverless?
iRobot does >1,000 Lambda deployments a day
for its serverless IoT backend that runs internet
connected-vacuums, with 2M connected robots by
2018 (FY17 projected).
Fannie Maeis replacing on-premises data
centers with a Lambda-based solution that can run
a Monte Carlo simulation on 20M mortgage
calculations in 1.5 hours.
Nextdoor replaced its Apache Flume platform
with a serverless data ingestion pipeline that
handles 3B events daily.
HomeAwayuses Lambda to process and prepare 6M user-
uploaded photos a month for its vacation rental marketplace.
Agero’saccident detection and driver behavior analysis
platform handles over 1B Lambda requests each month and
scales to handle 20x at peak load.
Revvelreduced video transcoding time by >95% at a fraction
of the cost of transcoding videos on server-based solutions.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Stack Overflow Developer Survey 2018
*https://insights.stackoverflow.com/survey/2018/
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Key industry trends
Don’t code it yourself!
The rise of managed services
Stream processing and
“embarrassingly parallel” computing
Snowballing adoption of
microservices
Serverless, event-driven
architectures
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lambda means …
No server management Flexible scaling
No idle capacity
$
High availability
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda: Six ways to improve your serverless mojo
1. Think in patterns: the serverless architecture playbook
2. Use APIs effectively
3. SecOps like you mean it: permissions & privileges
4. Software lifecycle: from coding to deployment
5. Think in apps
6. When things go wrong: Error-handling and diagnostics
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1. Serverless patterns:
Managed services + Lambda functions
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Managed services as building blocks
Amazon SNS
Amazon SQS
Amazon S3
Messaging
Monitoring and Debugging
Storage
AWS X-Ray
AWS Lambda
Amazon API Gateway
Orchestration
API Proxy
Compute
AWS Step Functions
Amazon DynamoDB
Amazon Kinesis
Analytics
Database
Edge Compute
AWS Greengrass
Lambda@Edge
Amazon Athena
Amazon Aurora
Serverless
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda
Compute
Example: Serverless analytics
Amazon Kinesis
Analytics
Amazon Athena
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon API Gateway
API Proxy
AWS Lambda
Compute
Amazon S3
Storage
Example: Serverless web app
Amazon DynamoDB
Database
Amazon Aurora
Serverless
Static content Dynamic content
API Serving
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Patterns for the cloud era
• Media transform on upload: Amazon S3 event +
Lambda
• NoSQL data cleansing: Amazon DynamoDB change
streams + Lambda
• Serverless website: Amazon S3 + Amazon DynamoDB
+ Amazon API Gateway + Lambda
• Click-stream analytics: Amazon Kinesis Data Firehose
+ Lambda
• Ordered event processing: Kinesis + Lambda
• Multi-function fanout: Amazon SNS (or Lambda) +
Lambda
• Workflows: AWS Step Functions + Lambda
• Event distribution: Amazon CloudWatch Events +
Lambda
• Serverless cron jobs: CloudWatch timer events +
Lambda
• GraphQL actions: AWS AppSync + Lambda
• On-the-fly image resizing: AWS Lambda@Edge +
Amazon CloudFront
• Email rules: Amazon SES + Lambda
• Configuration policy enforcement: AWS Config +
Lambda
• Stored procedures: Amazon Aurora + Lambda
• Custom authorizers for APIs: API Gateway Auth +
Lambda
• DevOps choreography: CloudWatch alarms + Lambda
• Alexa skills: Amazon Alexa + Lambda
• Chatbots: Slack + Amazon Lex + Lambda
• IoT automation: AWS IoT + Lambda
• Smart devices: AWS Greengrass + Lambda
• On-premises file encryption for transit: AWS Snowball
Edge + Lambda
• …
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Meta-patterns
1. Service pushes async event to Lambda (Amazon S3, Amazon SNS)
2. Lambda polls event from service (Amazon DynamoDB, Amazon Kinesis)
3. Synchronous exchange (Amazon Alexa, Amazon Lex)
4. Batch transform (Amazon Kinesis Data Firehose)
5. Microservice (API + Lambda + your choice of DB)
6. Customization via functions (AWS Config, Amazon SES rules)
7. Data-driven fanout (S3-Lambda, Lambda-Lambda)
8. Choreography (Step Functions + Lambda)
9. Lambda functions in devices (AWS Greengrass, AWS Snowball Edge)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
ICYMI:
Amazon SQS as a built-in Lambda event
source
is live!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Patterns: Best practices
• Don’t reinvent the wheel. Use managed services when possible …
• … and stay current ☺
• Keep events inside AWS services for as long as possible:
• Example:
• Amazon S3 → client → Lambda
• Amazon S3 → Lambda
• Verify limits end-to-end
• Prefer idempotent, stateless functions, and when you can’t …
• Use AWS Step Functions if you need stateful control (retries, long-running)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
2. Use APIs effectively
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs6.10
CodeUri: s3://bucket/api_backend.zip
Policies: AmazonDynamoDBReadOnlyAccess
Environment:
Variables:
TABLE_NAME: !Ref Table
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
Start simple!
Meet AWS Serverless
Application Model
(AWS SAM)!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Extend with Swagger
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
Api:
Type: AWS::Serverless::Api
Properties:
StageName: prod
DefinitionUri: swagger.yml
---
swagger: "2.0"
info:
version: "2018-06-06T01:36:07Z"
title: "PetStore"
host: "0ftv5igkjd.execute-api.us-east-
1.amazonaws.com"
basePath: "/test"
schemes:
- "https"
paths:
/:
get:
consumes:
- "application/json"
produces:
- "text/html"
responses:
200:
description: "200 response"
headers:
Content-Type:
type: "string"
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Choose the right API endpoints
• Edge optimized: Designed to help you reduce client latency from
anywhere on the internet
• Regional: Designed to reduce latency when calls are made from
the same region as the API
• Private: Designed to expose APIs only inside your VPC
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Manage throttling and rate-limiting
• Protect backends with method
level rate-limiting
• Protect clients from aggressive
use using usage plans
• Limit on RPS
• Limit on requests per
day/week/month
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
ICYMI – Summary of recent Amazon API Gateway launches
• Fine-grained (method-level) throttling
• Overrides on request/response parameters and
response status
• Higher limits on APIs and resource change rates
• 600 APIs (regional or private endpoint)
• 120 APIs (edge-optimized)
• Available in AWS China Ningxia region
• Resource policies and cross-account access enabled
• AWS X-Ray support!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. Security and AuthZ
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serverless apps can be the most secure apps, if …
… you use the tools provided correctly:
• Secure
- Resource policies (Lambda & API Gateway)
- Custom authorizers (API Gateway)
- Execution roles (Lambda)
• Audit
- AWS Config policies
- AWS CloudTrail traces
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Full circle of protection
Limit
access
Limit rights
Secure
credentials
Audit
access
Enforce
policies
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Limit access: Resource policies and custom authorizers
Analogy: Who would I invite into my
house?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Limit access: Resource policies and custom authorizers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Limit access: Resource policies and custom authorizers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Limits rights: Execution and invocation roles
Analogy: What do I let my kids play
with?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Limit rights: Execution and invocation roles
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Limit rights: Execution and invocation roles
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Keeping track: Auditing and Config policies
• Use AWS CloudTrail to track API and function management
(creation, deletion, retrieval, etc.)
• Can also audit function invocation for Lambda
• Run queries against CloudTrail data using Amazon Athena
• Or build a simple analysis engine using Lambda functions
• Use AWS Config to continuously monitor and enforce policies
• For example: Enforcing Lambda function policies do not have public
access
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Config: Detect public access and react!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Calling third-party services securely
AWS Secrets Manager
• Securely store, retrieve, and manage database credentials,
API keys, and other secrets for AWS or third-party systems
• Rotate, audit, and version secrets
• Built-in support for MySQL, PostgreSQL, and Amazon
Aurora on Amazon RDS
• Supports both default and custom KMS keys
• Avoid cleartext secrets in Lambda env vars or code!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
4. Building, testing, and deploying
serverless apps
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS CodePipeline
AWS code suite
AWS
CodeCommit
or GitHub
AWS
CodeBuild
(build)
AWS
CodeBuild
(test)
AWS
CloudFormation
(deploy)
AWS
CodeDeploy
(rollout)
AWS Cloud9
Editor
AWS
CodeStar
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Best practices for serverless development
• CI/CD pipeline for apps (including repo publishing!)
• Test and debug locally
• AWS CloudFormation can deploy to multiple regions
• Useful for multi-region APIs
• Deploy incrementally for safety
• Weighted aliases in Lambda
• Canary stages in API Gateway
• AWS CodeDeploy can automate AWS SAM app deploys (including
rollback)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Local test, build, & debug with AWS SAM CLI
• AWS SAM = AWS Serverless Application
Model
• Copy of the Lambda execution environment
• Powers local test/debug
• Models serverless applications
• Works in IDEs, command line, etc.
• Use “sam init” to create a new project
• Open source!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
5. It’s all about [serverless] apps
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Serverless Application Repository
Customize and create directly from the Lambda console, command
line, or SDK
• Publish and share apps three ways
• Within your AWS account
• Across accounts
• With everyone (public access)
• Based on AWS SAM – simple model of your serverless application
• Deploys using AWS CloudFormation (use anywhere AWS CloudFormation
works!)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Growing set of app producers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
6. When things go wrong:
Error-handling and diagnostics
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon CloudWatch metrics
• API calls count
• Latency
• 4XXs, 5XXs
• Integration latency
• Cache hit count
• Cache miss count
API Gateway
• Invocation count
• Invocation duration
• Invocation errors
• Throttled invocation
• Iterator age
• DLQ error
• Concurrency
Lambda
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway CloudWatch Logs
API Gateway execution logging
Two levels of logging, error and info
Optionally log method request/body content
Set globally in stage, or override per method
API Gateway access logging
Details about *who* accessed your API
IP, HttpMethod, User, Protocol, Time
Customizable format for machine parsable logs
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway custom access logging
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Just launched: API Gateway + AWS X-Ray
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The Lambda function request lifecycle
1. Download your code (as a SquashFS filesystem)
2. Start the language runtime
3. Load your code (e.g., class loading in Java)
4. Run “init” code (e.g., static initializers in Java)
5. Process the request warm
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Same view in X-Ray
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Things you can track in X-Ray for Lambda
• Cold vs. warm starts
• Async dwell time (time event spends in queue)
• Duration of calls to other AWS services (and with a little work to
add trace points, third-party services)
• Errors and throttles from AWS service calls
Lots of great third-party offerings can also help!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Making cold starts more efficient
• Control the dependencies in your function's deployment package
• Tree shake your Java code! (Hint: Spring is expensive )
• Can combine “cold” and “hot” functions
• Optimize for your language, where applicable
• Node – Browserfy, Minify
• AWS Java SDK v2 (developer preview)
• Only use VPC if you need access to a resource there!
• Delay loading where possible
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Summary: Six ways to improve your serverless mojo
1. Think in patterns: the serverless architecture playbook
2. Use APIs effectively
3. SecOps like you mean it: permissions & privileges
4. Software lifecycle: from coding to deployment
5. Think in apps
6. When things go wrong: error-handling and diagnostics
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Speaker info & social media channels
George Mao
Serverless Specialist Solutions Architect
georgemao@
http://aws.amazon.com/serverless/
https://github.com/aws-samples/
https://github.com/awslabs
Submit session feedback
1. Tap the Agenda icon.
2. Select the session you attended.
3. Tap Session Evaluation to submit
your feedback.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

Harness the Power of Infrastructure as Code
Harness the Power of Infrastructure as CodeHarness the Power of Infrastructure as Code
Harness the Power of Infrastructure as CodeAmazon Web Services
 
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...AWSKRUG - AWS한국사용자모임
 
AWS SSA Webinar 12 - Getting started on AWS with Containers
AWS SSA Webinar 12 - Getting started on AWS with ContainersAWS SSA Webinar 12 - Getting started on AWS with Containers
AWS SSA Webinar 12 - Getting started on AWS with ContainersCobus Bernard
 
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as CodeAWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as CodeCobus Bernard
 
Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...
Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...
Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...Amazon Web Services Korea
 
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...Amazon Web Services
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Containers & Microservices
IVS CTO Night And Day 2018 Winter - [re:Cap] Containers & MicroservicesIVS CTO Night And Day 2018 Winter - [re:Cap] Containers & Microservices
IVS CTO Night And Day 2018 Winter - [re:Cap] Containers & MicroservicesAmazon Web Services Japan
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트Amazon Web Services Korea
 
Masterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormationMasterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormationAmazon Web Services
 
All the Ops: DataOps with GitOps for Streaming data on Kafka and Kubernetes
All the Ops: DataOps with GitOps for Streaming data on Kafka and KubernetesAll the Ops: DataOps with GitOps for Streaming data on Kafka and Kubernetes
All the Ops: DataOps with GitOps for Streaming data on Kafka and KubernetesDevOps.com
 
Back Up and Manage On-Premises and Cloud-Native Workloads with Rubrik on AWS ...
Back Up and Manage On-Premises and Cloud-Native Workloads with Rubrik on AWS ...Back Up and Manage On-Premises and Cloud-Native Workloads with Rubrik on AWS ...
Back Up and Manage On-Premises and Cloud-Native Workloads with Rubrik on AWS ...Amazon Web Services
 
AWS CloudFormation Tutorial | AWS CloudFormation Demo | AWS Tutorial | AWS Tr...
AWS CloudFormation Tutorial | AWS CloudFormation Demo | AWS Tutorial | AWS Tr...AWS CloudFormation Tutorial | AWS CloudFormation Demo | AWS Tutorial | AWS Tr...
AWS CloudFormation Tutorial | AWS CloudFormation Demo | AWS Tutorial | AWS Tr...Edureka!
 
DEV317_Deep Dive on AWS CloudFormation
DEV317_Deep Dive on AWS CloudFormationDEV317_Deep Dive on AWS CloudFormation
DEV317_Deep Dive on AWS CloudFormationAmazon Web Services
 
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings Adam Book
 
AWS Networking for Migration and Hybrid Environments
AWS Networking for Migration and Hybrid EnvironmentsAWS Networking for Migration and Hybrid Environments
AWS Networking for Migration and Hybrid EnvironmentsAmazon Web Services
 

Was ist angesagt? (20)

Harness the Power of Infrastructure as Code
Harness the Power of Infrastructure as CodeHarness the Power of Infrastructure as Code
Harness the Power of Infrastructure as Code
 
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
 
AWS SSA Webinar 12 - Getting started on AWS with Containers
AWS SSA Webinar 12 - Getting started on AWS with ContainersAWS SSA Webinar 12 - Getting started on AWS with Containers
AWS SSA Webinar 12 - Getting started on AWS with Containers
 
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as CodeAWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
 
Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...
Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...
Monitoring Kubernetes with Elasticsearch Services - Ted Jung, Consulting Arch...
 
AWSome Day Digital LATAM
AWSome Day Digital LATAMAWSome Day Digital LATAM
AWSome Day Digital LATAM
 
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
Automate and Scale Configuration Management with AWS OpsWorks - DEV331 - re:I...
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Containers & Microservices
IVS CTO Night And Day 2018 Winter - [re:Cap] Containers & MicroservicesIVS CTO Night And Day 2018 Winter - [re:Cap] Containers & Microservices
IVS CTO Night And Day 2018 Winter - [re:Cap] Containers & Microservices
 
AWSome Day - 2018
AWSome Day - 2018AWSome Day - 2018
AWSome Day - 2018
 
Amazon S3 Deep Dive
Amazon S3 Deep DiveAmazon S3 Deep Dive
Amazon S3 Deep Dive
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
 
Masterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormationMasterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormation
 
All the Ops: DataOps with GitOps for Streaming data on Kafka and Kubernetes
All the Ops: DataOps with GitOps for Streaming data on Kafka and KubernetesAll the Ops: DataOps with GitOps for Streaming data on Kafka and Kubernetes
All the Ops: DataOps with GitOps for Streaming data on Kafka and Kubernetes
 
Back Up and Manage On-Premises and Cloud-Native Workloads with Rubrik on AWS ...
Back Up and Manage On-Premises and Cloud-Native Workloads with Rubrik on AWS ...Back Up and Manage On-Premises and Cloud-Native Workloads with Rubrik on AWS ...
Back Up and Manage On-Premises and Cloud-Native Workloads with Rubrik on AWS ...
 
Amazon ECS Deep Dive
Amazon ECS Deep DiveAmazon ECS Deep Dive
Amazon ECS Deep Dive
 
AWS CloudFormation Tutorial | AWS CloudFormation Demo | AWS Tutorial | AWS Tr...
AWS CloudFormation Tutorial | AWS CloudFormation Demo | AWS Tutorial | AWS Tr...AWS CloudFormation Tutorial | AWS CloudFormation Demo | AWS Tutorial | AWS Tr...
AWS CloudFormation Tutorial | AWS CloudFormation Demo | AWS Tutorial | AWS Tr...
 
DEV317_Deep Dive on AWS CloudFormation
DEV317_Deep Dive on AWS CloudFormationDEV317_Deep Dive on AWS CloudFormation
DEV317_Deep Dive on AWS CloudFormation
 
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings
 
AWS Networking for Migration and Hybrid Environments
AWS Networking for Migration and Hybrid EnvironmentsAWS Networking for Migration and Hybrid Environments
AWS Networking for Migration and Hybrid Environments
 

Ähnlich wie Building serverless enterprise applications - SRV315 - Toronto AWS Summit

Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS SummitAmazon Web Services
 
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS SummitAmazon Web Services
 
Build Enterprise-Grade Serverless Apps
Build Enterprise-Grade Serverless Apps Build Enterprise-Grade Serverless Apps
Build Enterprise-Grade Serverless Apps Amazon Web Services
 
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS SummitBuilding Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS SummitAmazon Web Services
 
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...AWS Germany
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesAmazon Web Services
 
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...Amazon Web Services
 
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...Amazon Web Services
 
Build and Deploy Serverless Applications with AWS SAM
Build and Deploy Serverless Applications with AWS SAM Build and Deploy Serverless Applications with AWS SAM
Build and Deploy Serverless Applications with AWS SAM Amazon Web Services
 
Serverless computing - Build and run applications without thinking about servers
Serverless computing - Build and run applications without thinking about serversServerless computing - Build and run applications without thinking about servers
Serverless computing - Build and run applications without thinking about serversAmazon Web Services
 
Serverless Architectural Patterns - ServerlessDays TLV
Serverless Architectural Patterns - ServerlessDays TLVServerless Architectural Patterns - ServerlessDays TLV
Serverless Architectural Patterns - ServerlessDays TLVBoaz Ziniman
 
Serverless Architectural Patterns
Serverless Architectural PatternsServerless Architectural Patterns
Serverless Architectural PatternsAmazon Web Services
 
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...Amazon Web Services
 
Getting Started with AWS Lambda Serverless Computing
Getting Started with AWS Lambda Serverless ComputingGetting Started with AWS Lambda Serverless Computing
Getting Started with AWS Lambda Serverless ComputingAmazon Web Services
 
Serverless Architecture - Design Patterns and Best Practices
Serverless Architecture - Design Patterns and Best PracticesServerless Architecture - Design Patterns and Best Practices
Serverless Architecture - Design Patterns and Best PracticesAmazon Web Services
 
Unlocking Agility with the AWS Serverless Application Model (SAM) - AWS Summi...
Unlocking Agility with the AWS Serverless Application Model (SAM) - AWS Summi...Unlocking Agility with the AWS Serverless Application Model (SAM) - AWS Summi...
Unlocking Agility with the AWS Serverless Application Model (SAM) - AWS Summi...Amazon Web Services
 
Building Serverless Applications with Amazon DynamoDB & AWS Lambda - Workshop...
Building Serverless Applications with Amazon DynamoDB & AWS Lambda - Workshop...Building Serverless Applications with Amazon DynamoDB & AWS Lambda - Workshop...
Building Serverless Applications with Amazon DynamoDB & AWS Lambda - Workshop...Amazon Web Services
 
Serverless Development Deep Dive
Serverless Development Deep DiveServerless Development Deep Dive
Serverless Development Deep DiveAmazon Web Services
 
Serverless use cases with AWS Lambda - More Serverless Event
Serverless use cases with AWS Lambda - More Serverless EventServerless use cases with AWS Lambda - More Serverless Event
Serverless use cases with AWS Lambda - More Serverless EventBoaz Ziniman
 
Developing Serverless Application on AWS
Developing Serverless Application on AWSDeveloping Serverless Application on AWS
Developing Serverless Application on AWSAmazon Web Services
 

Ähnlich wie Building serverless enterprise applications - SRV315 - Toronto AWS Summit (20)

Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
 
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Atlanta AWS Summit
 
Build Enterprise-Grade Serverless Apps
Build Enterprise-Grade Serverless Apps Build Enterprise-Grade Serverless Apps
Build Enterprise-Grade Serverless Apps
 
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS SummitBuilding Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
 
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
 
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
 
Build and Deploy Serverless Applications with AWS SAM
Build and Deploy Serverless Applications with AWS SAM Build and Deploy Serverless Applications with AWS SAM
Build and Deploy Serverless Applications with AWS SAM
 
Serverless computing - Build and run applications without thinking about servers
Serverless computing - Build and run applications without thinking about serversServerless computing - Build and run applications without thinking about servers
Serverless computing - Build and run applications without thinking about servers
 
Serverless Architectural Patterns - ServerlessDays TLV
Serverless Architectural Patterns - ServerlessDays TLVServerless Architectural Patterns - ServerlessDays TLV
Serverless Architectural Patterns - ServerlessDays TLV
 
Serverless Architectural Patterns
Serverless Architectural PatternsServerless Architectural Patterns
Serverless Architectural Patterns
 
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
 
Getting Started with AWS Lambda Serverless Computing
Getting Started with AWS Lambda Serverless ComputingGetting Started with AWS Lambda Serverless Computing
Getting Started with AWS Lambda Serverless Computing
 
Serverless Architecture - Design Patterns and Best Practices
Serverless Architecture - Design Patterns and Best PracticesServerless Architecture - Design Patterns and Best Practices
Serverless Architecture - Design Patterns and Best Practices
 
Unlocking Agility with the AWS Serverless Application Model (SAM) - AWS Summi...
Unlocking Agility with the AWS Serverless Application Model (SAM) - AWS Summi...Unlocking Agility with the AWS Serverless Application Model (SAM) - AWS Summi...
Unlocking Agility with the AWS Serverless Application Model (SAM) - AWS Summi...
 
Building Serverless Applications with Amazon DynamoDB & AWS Lambda - Workshop...
Building Serverless Applications with Amazon DynamoDB & AWS Lambda - Workshop...Building Serverless Applications with Amazon DynamoDB & AWS Lambda - Workshop...
Building Serverless Applications with Amazon DynamoDB & AWS Lambda - Workshop...
 
Serverless Development Deep Dive
Serverless Development Deep DiveServerless Development Deep Dive
Serverless Development Deep Dive
 
Serverless use cases with AWS Lambda - More Serverless Event
Serverless use cases with AWS Lambda - More Serverless EventServerless use cases with AWS Lambda - More Serverless Event
Serverless use cases with AWS Lambda - More Serverless Event
 
Developing Serverless Application on AWS
Developing Serverless Application on AWSDeveloping Serverless Application on AWS
Developing Serverless Application on AWS
 

Mehr von Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mehr von Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Building serverless enterprise applications - SRV315 - Toronto AWS Summit

  • 1. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. George Mao Specialist Solutions Architect, Serverless Building Serverless Enterprise Applications SRV315
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Customers innovating with AWS Lambda
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Why are customers choosing Lambda & serverless? iRobot does >1,000 Lambda deployments a day for its serverless IoT backend that runs internet connected-vacuums, with 2M connected robots by 2018 (FY17 projected). Fannie Maeis replacing on-premises data centers with a Lambda-based solution that can run a Monte Carlo simulation on 20M mortgage calculations in 1.5 hours. Nextdoor replaced its Apache Flume platform with a serverless data ingestion pipeline that handles 3B events daily. HomeAwayuses Lambda to process and prepare 6M user- uploaded photos a month for its vacation rental marketplace. Agero’saccident detection and driver behavior analysis platform handles over 1B Lambda requests each month and scales to handle 20x at peak load. Revvelreduced video transcoding time by >95% at a fraction of the cost of transcoding videos on server-based solutions.
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Stack Overflow Developer Survey 2018 *https://insights.stackoverflow.com/survey/2018/
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Key industry trends Don’t code it yourself! The rise of managed services Stream processing and “embarrassingly parallel” computing Snowballing adoption of microservices Serverless, event-driven architectures
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Lambda means … No server management Flexible scaling No idle capacity $ High availability
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agenda: Six ways to improve your serverless mojo 1. Think in patterns: the serverless architecture playbook 2. Use APIs effectively 3. SecOps like you mean it: permissions & privileges 4. Software lifecycle: from coding to deployment 5. Think in apps 6. When things go wrong: Error-handling and diagnostics
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1. Serverless patterns: Managed services + Lambda functions
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Managed services as building blocks Amazon SNS Amazon SQS Amazon S3 Messaging Monitoring and Debugging Storage AWS X-Ray AWS Lambda Amazon API Gateway Orchestration API Proxy Compute AWS Step Functions Amazon DynamoDB Amazon Kinesis Analytics Database Edge Compute AWS Greengrass Lambda@Edge Amazon Athena Amazon Aurora Serverless
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambda Compute Example: Serverless analytics Amazon Kinesis Analytics Amazon Athena
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon API Gateway API Proxy AWS Lambda Compute Amazon S3 Storage Example: Serverless web app Amazon DynamoDB Database Amazon Aurora Serverless Static content Dynamic content API Serving
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Patterns for the cloud era • Media transform on upload: Amazon S3 event + Lambda • NoSQL data cleansing: Amazon DynamoDB change streams + Lambda • Serverless website: Amazon S3 + Amazon DynamoDB + Amazon API Gateway + Lambda • Click-stream analytics: Amazon Kinesis Data Firehose + Lambda • Ordered event processing: Kinesis + Lambda • Multi-function fanout: Amazon SNS (or Lambda) + Lambda • Workflows: AWS Step Functions + Lambda • Event distribution: Amazon CloudWatch Events + Lambda • Serverless cron jobs: CloudWatch timer events + Lambda • GraphQL actions: AWS AppSync + Lambda • On-the-fly image resizing: AWS Lambda@Edge + Amazon CloudFront • Email rules: Amazon SES + Lambda • Configuration policy enforcement: AWS Config + Lambda • Stored procedures: Amazon Aurora + Lambda • Custom authorizers for APIs: API Gateway Auth + Lambda • DevOps choreography: CloudWatch alarms + Lambda • Alexa skills: Amazon Alexa + Lambda • Chatbots: Slack + Amazon Lex + Lambda • IoT automation: AWS IoT + Lambda • Smart devices: AWS Greengrass + Lambda • On-premises file encryption for transit: AWS Snowball Edge + Lambda • …
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Meta-patterns 1. Service pushes async event to Lambda (Amazon S3, Amazon SNS) 2. Lambda polls event from service (Amazon DynamoDB, Amazon Kinesis) 3. Synchronous exchange (Amazon Alexa, Amazon Lex) 4. Batch transform (Amazon Kinesis Data Firehose) 5. Microservice (API + Lambda + your choice of DB) 6. Customization via functions (AWS Config, Amazon SES rules) 7. Data-driven fanout (S3-Lambda, Lambda-Lambda) 8. Choreography (Step Functions + Lambda) 9. Lambda functions in devices (AWS Greengrass, AWS Snowball Edge)
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. ICYMI: Amazon SQS as a built-in Lambda event source is live!
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Patterns: Best practices • Don’t reinvent the wheel. Use managed services when possible … • … and stay current ☺ • Keep events inside AWS services for as long as possible: • Example: • Amazon S3 → client → Lambda • Amazon S3 → Lambda • Verify limits end-to-end • Prefer idempotent, stateless functions, and when you can’t … • Use AWS Step Functions if you need stateful control (retries, long-running)
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 2. Use APIs effectively
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: GetFunction: Type: AWS::Serverless::Function Properties: Handler: index.get Runtime: nodejs6.10 CodeUri: s3://bucket/api_backend.zip Policies: AmazonDynamoDBReadOnlyAccess Environment: Variables: TABLE_NAME: !Ref Table Events: GetResource: Type: Api Properties: Path: /resource/{resourceId} Method: get Start simple! Meet AWS Serverless Application Model (AWS SAM)!
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Extend with Swagger AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: Api: Type: AWS::Serverless::Api Properties: StageName: prod DefinitionUri: swagger.yml --- swagger: "2.0" info: version: "2018-06-06T01:36:07Z" title: "PetStore" host: "0ftv5igkjd.execute-api.us-east- 1.amazonaws.com" basePath: "/test" schemes: - "https" paths: /: get: consumes: - "application/json" produces: - "text/html" responses: 200: description: "200 response" headers: Content-Type: type: "string"
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Choose the right API endpoints • Edge optimized: Designed to help you reduce client latency from anywhere on the internet • Regional: Designed to reduce latency when calls are made from the same region as the API • Private: Designed to expose APIs only inside your VPC
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Manage throttling and rate-limiting • Protect backends with method level rate-limiting • Protect clients from aggressive use using usage plans • Limit on RPS • Limit on requests per day/week/month
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. ICYMI – Summary of recent Amazon API Gateway launches • Fine-grained (method-level) throttling • Overrides on request/response parameters and response status • Higher limits on APIs and resource change rates • 600 APIs (regional or private endpoint) • 120 APIs (edge-optimized) • Available in AWS China Ningxia region • Resource policies and cross-account access enabled • AWS X-Ray support!
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3. Security and AuthZ
  • 23. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless apps can be the most secure apps, if … … you use the tools provided correctly: • Secure - Resource policies (Lambda & API Gateway) - Custom authorizers (API Gateway) - Execution roles (Lambda) • Audit - AWS Config policies - AWS CloudTrail traces
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Full circle of protection Limit access Limit rights Secure credentials Audit access Enforce policies
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Limit access: Resource policies and custom authorizers Analogy: Who would I invite into my house?
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Limit access: Resource policies and custom authorizers
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Limit access: Resource policies and custom authorizers
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Limits rights: Execution and invocation roles Analogy: What do I let my kids play with?
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Limit rights: Execution and invocation roles
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Limit rights: Execution and invocation roles
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Keeping track: Auditing and Config policies • Use AWS CloudTrail to track API and function management (creation, deletion, retrieval, etc.) • Can also audit function invocation for Lambda • Run queries against CloudTrail data using Amazon Athena • Or build a simple analysis engine using Lambda functions • Use AWS Config to continuously monitor and enforce policies • For example: Enforcing Lambda function policies do not have public access
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Config: Detect public access and react!
  • 33. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Calling third-party services securely AWS Secrets Manager • Securely store, retrieve, and manage database credentials, API keys, and other secrets for AWS or third-party systems • Rotate, audit, and version secrets • Built-in support for MySQL, PostgreSQL, and Amazon Aurora on Amazon RDS • Supports both default and custom KMS keys • Avoid cleartext secrets in Lambda env vars or code!
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 4. Building, testing, and deploying serverless apps
  • 35. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS CodePipeline AWS code suite AWS CodeCommit or GitHub AWS CodeBuild (build) AWS CodeBuild (test) AWS CloudFormation (deploy) AWS CodeDeploy (rollout) AWS Cloud9 Editor AWS CodeStar
  • 36. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Best practices for serverless development • CI/CD pipeline for apps (including repo publishing!) • Test and debug locally • AWS CloudFormation can deploy to multiple regions • Useful for multi-region APIs • Deploy incrementally for safety • Weighted aliases in Lambda • Canary stages in API Gateway • AWS CodeDeploy can automate AWS SAM app deploys (including rollback)
  • 37. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Local test, build, & debug with AWS SAM CLI • AWS SAM = AWS Serverless Application Model • Copy of the Lambda execution environment • Powers local test/debug • Models serverless applications • Works in IDEs, command line, etc. • Use “sam init” to create a new project • Open source!
  • 38. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 5. It’s all about [serverless] apps
  • 39. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Serverless Application Repository Customize and create directly from the Lambda console, command line, or SDK • Publish and share apps three ways • Within your AWS account • Across accounts • With everyone (public access) • Based on AWS SAM – simple model of your serverless application • Deploys using AWS CloudFormation (use anywhere AWS CloudFormation works!)
  • 40. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Growing set of app producers
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 6. When things go wrong: Error-handling and diagnostics
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon CloudWatch metrics • API calls count • Latency • 4XXs, 5XXs • Integration latency • Cache hit count • Cache miss count API Gateway • Invocation count • Invocation duration • Invocation errors • Throttled invocation • Iterator age • DLQ error • Concurrency Lambda
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 44. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway CloudWatch Logs API Gateway execution logging Two levels of logging, error and info Optionally log method request/body content Set globally in stage, or override per method API Gateway access logging Details about *who* accessed your API IP, HttpMethod, User, Protocol, Time Customizable format for machine parsable logs
  • 45. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway custom access logging
  • 46. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Just launched: API Gateway + AWS X-Ray
  • 47. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The Lambda function request lifecycle 1. Download your code (as a SquashFS filesystem) 2. Start the language runtime 3. Load your code (e.g., class loading in Java) 4. Run “init” code (e.g., static initializers in Java) 5. Process the request warm
  • 48. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Same view in X-Ray
  • 49. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Things you can track in X-Ray for Lambda • Cold vs. warm starts • Async dwell time (time event spends in queue) • Duration of calls to other AWS services (and with a little work to add trace points, third-party services) • Errors and throttles from AWS service calls Lots of great third-party offerings can also help!
  • 50. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Making cold starts more efficient • Control the dependencies in your function's deployment package • Tree shake your Java code! (Hint: Spring is expensive ) • Can combine “cold” and “hot” functions • Optimize for your language, where applicable • Node – Browserfy, Minify • AWS Java SDK v2 (developer preview) • Only use VPC if you need access to a resource there! • Delay loading where possible
  • 51. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Summary: Six ways to improve your serverless mojo 1. Think in patterns: the serverless architecture playbook 2. Use APIs effectively 3. SecOps like you mean it: permissions & privileges 4. Software lifecycle: from coding to deployment 5. Think in apps 6. When things go wrong: error-handling and diagnostics
  • 52. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Speaker info & social media channels George Mao Serverless Specialist Solutions Architect georgemao@ http://aws.amazon.com/serverless/ https://github.com/aws-samples/ https://github.com/awslabs
  • 53. Submit session feedback 1. Tap the Agenda icon. 2. Select the session you attended. 3. Tap Session Evaluation to submit your feedback.
  • 54. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Thank you!