6. 1. Provision a fleet of proxy machines to capture data
uploads.
2. For each upload, enqueue a job to process it.
3. Provision a second fleet of machines to read and
process jobs.
4. Pick a deployment solution.
5. Plan capacity, accounting for fault tolerance, good
long-term utilization, burst capability, etc.
6. Monitor 24x7x365 for capacity, health, security, etc.
7. Migrate to new instance types over time, keeping
OS and language runtimes patched and up to date.
7.
8. WHAT ARE THE PRIMITIVES
OF AN APPLICATION?
Interactions
Communicated
via events
Functions Data
The Magic Happens at the Intersection of
Functions, Events and Data
(Pretty much everything else is glue or UI)
9. Driving Data with Events and Functions…
Composable
Build small
functions, quickly
Easy to update
Add new
functionality safely
and easily
Dynamic
Data is always kept
up to date
Why don’t we architect like this today?
Complex
Need to manage
a full stack for
every function
Expensive
Some functions run
very infrequently
16. Data Triggers: Amazon S3
Amazon S3 Bucket Events AWS Lambda
λ
Original image Thumbnailed image
1
2
3
17. NO INFRASTRUCTURE
TO MANAGE
Focus on business logic, not infrastructure
Upload your code, Amazon Lambda handles:
• Capacity
• Scaling
• Fault tolerance
• Monitoring
• Logging…
18. AUTOMATIC SCALING
Each object uploaded to Amazon S3 is an event
Each event is a Lambda request
Lambda scales to match the event rate
Don’t worry about over or under provisioning
Pay only for what you use
19. FINE GRAINED PRICING
Price compute time by 100ms
(so even short jobs make sense)
Low request charge
No hourly, daily, or monthly minimums
20. PREVIEW OPEN TO EVERYBODY:
AWS.AMAZON.COM / LAMBDA
SUPPORT FOR AMAZON S3 AND AMAZON KINESIS
AMAZON DYNAMODB STREAMS PREVIEW