SlideShare a Scribd company logo
1 of 63
Download to read offline
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Kashif Imran
Sr. Solutions Architect, AWS
Haoyu Chen, Amazon
Software Engineer
SRV316
Serverless Data Processing at Scale: An Amazon.com Case
Study
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
What to expect?
What’s Serverless Real-Time Data Processing?
Why Streams, Kinesis, AWS Lambda?
Amazon FBA Seller Inventory Authority Platform
Amazon Video – Thursday Night Football
Best Practices and Lessons Learned
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Serverless Real-Time Data Processing
Build real-time data processing (ingest, process, and
consume) applications and services
… without managing infrastructure
ProcessIngest Consume
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Why Streams?
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Stream Processing
Goal
• High-throughput (>1 GB/s)
• Serverless (managed compute)
• Real-time (pipeline)
Streams
• Data size constraint
• Data time constraint
• Have access to recent data
• Processing time constraint
Batch
• No size constraint
• No time constraint (not real time)
• Have access to all data
• Long running processing (reports)
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Stream Processing
Because you have data that is:
• Generated continuously and simultaneously by thousands of data sources
• Typically small sizes (KBs)
And needs to be processed either:
• Sequentially and incrementally
• Or over sliding windows
in some real-time constraint
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
What’s Amazon Kinesis?
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Kinesis: What Is It?
It’s storage
For real-time data that’s
only stored for a limited
time
Where new data is
made available
quickly
Typically less than 1
second put-to-get
delay
That uses a
checkpoint model
Supports multiple
concurrent in-order
processing
As a managed
service
With APIs that let
you easily create
and configure the
stream and put and
retrieve data
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Amazon Kinesis Data Streams
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Amazon Kinesis Data Firehose
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Amazon Kinesis Data Analytics
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Amazon Kinesis Video Streams
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
What’s AWS Lambda?
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Lambda: What Is It?
It’s your function
Your libraries, your code,
your executable
With a programming
model
Easy to start blueprints
and tutorials, monitoring,
and logging
That runs stateless
Infrastructure abstracted,
persist data using
Amazon DynamoDB,
Amazon S3, or
ElastiCache
And integrated
security model
IAM resource
policies and roles,
VPC support
And flexible resource
model
Choose your memory
and we allocate
proportional CPU,
network bandwidth,
disk I/O
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Lambda: How Do I Trigger It?
Amazon
S3
Amazon
SNS
ASYNCHRONOUS PUSH MODEL
Amazon
Alexa
AWS
IoT
SYNCHRONOUS PUSH MODEL
Mapping owned by Event Source
triggers Lambda via Invoke APIs
resource-based policy permissions
RequestResponse
invocation
Event Invocation
HOW IT WORKS
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Lambda: How do I Trigger It?
Amazon
DynamoDB
Amazon
Kinesis
STREAM PULL MODEL Mapping owned by Lambda
Lambda function invokes when new
records are found on stream
Lambda execution role policy permissions
Polled batch
RequestResponse
invocation
Lambda polls the streams
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Lambda
Node.js
Python
Java
C#
FUNCTIONEVENT SOURCE
AWS
CloudFormation
Amazon
API Gateway
Amazon
SNS
Database
Cloud
Service
Anything
ENDPOINT
Amazon
Kinesis
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Node.js
Python
Java
C#
FUNCTION
Amazon
Kinesis
ENDPOINT
Database
Cloud
Service
Anything
EVENT SOURCE
IoT Data
IoT Data
Financial
Data
Log Data
Kinesis
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Stream Processing by Lambda
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Amazon
Kinesis
AWS
Lambda
Amazon
CloudWatch
Amazon
DynamoDB
AWS
Lambda
Amazon
Elasticsearch Service
Amazon
S3
Processing Streams: Lambda
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Processing Streams: Lambda
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Processing Streams: Lambda
Event received by Lambda function is a collection of records from the stream:
{ "Records": [ {
"kinesis": {
"partitionKey": "partitionKey-3",
"kinesisSchemaVersion": "1.0",
"data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0IDEyMy4=",
"sequenceNumber": "49545115243490985018280067714973144582180062593244200961" },
"eventSource": "aws:kinesis",
"eventID": "shardId-
000000000000:49545115243490985018280067714973144582180062593244200961",
"invokeIdentityArn": "arn:aws:iam::account-id:role/testLEBRole",
"eventVersion": "1.0",
"eventName": "aws:kinesis:record",
"eventSourceARN": "arn:aws:kinesis:us-west-2:35667example:stream/examplestream",
"awsRegion": "us-west-2" } ] }
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Processing Streams: Lambda
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Processing Streams: Lambda
Per shard:
▪ Lambda calls GetRecords with max limit from Kinesis (10 k or 10 MB)
▪ If no record, wait some time (1s)
▪ Sub-batch in-memory and format records into Lambda payload
▪ Invoke Lambda with synchronous invoke
… …
Source
Amazon Kinesis
Destination 1
Lambda
Destination 2
Shards
Lambda will scale automaticallyScale Amazon Kinesis by splitting or merging shards
Waits for responsePolls a batch
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Processing Streams: Lambda
Retries
Will retry on execution failures until the record is expired
Throttles and errors impact duration and directly impact throughput
Best practice
Retry with exponential backoff
Effective theoretical throughput with retries
( # shards * batch size (MB) ) / ( function duration (s) * retries until expiry)
…
Source
Amazon Kinesis
Destination
1
Lambda
Destination
2
Shards
Polls a batch
Receives success
Receives error
Receives error
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
FBA Seller Inventory Authority Platform
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
How Does FBA Work?
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Data Platform Goals
• Single source of truth for seller’s inventory
• Reconciled view of inventory
• Surface and track discrepancies
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Design Requirements
• Should handle high volume input messages (>10000
TPS)
• Should handle hot keys in input messages
• E.g.: Received inventory message for a very large shipment
• Should handle duplicate and out of order input messages
• Must maintain an audit train for every inventory quantity
change
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Seller Inventory Authority Platform
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Launch Results
• 22 dev weeks savings in operations costs across 11 fleets
• Design to launch <4 months
• Improved the accuracy of inbound quantities between 5%
to 10%
• Reduced cost of business operations (for example, seller
contacts)
• Developers in the team enjoyed using AWS Managed
Services
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Amazon Video
Thursday Night Football
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
SUBSCRIPTION
TRANSACTIONAL
CHANNELS
Went from this … 2016
2017
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Thursday Night Football
• Live Stream to millions of users in 191 countries
• 600 different types of devices
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thursday Night Football statistics
2 million active viewers191 countries Average of 55 minutes
Most popular
alternative
commentary was
UK English
Countries
United States
Mexico
Germany
1
2
3
States
California
Texas
New York
1
2
3
Elastic Load Balancing
data processing
for each game
Elastic Load Balancing
established connections
for each game
58 TB 176M
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Lambda
API Gateway
Amazon S3
CloudFront
Elemental
Ad InsertionAmazon Redshift
Amazon DynamoDB
CloudWatch
ELK
Kinesis
Load Balancers
EC2 Instances
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Amazon Video Live Workflow
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Ad Reporting
As each ad plays…
Video Players
Report to each
interested party
according to their spec
Ad Measurement Services
Before commercial time…
Send impression URLs
for each ad
Video Players
Ads Impression
Vending Service
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
What is server-side ad reporting?
As each ad plays…
Video Players
Report to each
interested party
according to their spec
Ad Measurement Services
Ad Reporting
Service
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Why server-side?
• Protect our customers
• Simpler device integration
• On the fly configurations and filtering
• Real-time analytics and validation
Ad Reporting
Service
Analytics
Ad Measurement Services
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Challenges: Intermittent
Problem: Thursdays are great! Other days not so much…
Solution: AWS Lambda
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Challenges: Spiky
Problem: Ads play for everyone simultaneously.
Solution: Amazon Kinesis
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Challenges: Scale
Problem: Millions of viewers = millions of TPS
Solution: Amazon Kinesis shards + batching
… …
Source
Amazon Kinesis
Destination 1
Lambda
Destination 2
Shards
Lambda will scale automaticallyScale Amazon Kinesis by splitting or merging shards
Waits for responsePolls a batch
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Architecture at a glance
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Launch Results
• Only 3 months from paper to launch
• Reduced time spent on developing metrics and alarms
• Reduced cost of business operations by more than 90%
• Fast iterations and changes
• Easily extensible
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Best Practices and Lessons Learned
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Efficient Function Code
• Avoid “fat”/monolithic functions
• Control the dependencies in your function's
deployment package
• Optimize for your language
• Node – Browserfy, Minify
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
JAVA – Scope Your POM File
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>2.10.10</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.10.5</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
<version>1.10.10</version>
</dependency>
<dependencies>
Maven Bill Of Materials
(BOM) module for AWS
SDK
Avoid aws-java-sdk directly!
Select service
dependencies only
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Ephemeral Function Environment
• Lambda processes a single event
per-container
• No need for non-blocking execution
on the frontend
• REMEMBER – containers are reused
• Lazily load variables in the global
scope
• Don’t load it if you don’t need it –
cold starts are affected
import boto3
client = None
def my_handler(event, context):
global client
if not client:
client =
boto3.client("s3")
# process
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Smart Resource Allocation
Match resource allocation (up to 3 GB!) to logic
Stats for Lambda function that calculates 1000 times all prime numbers
<= 1000000
128 MB 11.722965sec $0.024628
256 MB 6.678945sec $0.028035
512 MB 3.194954sec $0.026830
1024 MB 1.465984sec $0.024638
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Multithreading?
• <1.8 GB is still single core
• CPU bound workloads won’t see gains – processes share same
resources
• >1.8 GB is muti-core
• CPU bound workloads will gains, but need to multi thread
• I/O bound workloads will likely see gains
• e.g., parallel calculations to return
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Concurrency vs. Latency
▪ Increasing # of shards with even distribution allows increased concurrency
▪ If put / ingestion rate is greater than the theoretical throughput, consider increasing number of
shards while optimizing function duration to increase throughput
• Effective theoretical throughput:
( # shards * batch size (MB) ) / (function duration (s) * retries until expiry)
… …
Source
Kinesis
Destination 1
Lambda
Destination 2
Shards
Lambda will scale automaticallyScale Amazon Kinesis by splitting or merging shards
Waits for responsePolls a batch
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Monitoring
Monitoring Amazon Kinesis Streams
•GetRecords: (effective throughput)
•PutRecord: bytes, latency, records, etc.
•GetRecords.IteratorAgeMilliseconds: how old your last processed
records were
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Monitoring
Monitoring Lambda functions
Invocation count: Time function invoked
•Duration: Execution/processing time
•Error count: Number of Errors
•Throttle count: Number of time function throttled
•Iterator Age: Time elapsed from batch received & final record written to
stream
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Other Lessons Learned
• Optimize cost by aggregating to 25-KB payload size
• When re-sharding, try scaling in multiple of 2 or halves
• Compressing kinesis payloads can save on bandwidth
• Optimize Lambda GetRecord batch sizes
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
Thank you!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Please complete the session survey in
the summit mobile app.
Submit Session Feedback
1. Tap the Schedule icon. 2. Select the session
you attended.
3. Tap Session
Evaluation to submit your
feedback.

More Related Content

What's hot

Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018Amazon Web Services
 
Serverless Architectural Patterns
Serverless Architectural PatternsServerless Architectural Patterns
Serverless Architectural PatternsAmazon Web Services
 
ENT307 Move your Desktops and Apps to AWS with Amazon WorkSpaces and AppStre...
 ENT307 Move your Desktops and Apps to AWS with Amazon WorkSpaces and AppStre... ENT307 Move your Desktops and Apps to AWS with Amazon WorkSpaces and AppStre...
ENT307 Move your Desktops and Apps to AWS with Amazon WorkSpaces and AppStre...Amazon Web Services
 
Amazon CI-CD Practices for Software Development Teams
Amazon CI-CD Practices for Software Development Teams Amazon CI-CD Practices for Software Development Teams
Amazon CI-CD Practices for Software Development Teams Amazon Web Services
 
Securely Deliver Desktop Applications with Amazon AppStream 2.0 (BAP201) - AW...
Securely Deliver Desktop Applications with Amazon AppStream 2.0 (BAP201) - AW...Securely Deliver Desktop Applications with Amazon AppStream 2.0 (BAP201) - AW...
Securely Deliver Desktop Applications with Amazon AppStream 2.0 (BAP201) - AW...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
 
Building Highly Scalable Retail Order Management Systems with Serverless
Building Highly Scalable Retail Order Management Systems with ServerlessBuilding Highly Scalable Retail Order Management Systems with Serverless
Building Highly Scalable Retail Order Management Systems with ServerlessAmazon 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 AppsAmazon Web Services
 
SRV204 Creating Your Virtual Data Center: VPC Fundamentals and Connectivity ...
 SRV204 Creating Your Virtual Data Center: VPC Fundamentals and Connectivity ... SRV204 Creating Your Virtual Data Center: VPC Fundamentals and Connectivity ...
SRV204 Creating Your Virtual Data Center: VPC Fundamentals and Connectivity ...Amazon Web Services
 
How Rovio Uses Amazon CloudFront for Secure API Acceleration (CTD315) - AWS r...
How Rovio Uses Amazon CloudFront for Secure API Acceleration (CTD315) - AWS r...How Rovio Uses Amazon CloudFront for Secure API Acceleration (CTD315) - AWS r...
How Rovio Uses Amazon CloudFront for Secure API Acceleration (CTD315) - AWS r...Amazon Web Services
 
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018Amazon Web Services
 
Serverless Video Ingestion & Analytics with Amazon Kinesis Video Streams (ANT...
Serverless Video Ingestion & Analytics with Amazon Kinesis Video Streams (ANT...Serverless Video Ingestion & Analytics with Amazon Kinesis Video Streams (ANT...
Serverless Video Ingestion & Analytics with Amazon Kinesis Video Streams (ANT...Amazon Web Services
 
SRV328 Designing and Implementing a Serverless Media-Processing Workflow
SRV328 Designing and Implementing a Serverless Media-Processing WorkflowSRV328 Designing and Implementing a Serverless Media-Processing Workflow
SRV328 Designing and Implementing a Serverless Media-Processing WorkflowAmazon Web Services
 
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...Amazon Web Services
 
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Amazon Web Services
 
IoT Building Blocks_ From Edge Devices to Analytics in the Cloud
IoT Building Blocks_ From Edge Devices to Analytics in the Cloud IoT Building Blocks_ From Edge Devices to Analytics in the Cloud
IoT Building Blocks_ From Edge Devices to Analytics in the Cloud Amazon Web Services
 
BDA303 Amazon Rekognition: Deep Learning-Based Image and Video Analysis
BDA303 Amazon Rekognition: Deep Learning-Based Image and Video AnalysisBDA303 Amazon Rekognition: Deep Learning-Based Image and Video Analysis
BDA303 Amazon Rekognition: Deep Learning-Based Image and Video AnalysisAmazon Web Services
 
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...Amazon Web Services
 
SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
 SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDSAmazon Web Services
 
DEM04 Fearless: From Monolith to Serverless with Dynatrace
DEM04 Fearless: From Monolith to Serverless with DynatraceDEM04 Fearless: From Monolith to Serverless with Dynatrace
DEM04 Fearless: From Monolith to Serverless with DynatraceAmazon Web Services
 

What's hot (20)

Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
Don’t Wait Until Tomorrow: From Batch to Streaming (ANT360) - AWS re:Invent 2018
 
Serverless Architectural Patterns
Serverless Architectural PatternsServerless Architectural Patterns
Serverless Architectural Patterns
 
ENT307 Move your Desktops and Apps to AWS with Amazon WorkSpaces and AppStre...
 ENT307 Move your Desktops and Apps to AWS with Amazon WorkSpaces and AppStre... ENT307 Move your Desktops and Apps to AWS with Amazon WorkSpaces and AppStre...
ENT307 Move your Desktops and Apps to AWS with Amazon WorkSpaces and AppStre...
 
Amazon CI-CD Practices for Software Development Teams
Amazon CI-CD Practices for Software Development Teams Amazon CI-CD Practices for Software Development Teams
Amazon CI-CD Practices for Software Development Teams
 
Securely Deliver Desktop Applications with Amazon AppStream 2.0 (BAP201) - AW...
Securely Deliver Desktop Applications with Amazon AppStream 2.0 (BAP201) - AW...Securely Deliver Desktop Applications with Amazon AppStream 2.0 (BAP201) - AW...
Securely Deliver Desktop Applications with Amazon AppStream 2.0 (BAP201) - AW...
 
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...
 
Building Highly Scalable Retail Order Management Systems with Serverless
Building Highly Scalable Retail Order Management Systems with ServerlessBuilding Highly Scalable Retail Order Management Systems with Serverless
Building Highly Scalable Retail Order Management Systems with Serverless
 
SRV315 Building Enterprise-Grade Serverless Apps
 SRV315 Building Enterprise-Grade Serverless Apps SRV315 Building Enterprise-Grade Serverless Apps
SRV315 Building Enterprise-Grade Serverless Apps
 
SRV204 Creating Your Virtual Data Center: VPC Fundamentals and Connectivity ...
 SRV204 Creating Your Virtual Data Center: VPC Fundamentals and Connectivity ... SRV204 Creating Your Virtual Data Center: VPC Fundamentals and Connectivity ...
SRV204 Creating Your Virtual Data Center: VPC Fundamentals and Connectivity ...
 
How Rovio Uses Amazon CloudFront for Secure API Acceleration (CTD315) - AWS r...
How Rovio Uses Amazon CloudFront for Secure API Acceleration (CTD315) - AWS r...How Rovio Uses Amazon CloudFront for Secure API Acceleration (CTD315) - AWS r...
How Rovio Uses Amazon CloudFront for Secure API Acceleration (CTD315) - AWS r...
 
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
Optimizing Costs as You Scale on AWS (ENT302) - AWS re:Invent 2018
 
Serverless Video Ingestion & Analytics with Amazon Kinesis Video Streams (ANT...
Serverless Video Ingestion & Analytics with Amazon Kinesis Video Streams (ANT...Serverless Video Ingestion & Analytics with Amazon Kinesis Video Streams (ANT...
Serverless Video Ingestion & Analytics with Amazon Kinesis Video Streams (ANT...
 
SRV328 Designing and Implementing a Serverless Media-Processing Workflow
SRV328 Designing and Implementing a Serverless Media-Processing WorkflowSRV328 Designing and Implementing a Serverless Media-Processing Workflow
SRV328 Designing and Implementing a Serverless Media-Processing Workflow
 
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
High Velocity DevOps: Four Ways to Leverage CloudFront in Faster DevOps Workf...
 
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
 
IoT Building Blocks_ From Edge Devices to Analytics in the Cloud
IoT Building Blocks_ From Edge Devices to Analytics in the Cloud IoT Building Blocks_ From Edge Devices to Analytics in the Cloud
IoT Building Blocks_ From Edge Devices to Analytics in the Cloud
 
BDA303 Amazon Rekognition: Deep Learning-Based Image and Video Analysis
BDA303 Amazon Rekognition: Deep Learning-Based Image and Video AnalysisBDA303 Amazon Rekognition: Deep Learning-Based Image and Video Analysis
BDA303 Amazon Rekognition: Deep Learning-Based Image and Video Analysis
 
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
Leveraging the AWS Cloud Adoption Framework to Build Your Cloud Action Plan (...
 
SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
 SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
 
DEM04 Fearless: From Monolith to Serverless with Dynatrace
DEM04 Fearless: From Monolith to Serverless with DynatraceDEM04 Fearless: From Monolith to Serverless with Dynatrace
DEM04 Fearless: From Monolith to Serverless with Dynatrace
 

Similar to SRV316 Serverless Data Processing at Scale: An Amazon.com Case Study

Serverless Architectural Patterns - ServerlessDays TLV
Serverless Architectural Patterns - ServerlessDays TLVServerless Architectural Patterns - ServerlessDays TLV
Serverless Architectural Patterns - ServerlessDays TLVBoaz Ziniman
 
Serverless Stream Processing Pipeline Best Practices (SRV316-R1) - AWS re:Inv...
Serverless Stream Processing Pipeline Best Practices (SRV316-R1) - AWS re:Inv...Serverless Stream Processing Pipeline Best Practices (SRV316-R1) - AWS re:Inv...
Serverless Stream Processing Pipeline Best Practices (SRV316-R1) - AWS re:Inv...Amazon Web Services
 
Serverless Architectural Patterns - GOTO Amsterdam
Serverless Architectural Patterns - GOTO AmsterdamServerless Architectural Patterns - GOTO Amsterdam
Serverless Architectural Patterns - GOTO AmsterdamBoaz Ziniman
 
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018Amazon Web Services
 
WildRydes Serverless Data Processing Workshop
WildRydes Serverless Data Processing WorkshopWildRydes Serverless Data Processing Workshop
WildRydes Serverless Data Processing WorkshopAmazon 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
 
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)Adir Sharabi
 
DEM18 How SendBird Built a Serverless Log-Processing Pipeline in a Week
DEM18 How SendBird Built a Serverless Log-Processing Pipeline in a WeekDEM18 How SendBird Built a Serverless Log-Processing Pipeline in a Week
DEM18 How SendBird Built a Serverless Log-Processing Pipeline in a WeekAmazon Web Services
 
Scaling from zero to millions of users
Scaling from zero to millions of usersScaling from zero to millions of users
Scaling from zero to millions of usersAmazon 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 PracticesVladimir Simek
 
Using Amazon VPC Flow Logs for Predictive Security Analytics (NET319) - AWS r...
Using Amazon VPC Flow Logs for Predictive Security Analytics (NET319) - AWS r...Using Amazon VPC Flow Logs for Predictive Security Analytics (NET319) - AWS r...
Using Amazon VPC Flow Logs for Predictive Security Analytics (NET319) - AWS r...Amazon Web Services
 
Build Your Own Log Analytics Solutions on AWS (ANT323-R) - AWS re:Invent 2018
Build Your Own Log Analytics Solutions on AWS (ANT323-R) - AWS re:Invent 2018Build Your Own Log Analytics Solutions on AWS (ANT323-R) - AWS re:Invent 2018
Build Your Own Log Analytics Solutions on AWS (ANT323-R) - AWS re:Invent 2018Amazon Web Services
 
Accelerate Analytics at Scale with Amazon EMR - AWS Summit Sydney 2018
Accelerate Analytics at Scale with Amazon EMR - AWS Summit Sydney 2018Accelerate Analytics at Scale with Amazon EMR - AWS Summit Sydney 2018
Accelerate Analytics at Scale with Amazon EMR - AWS Summit Sydney 2018Amazon Web Services
 
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Amazon Web Services
 
Serverless Architectural Patterns
Serverless Architectural PatternsServerless Architectural Patterns
Serverless Architectural PatternsAmazon Web Services
 
Serverless Stream Processing Tips & Tricks - BDA311 - Chicago AWS Summit
Serverless Stream Processing Tips & Tricks - BDA311 - Chicago AWS SummitServerless Stream Processing Tips & Tricks - BDA311 - Chicago AWS Summit
Serverless Stream Processing Tips & Tricks - BDA311 - Chicago AWS SummitAmazon Web Services
 
Scaling Up to Your First 10 Million Users (ARC205-R1) - AWS re:Invent 2018
Scaling Up to Your First 10 Million Users (ARC205-R1) - AWS re:Invent 2018Scaling Up to Your First 10 Million Users (ARC205-R1) - AWS re:Invent 2018
Scaling Up to Your First 10 Million Users (ARC205-R1) - AWS re:Invent 2018Amazon Web Services
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)Amazon Web Services
 

Similar to SRV316 Serverless Data Processing at Scale: An Amazon.com Case Study (20)

Serverless Architectural Patterns - ServerlessDays TLV
Serverless Architectural Patterns - ServerlessDays TLVServerless Architectural Patterns - ServerlessDays TLV
Serverless Architectural Patterns - ServerlessDays TLV
 
Serverless Stream Processing Pipeline Best Practices (SRV316-R1) - AWS re:Inv...
Serverless Stream Processing Pipeline Best Practices (SRV316-R1) - AWS re:Inv...Serverless Stream Processing Pipeline Best Practices (SRV316-R1) - AWS re:Inv...
Serverless Stream Processing Pipeline Best Practices (SRV316-R1) - AWS re:Inv...
 
Serverless Architectural Patterns - GOTO Amsterdam
Serverless Architectural Patterns - GOTO AmsterdamServerless Architectural Patterns - GOTO Amsterdam
Serverless Architectural Patterns - GOTO Amsterdam
 
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
 
WildRydes Serverless Data Processing Workshop
WildRydes Serverless Data Processing WorkshopWildRydes Serverless Data Processing Workshop
WildRydes Serverless Data Processing Workshop
 
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...
 
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
AWS Floor28 - WildRydes Serverless Data Processsing workshop (Ver2)
 
DEM18 How SendBird Built a Serverless Log-Processing Pipeline in a Week
DEM18 How SendBird Built a Serverless Log-Processing Pipeline in a WeekDEM18 How SendBird Built a Serverless Log-Processing Pipeline in a Week
DEM18 How SendBird Built a Serverless Log-Processing Pipeline in a Week
 
Scaling from zero to millions of users
Scaling from zero to millions of usersScaling from zero to millions of users
Scaling from zero to millions of users
 
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
 
Using Amazon VPC Flow Logs for Predictive Security Analytics (NET319) - AWS r...
Using Amazon VPC Flow Logs for Predictive Security Analytics (NET319) - AWS r...Using Amazon VPC Flow Logs for Predictive Security Analytics (NET319) - AWS r...
Using Amazon VPC Flow Logs for Predictive Security Analytics (NET319) - AWS r...
 
Data Warehouses and Data Lakes
Data Warehouses and Data LakesData Warehouses and Data Lakes
Data Warehouses and Data Lakes
 
Build Your Own Log Analytics Solutions on AWS (ANT323-R) - AWS re:Invent 2018
Build Your Own Log Analytics Solutions on AWS (ANT323-R) - AWS re:Invent 2018Build Your Own Log Analytics Solutions on AWS (ANT323-R) - AWS re:Invent 2018
Build Your Own Log Analytics Solutions on AWS (ANT323-R) - AWS re:Invent 2018
 
Accelerate Analytics at Scale with Amazon EMR - AWS Summit Sydney 2018
Accelerate Analytics at Scale with Amazon EMR - AWS Summit Sydney 2018Accelerate Analytics at Scale with Amazon EMR - AWS Summit Sydney 2018
Accelerate Analytics at Scale with Amazon EMR - AWS Summit Sydney 2018
 
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
 
Serverless Architectural Patterns
Serverless Architectural PatternsServerless Architectural Patterns
Serverless Architectural Patterns
 
Serverless Stream Processing Tips & Tricks - BDA311 - Chicago AWS Summit
Serverless Stream Processing Tips & Tricks - BDA311 - Chicago AWS SummitServerless Stream Processing Tips & Tricks - BDA311 - Chicago AWS Summit
Serverless Stream Processing Tips & Tricks - BDA311 - Chicago AWS Summit
 
Analyzing Streams
Analyzing StreamsAnalyzing Streams
Analyzing Streams
 
Scaling Up to Your First 10 Million Users (ARC205-R1) - AWS re:Invent 2018
Scaling Up to Your First 10 Million Users (ARC205-R1) - AWS re:Invent 2018Scaling Up to Your First 10 Million Users (ARC205-R1) - AWS re:Invent 2018
Scaling Up to Your First 10 Million Users (ARC205-R1) - AWS re:Invent 2018
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
 

More from 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
 

More from 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
 

SRV316 Serverless Data Processing at Scale: An Amazon.com Case Study

  • 1. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Kashif Imran Sr. Solutions Architect, AWS Haoyu Chen, Amazon Software Engineer SRV316 Serverless Data Processing at Scale: An Amazon.com Case Study
  • 2. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. What to expect? What’s Serverless Real-Time Data Processing? Why Streams, Kinesis, AWS Lambda? Amazon FBA Seller Inventory Authority Platform Amazon Video – Thursday Night Football Best Practices and Lessons Learned
  • 3. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Serverless Real-Time Data Processing Build real-time data processing (ingest, process, and consume) applications and services … without managing infrastructure ProcessIngest Consume
  • 4. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Why Streams?
  • 5. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Stream Processing Goal • High-throughput (>1 GB/s) • Serverless (managed compute) • Real-time (pipeline) Streams • Data size constraint • Data time constraint • Have access to recent data • Processing time constraint Batch • No size constraint • No time constraint (not real time) • Have access to all data • Long running processing (reports)
  • 6. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Stream Processing Because you have data that is: • Generated continuously and simultaneously by thousands of data sources • Typically small sizes (KBs) And needs to be processed either: • Sequentially and incrementally • Or over sliding windows in some real-time constraint
  • 7. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. What’s Amazon Kinesis?
  • 8. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Kinesis: What Is It? It’s storage For real-time data that’s only stored for a limited time Where new data is made available quickly Typically less than 1 second put-to-get delay That uses a checkpoint model Supports multiple concurrent in-order processing As a managed service With APIs that let you easily create and configure the stream and put and retrieve data
  • 9. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Amazon Kinesis Data Streams
  • 10. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Amazon Kinesis Data Firehose
  • 11. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Amazon Kinesis Data Analytics
  • 12. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Amazon Kinesis Video Streams
  • 13. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. What’s AWS Lambda?
  • 14. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Lambda: What Is It? It’s your function Your libraries, your code, your executable With a programming model Easy to start blueprints and tutorials, monitoring, and logging That runs stateless Infrastructure abstracted, persist data using Amazon DynamoDB, Amazon S3, or ElastiCache And integrated security model IAM resource policies and roles, VPC support And flexible resource model Choose your memory and we allocate proportional CPU, network bandwidth, disk I/O
  • 15. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Lambda: How Do I Trigger It? Amazon S3 Amazon SNS ASYNCHRONOUS PUSH MODEL Amazon Alexa AWS IoT SYNCHRONOUS PUSH MODEL Mapping owned by Event Source triggers Lambda via Invoke APIs resource-based policy permissions RequestResponse invocation Event Invocation HOW IT WORKS
  • 16. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Lambda: How do I Trigger It? Amazon DynamoDB Amazon Kinesis STREAM PULL MODEL Mapping owned by Lambda Lambda function invokes when new records are found on stream Lambda execution role policy permissions Polled batch RequestResponse invocation Lambda polls the streams
  • 17. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Lambda Node.js Python Java C# FUNCTIONEVENT SOURCE AWS CloudFormation Amazon API Gateway Amazon SNS Database Cloud Service Anything ENDPOINT Amazon Kinesis
  • 18. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Node.js Python Java C# FUNCTION Amazon Kinesis ENDPOINT Database Cloud Service Anything EVENT SOURCE IoT Data IoT Data Financial Data Log Data Kinesis
  • 19. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Stream Processing by Lambda
  • 20. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Amazon Kinesis AWS Lambda Amazon CloudWatch Amazon DynamoDB AWS Lambda Amazon Elasticsearch Service Amazon S3 Processing Streams: Lambda
  • 21. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Processing Streams: Lambda
  • 22. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Processing Streams: Lambda Event received by Lambda function is a collection of records from the stream: { "Records": [ { "kinesis": { "partitionKey": "partitionKey-3", "kinesisSchemaVersion": "1.0", "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0IDEyMy4=", "sequenceNumber": "49545115243490985018280067714973144582180062593244200961" }, "eventSource": "aws:kinesis", "eventID": "shardId- 000000000000:49545115243490985018280067714973144582180062593244200961", "invokeIdentityArn": "arn:aws:iam::account-id:role/testLEBRole", "eventVersion": "1.0", "eventName": "aws:kinesis:record", "eventSourceARN": "arn:aws:kinesis:us-west-2:35667example:stream/examplestream", "awsRegion": "us-west-2" } ] }
  • 23. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Processing Streams: Lambda
  • 24. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Processing Streams: Lambda Per shard: ▪ Lambda calls GetRecords with max limit from Kinesis (10 k or 10 MB) ▪ If no record, wait some time (1s) ▪ Sub-batch in-memory and format records into Lambda payload ▪ Invoke Lambda with synchronous invoke … … Source Amazon Kinesis Destination 1 Lambda Destination 2 Shards Lambda will scale automaticallyScale Amazon Kinesis by splitting or merging shards Waits for responsePolls a batch
  • 25. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Processing Streams: Lambda Retries Will retry on execution failures until the record is expired Throttles and errors impact duration and directly impact throughput Best practice Retry with exponential backoff Effective theoretical throughput with retries ( # shards * batch size (MB) ) / ( function duration (s) * retries until expiry) … Source Amazon Kinesis Destination 1 Lambda Destination 2 Shards Polls a batch Receives success Receives error Receives error
  • 26. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. FBA Seller Inventory Authority Platform
  • 27. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  • 28. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. How Does FBA Work?
  • 29. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  • 30. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Data Platform Goals • Single source of truth for seller’s inventory • Reconciled view of inventory • Surface and track discrepancies
  • 31. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Design Requirements • Should handle high volume input messages (>10000 TPS) • Should handle hot keys in input messages • E.g.: Received inventory message for a very large shipment • Should handle duplicate and out of order input messages • Must maintain an audit train for every inventory quantity change
  • 32. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Seller Inventory Authority Platform
  • 33. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Launch Results • 22 dev weeks savings in operations costs across 11 fleets • Design to launch <4 months • Improved the accuracy of inbound quantities between 5% to 10% • Reduced cost of business operations (for example, seller contacts) • Developers in the team enjoyed using AWS Managed Services
  • 34. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Amazon Video Thursday Night Football
  • 35. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. SUBSCRIPTION TRANSACTIONAL CHANNELS
  • 36. Went from this … 2016
  • 37. 2017
  • 38. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Thursday Night Football • Live Stream to millions of users in 191 countries • 600 different types of devices
  • 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thursday Night Football statistics 2 million active viewers191 countries Average of 55 minutes Most popular alternative commentary was UK English Countries United States Mexico Germany 1 2 3 States California Texas New York 1 2 3 Elastic Load Balancing data processing for each game Elastic Load Balancing established connections for each game 58 TB 176M
  • 40. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Lambda API Gateway Amazon S3 CloudFront Elemental Ad InsertionAmazon Redshift Amazon DynamoDB CloudWatch ELK Kinesis Load Balancers EC2 Instances
  • 41. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Amazon Video Live Workflow
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Ad Reporting As each ad plays… Video Players Report to each interested party according to their spec Ad Measurement Services Before commercial time… Send impression URLs for each ad Video Players Ads Impression Vending Service
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. What is server-side ad reporting? As each ad plays… Video Players Report to each interested party according to their spec Ad Measurement Services Ad Reporting Service
  • 44. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Why server-side? • Protect our customers • Simpler device integration • On the fly configurations and filtering • Real-time analytics and validation Ad Reporting Service Analytics Ad Measurement Services
  • 45. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Challenges: Intermittent Problem: Thursdays are great! Other days not so much… Solution: AWS Lambda
  • 46. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Challenges: Spiky Problem: Ads play for everyone simultaneously. Solution: Amazon Kinesis
  • 47. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Challenges: Scale Problem: Millions of viewers = millions of TPS Solution: Amazon Kinesis shards + batching … … Source Amazon Kinesis Destination 1 Lambda Destination 2 Shards Lambda will scale automaticallyScale Amazon Kinesis by splitting or merging shards Waits for responsePolls a batch
  • 48. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Architecture at a glance
  • 49. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Launch Results • Only 3 months from paper to launch • Reduced time spent on developing metrics and alarms • Reduced cost of business operations by more than 90% • Fast iterations and changes • Easily extensible
  • 50. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  • 51. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Best Practices and Lessons Learned
  • 52. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Efficient Function Code • Avoid “fat”/monolithic functions • Control the dependencies in your function's deployment package • Optimize for your language • Node – Browserfy, Minify
  • 53. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. JAVA – Scope Your POM File <dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-bom</artifactId> <version>2.10.10</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> <version>1.10.5</version> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-dynamodb</artifactId> <version>1.10.10</version> </dependency> <dependencies> Maven Bill Of Materials (BOM) module for AWS SDK Avoid aws-java-sdk directly! Select service dependencies only
  • 54. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Ephemeral Function Environment • Lambda processes a single event per-container • No need for non-blocking execution on the frontend • REMEMBER – containers are reused • Lazily load variables in the global scope • Don’t load it if you don’t need it – cold starts are affected import boto3 client = None def my_handler(event, context): global client if not client: client = boto3.client("s3") # process
  • 55. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Smart Resource Allocation Match resource allocation (up to 3 GB!) to logic Stats for Lambda function that calculates 1000 times all prime numbers <= 1000000 128 MB 11.722965sec $0.024628 256 MB 6.678945sec $0.028035 512 MB 3.194954sec $0.026830 1024 MB 1.465984sec $0.024638
  • 56. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Multithreading? • <1.8 GB is still single core • CPU bound workloads won’t see gains – processes share same resources • >1.8 GB is muti-core • CPU bound workloads will gains, but need to multi thread • I/O bound workloads will likely see gains • e.g., parallel calculations to return
  • 57. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Concurrency vs. Latency ▪ Increasing # of shards with even distribution allows increased concurrency ▪ If put / ingestion rate is greater than the theoretical throughput, consider increasing number of shards while optimizing function duration to increase throughput • Effective theoretical throughput: ( # shards * batch size (MB) ) / (function duration (s) * retries until expiry) … … Source Kinesis Destination 1 Lambda Destination 2 Shards Lambda will scale automaticallyScale Amazon Kinesis by splitting or merging shards Waits for responsePolls a batch
  • 58. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Monitoring Monitoring Amazon Kinesis Streams •GetRecords: (effective throughput) •PutRecord: bytes, latency, records, etc. •GetRecords.IteratorAgeMilliseconds: how old your last processed records were
  • 59. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Monitoring Monitoring Lambda functions Invocation count: Time function invoked •Duration: Execution/processing time •Error count: Number of Errors •Throttle count: Number of time function throttled •Iterator Age: Time elapsed from batch received & final record written to stream
  • 60. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Other Lessons Learned • Optimize cost by aggregating to 25-KB payload size • When re-sharding, try scaling in multiple of 2 or halves • Compressing kinesis payloads can save on bandwidth • Optimize Lambda GetRecord batch sizes
  • 61. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Thank you!
  • 62. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Please complete the session survey in the summit mobile app.
  • 63. Submit Session Feedback 1. Tap the Schedule icon. 2. Select the session you attended. 3. Tap Session Evaluation to submit your feedback.