SlideShare a Scribd company logo
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Chris Munns – Senior Developer Advocate – AWS Serverless
August 2018
Serverless Streams,
Topics, Queues, &
APIs!
How to Pick the Right Serverless Application Pattern
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
About me:
Chris Munns - munns@amazon.com, @chrismunns
• Senior Developer Advocate - Serverless
• New Yorker
• Previously:
• AWS Business Development Manager – DevOps, July ’15 - Feb ‘17
• AWS Solutions Architect Nov, 2011- Dec 2014
• Formerly on operations teams @Etsy and @Meetup
• Little time at a hedge fund, Xerox and a few other startups
• Rochester Institute of Technology: Applied Networking and Systems
Administration ’05
• Internet infrastructure geek
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
https://secure.flickr.com/photos/mgifford/4525333972
Why are we
here today?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
No servers to provision
or manage
Scales with usage
Never pay for idle Availability and fault
tolerance built in
Serverless means…
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SERVICES (ANYTHING)
Changes in
data state
Requests to
endpoints
Changes in
resource state
EVENT SOURCE FUNCTION
Node.js
Python
Java
C#
Go
Serverless applications
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SERVICES (ANYTHING)
Serverless applications
FUNCTIONEVENT SOURCE
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Common Lambda use cases
Web
Applications
• Static
websites
• Complex web
apps
• Packages for
Flask and
Express
Data
Processing
• Real time
• MapReduce
• Batch
Chatbots
• Powering
chatbot logic
Backends
• Apps &
services
• Mobile
• IoT
</></>
Amazon
Alexa
• Powering
voice-enabled
apps
• Alexa Skills
Kit
IT
Automation
• Policy engines
• Extending
AWS services
• Infrastructure
management
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Common Lambda use cases
Web
Applications
• Static
websites
• Complex web
apps
• Packages for
Flask and
Express
Chatbots
• Powering
chatbot logic
Amazon
Alexa
• Powering
voice-enabled
apps
• Alexa Skills
Kit
Backends
• Apps &
services
• Mobile
• IoT
</></>
Data
Processing
• Real time
• MapReduce
• Batch
IT
Automation
• Policy engines
• Extending
AWS services
• Infrastructure
management
Microservices at Amazon
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Basic Serverless API based Microservice
Internet /
other
services in
network
AWS
Databases/
Data stores
API Gateway AWS Lambda
functions
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Common question: “Should every
service of mine talk to another using
an API?”
Maybe not!: Most microservices are
internal only for a given product
supporting their customer facing
features. They may only need to
pass messages to each other that
are simple events and not need a full
fledged interactive API.
Public
interface
Internal
services
The microservices “iceberg”
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Public
interface
Focusing below the water line
Internal
services
Lambda execution model
Synchronous
(push)
Asynchronous
(event)
Poll-based
Amazon
API Gateway
AWS Lambda
function
Amazon
DynamoDBAmazon
SNS
/order
AWS Lambda
function
Amazon
S3
reqs
Amazon
Kinesis
changes
AWS Lambda
service
function
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
1. Lambda directly invoked
via invoke API
SDK clients
Lambda
function
Lambda API
API provided by the Lambda service
Used by all other services that invoke
Lambda across all models
Supports sync and async
Can pass any event payload structure
you want
Client included in every SDK
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Lambda
function
2. Lambda invoked
SNS
Topic
1. Data published to a topic
Data
Amazon SNS + Lambda
Simple, flexible, fully managed
publish/subscribe messaging and mobile
push notification service for high
throughput, highly reliable message
delivery
Messages are published to a Topic
Topics can have multiple subscribers
(fanout)
Messages can be filtered and only sent to
certain subscribers
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
1. Message inserted
into to a queue
message
Amazon
SQS
Lambda
function
3. Function
removes
message from
queue
2. Lambda polls
queue and
invokes function
Amazon SQS + Lambda
Simple, flexible, fully managed message
queuing service for reliably and
continuously exchanging any volume of
messages from anywhere
Processed in batches
At least once delivery
Visibility timeout allows for handling of
failures during processing
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Lambda
function
2. Lambda polls
stream
Amazon
Kinesis
Stream
1. Data published to a
stream
3. Kinesis returns
stream data
Data
Amazon Kinesis Streams + Lambda
Fully managed, highly scalable service for
collecting and processing real-time data
streams for analytics and machine
learning
Stream consists of shards with a fixed
amount of capacity and throughput
Lambda receives batches and potentially
batches of batches
Can have different applications consuming
the same stream
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Ways to compare
Pricing
Persistence
Retries
DurabilityScale/Concurrency
controls
Consumption
models
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scaling/Concurrency Controls
Service Scaling controls
Lambda API Concurrency is point in time, notTPS, can go to 0 up through
maximum for account per region and is shared for all functions in a
region. By default no per function concurrency throttle is set.
SNS Service automatically scales, use Lambda Per Function Concurrency
setting to control downstream consumption.
SQS Service automatically scales, use Lambda trigger Batch size setting
and Per Function Concurrency setting to control downstream
consumption.
Kinesis Streams Shards in a stream: One shard provides ingest capacity of 1MB/sec
or 1000 records/sec, up to 2MB/sec of data output.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Lambda Per Function Concurrency controls
• Concurrency a shared pool by default
• Separate using per function concurrency settings
• Acts as reservation
• Also acts as max concurrency per function
• Especially critical for data sources like RDS
• “Kill switch” – set per function concurrency to zero
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Concurrency across models
SNS/API
No event store
Queue based
Stream based
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Concurrency vs. Latency
Streams
• Maximum theoretical throughput:
# shards * 2 MB / (s)
• Effective theoretical throughput:
( # shards * batch size (MB) ) /
( function duration (s) * retries until expiry)
• If put / ingestion rate is greater than
the theoretical throughput, consider
increasing number of shards while
optimizing function duration to
increase throughput
Everything else
• Maximum Processing rate :
Maximum concurrency / average
duration (events per second)
• Effective Processing rate :
Effective concurrency / average
duration (events per second)
• Use concurrency metric and duration
metric to estimate processing time
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Durability
Service Durability of requests “in flight”
Lambda API Lambda API is built to be highly available but offers no durability of requests, client
would need to handle failures/retries.
SNS *SNS provides durable storage of all messages that it receives. Upon receiving a
publish request, SNS stores multiple copies (to disk) of the message across multiple
Availability Zones before acknowledging receipt of the request to the sender.
SQS *Amazon SQS stores all message queues and messages within a single, highly-
available AWS region with multiple redundant Availability Zones (AZs), so that no
single computer, network, or AZ failure can make messages inaccessible.
Kinesis Streams *Amazon Kinesis Data Streams synchronously replicates data across three
availability zones, providing high availability and data durability
*Taken from relevant service FAQs
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Durability
Service Durability of requests “in flight”
Lambda API Lambda API is built to be highly available but offers no durability of requests, client
would need to handle failures/retries.
SNS *SNS provides durable storage of all messages that it receives. Upon receiving a
publish request, SNS stores multiple copies (to disk) of the message across multiple
Availability Zones before acknowledging receipt of the request to the sender.
SQS *Amazon SQS stores all message queues and messages within a single, highly-
available AWS region with multiple redundant Availability Zones (AZs), so that no
single computer, network, or AZ failure can make messages inaccessible.
Kinesis Streams *Amazon Kinesis Data Streams synchronously replicates data across three
availability zones, providing high availability and data durability
*Taken from relevant service FAQs
Short version: Data is replicated across multiple
Availability Zones for all 3 of these services.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Persistence
Service Persistence of requests “in flight”
Lambda API No formal persistence model
SNS No formal persistence model beyond delivery retry logic that extends up
through potentially 13 hours
SQS By default messages are stored for 4 days. This can be modified to as little as
60 seconds up to 14 days by configuring a queue’s MessageRetentionPeriod
attribute
Kinesis Streams By default data is stored for 24 hours. You can increase this up to 168 hours (7
days). Extended data retention costs $0.02 per Shard Hour above 24 hours
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Consumption
Service Invocation model Guidance
Lambda API Can be sync or async from client to a single
invocation
For complicated Lambda to Lambda
workflows useAWS Step Functions
SNS Async to Lambda. SNS can ”fanout” to
multiple subscribing Lambda functions the
same message
Use Message Filtering to control which
messages go to which subscribers. Use
Message delivery status to track failures
SQS Lambda service polls messages from queue
and invokes Lambda on your behalf. Scales
polling based on inflight messages.
Can call message delete from within your code
or let the service handle it via successful
Lambda function execution
Kinesis
Streams
Lambda service polls messages from streams
and invokes Lambda on your behalf. Can run
multiple applications to consume the same
stream for different needs
Use the AWS Kinesis Client Library. Configure
batch size so that your function has enough
time to complete processing of records (which
might be batches on ingest as well)
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Keep orchestration out of code.
AWS Step Functions
“Serverless” workflow management with zero
administration:
Makes it easy to coordinate the components
of distributed applications and microservices
using visual workflows
Automatically triggers and tracks each step,
and retries when there are errors, so your
application executes in order and as
expected
Can handle custom failure messages from
Lambda
Task
Choice
Failure capture
Parallel Tasks
Retry/failure handling
Service Retry/failure capabilities
LambdaAPI Retry/failure logic is client dependent for synchronous invocations. For
asynchronous invocations are retried twice by the Lambda service.
SNS If Lambda is not available, SNS will retry 2 times at 1 seconds apart, then 10 times
exponentially backing off from 1 seconds to 20 minutes and finally 38 times every 20
minutes for a total 50 attempts over more than 13 hours before the message is
discarded from SNS.
SQS Messages remain in the queue until deleted.They are prevented by being accessed
by other consumers during a period of time known as the “visibility timeout”.
Successful Lambda invocations will cause deletions of messages automatically. If an
invocation fails or doesn’t delete a message during the visibility timeout window it is
made available again for other consumers.
Kinesis Streams When using the KinesisClient Library (KCL) it maintains a checkpoint/cursor of
processed records and will retry records from the same shard in order until the
cursor shows completion.
Lambda Dead Letter Queues
“By default, a failed Lambda function invoked asynchronously
is retried twice, and then the event is discarded. Using Dead
Letter Queues (DLQ), you can indicate to Lambda that
unprocessed events should be sent to an Amazon SQS queue
or Amazon SNS topic instead, where you can take further
action.” –
https://docs.aws.amazon.com/lambda/latest/dg/dlq.html
• Turn this on! (for async use-cases)
• Monitor it via an SQS Queue length metric/alarm
• If you use SNS, send the messages to something durable
and/or a trusted endpoint for processing
• Can send to Lambda functions in other regions
• If and when things go “boom” DLQ can save your
invocation event information
☠️
✉️
Q
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pricing
Service Model Cost Per Mil Factor Other
Lambda API Per request $0.20*
SNS Per request $0.50* Each 64KB chunk of
delivered data is billed
as 1 request
No charge for
deliveries to Lambda
SQS Per request $0.40* Each 64 KB chunk of
a payload is billed as
1 request
A single request can
have from 1 to 10
messages
Kinesis Streams Per Shard hour & per
request PUT Payload
Units
Shard per Hour =
$0.015
PUT Payload Units
$0.014
Each 25KB chunk of a
payload (PUT Payload
Units) are billed as 1
request
Enhanced Fanout and
Extended Data
Retention (beyond 24
hours) cost extra
* First 1 Million requests are free per month
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Ways to compare
Pricing
Persistence
Retries
DurabilityScale/Concurrency
controls
Consumption
models
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Tell me what to do already!
So what invocation resource is the right one for you?
How real time is your “real time” need?
•How synchronous is your synchronous workload? Would polling for updates
after an async invocation work?
Does order matter?
Do multiple services need to feed off of the same data?
What does breaking your Lambda function due to a bad code deploy have
impact on?
Think about the downstream!
•What happens when a downstream service fails?
•Is there the potentially to overwhelm a database or other service?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Tell me what to do already!
So what invocation resource is the right one for you?
• All of these services require little care and feeding in terms of management
• All are HIPAA eligible and PCI compliant
• All support fine grained permissions via AWS IAM
• All have a pay as you go model without commitments
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
FIN, ACK
There are many ways to get data between microservices!
• Kinesis, SNS, SQS, and the Lambda API are just a few of the ways
• You *might* need an API that you create yourself
• Think through the factor comparisons on scale, durability,
persistence, consumption models, retries, and pricing.
• You will probably end up needing more than one and potentially end
up using each of these in some part of your infrastructure
• Evaluate and test using SAM CLI
• Serverless pricing models make testing new ideas low cost and
easy to get started with!
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
aws.amazon.com/serverless
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
aws.amazon.com/messaging
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Chris Munns
munns@amazon.com
@chrismunnshttps://www.flickr.com/photos/theredproject/3302110152/
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
?
https://secure.flickr.com/photos/dullhunk/202872717/

More Related Content

What's hot

Networking Best Practices for Your Serverless Applications
Networking Best Practices for Your Serverless ApplicationsNetworking Best Practices for Your Serverless Applications
Networking Best Practices for Your Serverless Applications
Chris Munns
 
Serverless Applications with AWS SAM
Serverless Applications with AWS SAMServerless Applications with AWS SAM
Serverless Applications with AWS SAM
Chris Munns
 
Gluecon 2018 - The Best Practices and Hard Lessons Learned of Serverless Appl...
Gluecon 2018 - The Best Practices and Hard Lessons Learned of Serverless Appl...Gluecon 2018 - The Best Practices and Hard Lessons Learned of Serverless Appl...
Gluecon 2018 - The Best Practices and Hard Lessons Learned of Serverless Appl...
Chris Munns
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
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
 
Building serverless applications with Amazon S3
Building serverless applications with Amazon S3Building serverless applications with Amazon S3
Building serverless applications with Amazon S3
Chris Munns
 
Introduction to Serverless computing and AWS Lambda - Floor28
Introduction to Serverless computing and AWS Lambda - Floor28Introduction to Serverless computing and AWS Lambda - Floor28
Introduction to Serverless computing and AWS Lambda - Floor28
Boaz Ziniman
 
Overview of Serverless Application Deployment Patterns - AWS Online Tech Talks
Overview of Serverless Application Deployment Patterns - AWS Online Tech TalksOverview of Serverless Application Deployment Patterns - AWS Online Tech Talks
Overview of Serverless Application Deployment Patterns - AWS Online Tech Talks
Amazon Web Services
 
Building Global Multi-Region, Active-Active Serverless Backends I AWS Dev Day...
Building Global Multi-Region, Active-Active Serverless Backends I AWS Dev Day...Building Global Multi-Region, Active-Active Serverless Backends I AWS Dev Day...
Building Global Multi-Region, Active-Active Serverless Backends I AWS Dev Day...
AWS Germany
 
Building Serverless Microservices with AWS
Building Serverless Microservices with AWSBuilding Serverless Microservices with AWS
Building Serverless Microservices with AWS
Donnie Prakoso
 
Evolve Your Incident Response Process and Powers for AWS
Evolve Your Incident Response Process and Powers for AWS Evolve Your Incident Response Process and Powers for AWS
Evolve Your Incident Response Process and Powers for AWS
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 Summit
Amazon Web Services
 
Build a dashboard using serverless security analytics - SDD201 - AWS re:Infor...
Build a dashboard using serverless security analytics - SDD201 - AWS re:Infor...Build a dashboard using serverless security analytics - SDD201 - AWS re:Infor...
Build a dashboard using serverless security analytics - SDD201 - AWS re:Infor...
Amazon Web Services
 
Deep Dive On Serverless Application Development
Deep Dive On Serverless Application DevelopmentDeep Dive On Serverless Application Development
Deep Dive On Serverless Application Development
Amazon Web Services
 
SRV315 Building Enterprise-Grade Serverless Apps
 SRV315 Building Enterprise-Grade Serverless Apps SRV315 Building Enterprise-Grade Serverless Apps
SRV315 Building Enterprise-Grade Serverless Apps
Amazon Web Services
 
Multi-Account Strategy and Security with Centrica Hive
Multi-Account Strategy and Security with Centrica HiveMulti-Account Strategy and Security with Centrica Hive
Multi-Account Strategy and Security with Centrica Hive
Amazon Web Services
 
Data Design and Modeling for Microservices I AWS Dev Day 2018
Data Design and Modeling for Microservices I AWS Dev Day 2018Data Design and Modeling for Microservices I AWS Dev Day 2018
Data Design and Modeling for Microservices I AWS Dev Day 2018
AWS Germany
 
Tax returns in the cloud: The journey of Intuit’s data platform - SDD330 - AW...
Tax returns in the cloud: The journey of Intuit’s data platform - SDD330 - AW...Tax returns in the cloud: The journey of Intuit’s data platform - SDD330 - AW...
Tax returns in the cloud: The journey of Intuit’s data platform - SDD330 - AW...
Amazon Web Services
 
Bridgewater's Model-Based Verification of AWS Security Controls
Bridgewater's Model-Based Verification of AWS Security Controls Bridgewater's Model-Based Verification of AWS Security Controls
Bridgewater's Model-Based Verification of AWS Security Controls
Amazon Web Services
 
Costruisci e distribuisci applicazioni web moderne con AWS Amplify Console
Costruisci e distribuisci applicazioni web moderne con AWS Amplify ConsoleCostruisci e distribuisci applicazioni web moderne con AWS Amplify Console
Costruisci e distribuisci applicazioni web moderne con AWS Amplify Console
Amazon Web Services
 

What's hot (20)

Networking Best Practices for Your Serverless Applications
Networking Best Practices for Your Serverless ApplicationsNetworking Best Practices for Your Serverless Applications
Networking Best Practices for Your Serverless Applications
 
Serverless Applications with AWS SAM
Serverless Applications with AWS SAMServerless Applications with AWS SAM
Serverless Applications with AWS SAM
 
Gluecon 2018 - The Best Practices and Hard Lessons Learned of Serverless Appl...
Gluecon 2018 - The Best Practices and Hard Lessons Learned of Serverless Appl...Gluecon 2018 - The Best Practices and Hard Lessons Learned of Serverless Appl...
Gluecon 2018 - The Best Practices and Hard Lessons Learned of Serverless Appl...
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
 
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
 
Building serverless applications with Amazon S3
Building serverless applications with Amazon S3Building serverless applications with Amazon S3
Building serverless applications with Amazon S3
 
Introduction to Serverless computing and AWS Lambda - Floor28
Introduction to Serverless computing and AWS Lambda - Floor28Introduction to Serverless computing and AWS Lambda - Floor28
Introduction to Serverless computing and AWS Lambda - Floor28
 
Overview of Serverless Application Deployment Patterns - AWS Online Tech Talks
Overview of Serverless Application Deployment Patterns - AWS Online Tech TalksOverview of Serverless Application Deployment Patterns - AWS Online Tech Talks
Overview of Serverless Application Deployment Patterns - AWS Online Tech Talks
 
Building Global Multi-Region, Active-Active Serverless Backends I AWS Dev Day...
Building Global Multi-Region, Active-Active Serverless Backends I AWS Dev Day...Building Global Multi-Region, Active-Active Serverless Backends I AWS Dev Day...
Building Global Multi-Region, Active-Active Serverless Backends I AWS Dev Day...
 
Building Serverless Microservices with AWS
Building Serverless Microservices with AWSBuilding Serverless Microservices with AWS
Building Serverless Microservices with AWS
 
Evolve Your Incident Response Process and Powers for AWS
Evolve Your Incident Response Process and Powers for AWS Evolve Your Incident Response Process and Powers for AWS
Evolve Your Incident Response Process and Powers for AWS
 
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
 
Build a dashboard using serverless security analytics - SDD201 - AWS re:Infor...
Build a dashboard using serverless security analytics - SDD201 - AWS re:Infor...Build a dashboard using serverless security analytics - SDD201 - AWS re:Infor...
Build a dashboard using serverless security analytics - SDD201 - AWS re:Infor...
 
Deep Dive On Serverless Application Development
Deep Dive On Serverless Application DevelopmentDeep Dive On Serverless Application Development
Deep Dive On Serverless Application Development
 
SRV315 Building Enterprise-Grade Serverless Apps
 SRV315 Building Enterprise-Grade Serverless Apps SRV315 Building Enterprise-Grade Serverless Apps
SRV315 Building Enterprise-Grade Serverless Apps
 
Multi-Account Strategy and Security with Centrica Hive
Multi-Account Strategy and Security with Centrica HiveMulti-Account Strategy and Security with Centrica Hive
Multi-Account Strategy and Security with Centrica Hive
 
Data Design and Modeling for Microservices I AWS Dev Day 2018
Data Design and Modeling for Microservices I AWS Dev Day 2018Data Design and Modeling for Microservices I AWS Dev Day 2018
Data Design and Modeling for Microservices I AWS Dev Day 2018
 
Tax returns in the cloud: The journey of Intuit’s data platform - SDD330 - AW...
Tax returns in the cloud: The journey of Intuit’s data platform - SDD330 - AW...Tax returns in the cloud: The journey of Intuit’s data platform - SDD330 - AW...
Tax returns in the cloud: The journey of Intuit’s data platform - SDD330 - AW...
 
Bridgewater's Model-Based Verification of AWS Security Controls
Bridgewater's Model-Based Verification of AWS Security Controls Bridgewater's Model-Based Verification of AWS Security Controls
Bridgewater's Model-Based Verification of AWS Security Controls
 
Costruisci e distribuisci applicazioni web moderne con AWS Amplify Console
Costruisci e distribuisci applicazioni web moderne con AWS Amplify ConsoleCostruisci e distribuisci applicazioni web moderne con AWS Amplify Console
Costruisci e distribuisci applicazioni web moderne con AWS Amplify Console
 

Similar to Serverless Streams, Topics, Queues, & APIs! Pick the Right Serverless Application Pattern

Scalable serverless architectures using event-driven design - MAD310 - Chicag...
Scalable serverless architectures using event-driven design - MAD310 - Chicag...Scalable serverless architectures using event-driven design - MAD310 - Chicag...
Scalable serverless architectures using event-driven design - MAD310 - Chicag...
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 Computing
Amazon Web Services
 
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
Amazon Web Services
 
Serverless on AWS: Architectural Patterns and Best Practices
Serverless on AWS: Architectural Patterns and Best PracticesServerless on AWS: Architectural Patterns and Best Practices
Serverless on AWS: Architectural Patterns and Best Practices
Vladimir Simek
 
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Amazon Web Services
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
Amazon Web Services
 
Serverless Architectural Patterns
Serverless Architectural PatternsServerless Architectural Patterns
Serverless Architectural Patterns
Amazon Web Services
 
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Amazon Web Services
 
Become a Serverless Black Belt - Optimizing Your Serverless Applications - AW...
Become a Serverless Black Belt - Optimizing Your Serverless Applications - AW...Become a Serverless Black Belt - Optimizing Your Serverless Applications - AW...
Become a Serverless Black Belt - Optimizing Your Serverless Applications - AW...
Amazon Web Services
 
Building Modern Platforms: A Practical Way to Migrate Legacy Systems to Amazo...
Building Modern Platforms: A Practical Way to Migrate Legacy Systems to Amazo...Building Modern Platforms: A Practical Way to Migrate Legacy Systems to Amazo...
Building Modern Platforms: A Practical Way to Migrate Legacy Systems to Amazo...
Amazon Web Services
 
Real Time Data Processing Using AWS Lambda
Real Time Data Processing Using AWS LambdaReal Time Data Processing Using AWS Lambda
Real Time Data Processing Using AWS Lambda
Amazon 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
 
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
Amazon Web Services
 
Building Massively Parallel Event-Driven Architectures (SRV373-R1) - AWS re:I...
Building Massively Parallel Event-Driven Architectures (SRV373-R1) - AWS re:I...Building Massively Parallel Event-Driven Architectures (SRV373-R1) - AWS re:I...
Building Massively Parallel Event-Driven Architectures (SRV373-R1) - AWS re:I...
Amazon Web Services
 
Serverless SaaS apllications on AWS
Serverless SaaS apllications on AWSServerless SaaS apllications on AWS
Serverless SaaS apllications on AWS
Amazon Web Services
 
Build High-Throughput, Bursty Data Apps with Amazon SQS, SNS, & Lambda (API30...
Build High-Throughput, Bursty Data Apps with Amazon SQS, SNS, & Lambda (API30...Build High-Throughput, Bursty Data Apps with Amazon SQS, SNS, & Lambda (API30...
Build High-Throughput, Bursty Data Apps with Amazon SQS, SNS, & Lambda (API30...
Amazon Web Services
 
Best Practices for Queue Processing in Serverless Applications (SRV320) - AWS...
Best Practices for Queue Processing in Serverless Applications (SRV320) - AWS...Best Practices for Queue Processing in Serverless Applications (SRV320) - AWS...
Best Practices for Queue Processing in Serverless Applications (SRV320) - AWS...
Amazon 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 Summit
Amazon Web Services
 
Getting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and ServerlessGetting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and Serverless
Amazon Web Services
 
Building Data Lakes and Analytics on AWS. IPExpo Manchester.
Building Data Lakes and Analytics on AWS. IPExpo Manchester.Building Data Lakes and Analytics on AWS. IPExpo Manchester.
Building Data Lakes and Analytics on AWS. IPExpo Manchester.
javier ramirez
 

Similar to Serverless Streams, Topics, Queues, & APIs! Pick the Right Serverless Application Pattern (20)

Scalable serverless architectures using event-driven design - MAD310 - Chicag...
Scalable serverless architectures using event-driven design - MAD310 - Chicag...Scalable serverless architectures using event-driven design - MAD310 - Chicag...
Scalable serverless architectures using event-driven design - MAD310 - Chicag...
 
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
 
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
 
Serverless on AWS: Architectural Patterns and Best Practices
Serverless on AWS: Architectural Patterns and Best PracticesServerless on AWS: Architectural Patterns and Best Practices
Serverless on AWS: Architectural Patterns and Best Practices
 
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 
Serverless Architectural Patterns
Serverless Architectural PatternsServerless Architectural Patterns
Serverless Architectural Patterns
 
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
 
Become a Serverless Black Belt - Optimizing Your Serverless Applications - AW...
Become a Serverless Black Belt - Optimizing Your Serverless Applications - AW...Become a Serverless Black Belt - Optimizing Your Serverless Applications - AW...
Become a Serverless Black Belt - Optimizing Your Serverless Applications - AW...
 
Building Modern Platforms: A Practical Way to Migrate Legacy Systems to Amazo...
Building Modern Platforms: A Practical Way to Migrate Legacy Systems to Amazo...Building Modern Platforms: A Practical Way to Migrate Legacy Systems to Amazo...
Building Modern Platforms: A Practical Way to Migrate Legacy Systems to Amazo...
 
Real Time Data Processing Using AWS Lambda
Real Time Data Processing Using AWS LambdaReal Time Data Processing Using AWS Lambda
Real Time Data Processing Using AWS Lambda
 
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...
 
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
 
Building Massively Parallel Event-Driven Architectures (SRV373-R1) - AWS re:I...
Building Massively Parallel Event-Driven Architectures (SRV373-R1) - AWS re:I...Building Massively Parallel Event-Driven Architectures (SRV373-R1) - AWS re:I...
Building Massively Parallel Event-Driven Architectures (SRV373-R1) - AWS re:I...
 
Serverless SaaS apllications on AWS
Serverless SaaS apllications on AWSServerless SaaS apllications on AWS
Serverless SaaS apllications on AWS
 
Build High-Throughput, Bursty Data Apps with Amazon SQS, SNS, & Lambda (API30...
Build High-Throughput, Bursty Data Apps with Amazon SQS, SNS, & Lambda (API30...Build High-Throughput, Bursty Data Apps with Amazon SQS, SNS, & Lambda (API30...
Build High-Throughput, Bursty Data Apps with Amazon SQS, SNS, & Lambda (API30...
 
Best Practices for Queue Processing in Serverless Applications (SRV320) - AWS...
Best Practices for Queue Processing in Serverless Applications (SRV320) - AWS...Best Practices for Queue Processing in Serverless Applications (SRV320) - AWS...
Best Practices for Queue Processing in Serverless Applications (SRV320) - AWS...
 
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
 
Getting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and ServerlessGetting Started with AWS Lambda and Serverless
Getting Started with AWS Lambda and Serverless
 
Building Data Lakes and Analytics on AWS. IPExpo Manchester.
Building Data Lakes and Analytics on AWS. IPExpo Manchester.Building Data Lakes and Analytics on AWS. IPExpo Manchester.
Building Data Lakes and Analytics on AWS. IPExpo Manchester.
 

Recently uploaded

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
YousufSait3
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
Massimo Artizzu
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
AnkitaPandya11
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
NishanthaBulumulla1
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 

Recently uploaded (20)

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 

Serverless Streams, Topics, Queues, & APIs! Pick the Right Serverless Application Pattern

  • 1. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Chris Munns – Senior Developer Advocate – AWS Serverless August 2018 Serverless Streams, Topics, Queues, & APIs! How to Pick the Right Serverless Application Pattern
  • 2. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. About me: Chris Munns - munns@amazon.com, @chrismunns • Senior Developer Advocate - Serverless • New Yorker • Previously: • AWS Business Development Manager – DevOps, July ’15 - Feb ‘17 • AWS Solutions Architect Nov, 2011- Dec 2014 • Formerly on operations teams @Etsy and @Meetup • Little time at a hedge fund, Xerox and a few other startups • Rochester Institute of Technology: Applied Networking and Systems Administration ’05 • Internet infrastructure geek
  • 3. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. https://secure.flickr.com/photos/mgifford/4525333972 Why are we here today?
  • 4. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. No servers to provision or manage Scales with usage Never pay for idle Availability and fault tolerance built in Serverless means…
  • 5. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SERVICES (ANYTHING) Changes in data state Requests to endpoints Changes in resource state EVENT SOURCE FUNCTION Node.js Python Java C# Go Serverless applications
  • 6. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SERVICES (ANYTHING) Serverless applications FUNCTIONEVENT SOURCE
  • 7. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Common Lambda use cases Web Applications • Static websites • Complex web apps • Packages for Flask and Express Data Processing • Real time • MapReduce • Batch Chatbots • Powering chatbot logic Backends • Apps & services • Mobile • IoT </></> Amazon Alexa • Powering voice-enabled apps • Alexa Skills Kit IT Automation • Policy engines • Extending AWS services • Infrastructure management
  • 8. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Common Lambda use cases Web Applications • Static websites • Complex web apps • Packages for Flask and Express Chatbots • Powering chatbot logic Amazon Alexa • Powering voice-enabled apps • Alexa Skills Kit Backends • Apps & services • Mobile • IoT </></> Data Processing • Real time • MapReduce • Batch IT Automation • Policy engines • Extending AWS services • Infrastructure management
  • 10. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Basic Serverless API based Microservice Internet / other services in network AWS Databases/ Data stores API Gateway AWS Lambda functions
  • 11. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Common question: “Should every service of mine talk to another using an API?” Maybe not!: Most microservices are internal only for a given product supporting their customer facing features. They may only need to pass messages to each other that are simple events and not need a full fledged interactive API. Public interface Internal services The microservices “iceberg”
  • 12. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Public interface Focusing below the water line Internal services
  • 13. Lambda execution model Synchronous (push) Asynchronous (event) Poll-based Amazon API Gateway AWS Lambda function Amazon DynamoDBAmazon SNS /order AWS Lambda function Amazon S3 reqs Amazon Kinesis changes AWS Lambda service function
  • 14. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 1. Lambda directly invoked via invoke API SDK clients Lambda function Lambda API API provided by the Lambda service Used by all other services that invoke Lambda across all models Supports sync and async Can pass any event payload structure you want Client included in every SDK
  • 15. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lambda function 2. Lambda invoked SNS Topic 1. Data published to a topic Data Amazon SNS + Lambda Simple, flexible, fully managed publish/subscribe messaging and mobile push notification service for high throughput, highly reliable message delivery Messages are published to a Topic Topics can have multiple subscribers (fanout) Messages can be filtered and only sent to certain subscribers
  • 16. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 1. Message inserted into to a queue message Amazon SQS Lambda function 3. Function removes message from queue 2. Lambda polls queue and invokes function Amazon SQS + Lambda Simple, flexible, fully managed message queuing service for reliably and continuously exchanging any volume of messages from anywhere Processed in batches At least once delivery Visibility timeout allows for handling of failures during processing
  • 17. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lambda function 2. Lambda polls stream Amazon Kinesis Stream 1. Data published to a stream 3. Kinesis returns stream data Data Amazon Kinesis Streams + Lambda Fully managed, highly scalable service for collecting and processing real-time data streams for analytics and machine learning Stream consists of shards with a fixed amount of capacity and throughput Lambda receives batches and potentially batches of batches Can have different applications consuming the same stream
  • 18. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Ways to compare Pricing Persistence Retries DurabilityScale/Concurrency controls Consumption models
  • 19. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scaling/Concurrency Controls Service Scaling controls Lambda API Concurrency is point in time, notTPS, can go to 0 up through maximum for account per region and is shared for all functions in a region. By default no per function concurrency throttle is set. SNS Service automatically scales, use Lambda Per Function Concurrency setting to control downstream consumption. SQS Service automatically scales, use Lambda trigger Batch size setting and Per Function Concurrency setting to control downstream consumption. Kinesis Streams Shards in a stream: One shard provides ingest capacity of 1MB/sec or 1000 records/sec, up to 2MB/sec of data output.
  • 20. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lambda Per Function Concurrency controls • Concurrency a shared pool by default • Separate using per function concurrency settings • Acts as reservation • Also acts as max concurrency per function • Especially critical for data sources like RDS • “Kill switch” – set per function concurrency to zero
  • 21. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Concurrency across models SNS/API No event store Queue based Stream based
  • 22. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Concurrency vs. Latency Streams • Maximum theoretical throughput: # shards * 2 MB / (s) • Effective theoretical throughput: ( # shards * batch size (MB) ) / ( function duration (s) * retries until expiry) • If put / ingestion rate is greater than the theoretical throughput, consider increasing number of shards while optimizing function duration to increase throughput Everything else • Maximum Processing rate : Maximum concurrency / average duration (events per second) • Effective Processing rate : Effective concurrency / average duration (events per second) • Use concurrency metric and duration metric to estimate processing time
  • 23. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Durability Service Durability of requests “in flight” Lambda API Lambda API is built to be highly available but offers no durability of requests, client would need to handle failures/retries. SNS *SNS provides durable storage of all messages that it receives. Upon receiving a publish request, SNS stores multiple copies (to disk) of the message across multiple Availability Zones before acknowledging receipt of the request to the sender. SQS *Amazon SQS stores all message queues and messages within a single, highly- available AWS region with multiple redundant Availability Zones (AZs), so that no single computer, network, or AZ failure can make messages inaccessible. Kinesis Streams *Amazon Kinesis Data Streams synchronously replicates data across three availability zones, providing high availability and data durability *Taken from relevant service FAQs
  • 24. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Durability Service Durability of requests “in flight” Lambda API Lambda API is built to be highly available but offers no durability of requests, client would need to handle failures/retries. SNS *SNS provides durable storage of all messages that it receives. Upon receiving a publish request, SNS stores multiple copies (to disk) of the message across multiple Availability Zones before acknowledging receipt of the request to the sender. SQS *Amazon SQS stores all message queues and messages within a single, highly- available AWS region with multiple redundant Availability Zones (AZs), so that no single computer, network, or AZ failure can make messages inaccessible. Kinesis Streams *Amazon Kinesis Data Streams synchronously replicates data across three availability zones, providing high availability and data durability *Taken from relevant service FAQs Short version: Data is replicated across multiple Availability Zones for all 3 of these services.
  • 25. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Persistence Service Persistence of requests “in flight” Lambda API No formal persistence model SNS No formal persistence model beyond delivery retry logic that extends up through potentially 13 hours SQS By default messages are stored for 4 days. This can be modified to as little as 60 seconds up to 14 days by configuring a queue’s MessageRetentionPeriod attribute Kinesis Streams By default data is stored for 24 hours. You can increase this up to 168 hours (7 days). Extended data retention costs $0.02 per Shard Hour above 24 hours
  • 26. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Consumption Service Invocation model Guidance Lambda API Can be sync or async from client to a single invocation For complicated Lambda to Lambda workflows useAWS Step Functions SNS Async to Lambda. SNS can ”fanout” to multiple subscribing Lambda functions the same message Use Message Filtering to control which messages go to which subscribers. Use Message delivery status to track failures SQS Lambda service polls messages from queue and invokes Lambda on your behalf. Scales polling based on inflight messages. Can call message delete from within your code or let the service handle it via successful Lambda function execution Kinesis Streams Lambda service polls messages from streams and invokes Lambda on your behalf. Can run multiple applications to consume the same stream for different needs Use the AWS Kinesis Client Library. Configure batch size so that your function has enough time to complete processing of records (which might be batches on ingest as well)
  • 27. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Keep orchestration out of code.
  • 28. AWS Step Functions “Serverless” workflow management with zero administration: Makes it easy to coordinate the components of distributed applications and microservices using visual workflows Automatically triggers and tracks each step, and retries when there are errors, so your application executes in order and as expected Can handle custom failure messages from Lambda Task Choice Failure capture Parallel Tasks
  • 29. Retry/failure handling Service Retry/failure capabilities LambdaAPI Retry/failure logic is client dependent for synchronous invocations. For asynchronous invocations are retried twice by the Lambda service. SNS If Lambda is not available, SNS will retry 2 times at 1 seconds apart, then 10 times exponentially backing off from 1 seconds to 20 minutes and finally 38 times every 20 minutes for a total 50 attempts over more than 13 hours before the message is discarded from SNS. SQS Messages remain in the queue until deleted.They are prevented by being accessed by other consumers during a period of time known as the “visibility timeout”. Successful Lambda invocations will cause deletions of messages automatically. If an invocation fails or doesn’t delete a message during the visibility timeout window it is made available again for other consumers. Kinesis Streams When using the KinesisClient Library (KCL) it maintains a checkpoint/cursor of processed records and will retry records from the same shard in order until the cursor shows completion.
  • 30. Lambda Dead Letter Queues “By default, a failed Lambda function invoked asynchronously is retried twice, and then the event is discarded. Using Dead Letter Queues (DLQ), you can indicate to Lambda that unprocessed events should be sent to an Amazon SQS queue or Amazon SNS topic instead, where you can take further action.” – https://docs.aws.amazon.com/lambda/latest/dg/dlq.html • Turn this on! (for async use-cases) • Monitor it via an SQS Queue length metric/alarm • If you use SNS, send the messages to something durable and/or a trusted endpoint for processing • Can send to Lambda functions in other regions • If and when things go “boom” DLQ can save your invocation event information ☠️ ✉️ Q
  • 31. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pricing Service Model Cost Per Mil Factor Other Lambda API Per request $0.20* SNS Per request $0.50* Each 64KB chunk of delivered data is billed as 1 request No charge for deliveries to Lambda SQS Per request $0.40* Each 64 KB chunk of a payload is billed as 1 request A single request can have from 1 to 10 messages Kinesis Streams Per Shard hour & per request PUT Payload Units Shard per Hour = $0.015 PUT Payload Units $0.014 Each 25KB chunk of a payload (PUT Payload Units) are billed as 1 request Enhanced Fanout and Extended Data Retention (beyond 24 hours) cost extra * First 1 Million requests are free per month
  • 32. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Ways to compare Pricing Persistence Retries DurabilityScale/Concurrency controls Consumption models
  • 33. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Tell me what to do already! So what invocation resource is the right one for you? How real time is your “real time” need? •How synchronous is your synchronous workload? Would polling for updates after an async invocation work? Does order matter? Do multiple services need to feed off of the same data? What does breaking your Lambda function due to a bad code deploy have impact on? Think about the downstream! •What happens when a downstream service fails? •Is there the potentially to overwhelm a database or other service?
  • 34. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Tell me what to do already! So what invocation resource is the right one for you? • All of these services require little care and feeding in terms of management • All are HIPAA eligible and PCI compliant • All support fine grained permissions via AWS IAM • All have a pay as you go model without commitments
  • 35. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. FIN, ACK There are many ways to get data between microservices! • Kinesis, SNS, SQS, and the Lambda API are just a few of the ways • You *might* need an API that you create yourself • Think through the factor comparisons on scale, durability, persistence, consumption models, retries, and pricing. • You will probably end up needing more than one and potentially end up using each of these in some part of your infrastructure • Evaluate and test using SAM CLI • Serverless pricing models make testing new ideas low cost and easy to get started with!
  • 36. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. aws.amazon.com/serverless
  • 37. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. aws.amazon.com/messaging
  • 38. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Chris Munns munns@amazon.com @chrismunnshttps://www.flickr.com/photos/theredproject/3302110152/
  • 39. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ? https://secure.flickr.com/photos/dullhunk/202872717/

Editor's Notes

  1. https://secure.flickr.com/photos/mgifford/4525333972
  2. Always, always set your timeout correctly.
  3. Effective batch size is MIN(records available, batch size, 6 MB)
  4. https://secure.flickr.com/photos/dullhunk/202872717/