1. AWS DevDay: Nordics
Serverless: State of the Union
Ian Massingham | @IanMmmm
D e v e l o p e r/ Te c h n i c a l E v a n g e l i s m L e a d
A m a z o n W e b S e r v i c e s
2. A typical day for a developer…
Manager “We need an app to let our customers update preference
settings – our competitors just launched the same thing, so I need it
fast. I don’t want to pay a lot for it, especially when no one is using it.
But remember that we’re growing, so make sure it scales great and is
easy to manage and operate. And you’re on your own – sorry!”
Developer “Not a problem. I’ll make it serverless…”
4. Joe promised his boss an app.
Now what?
Step 1: Find a working example!
Serverless web app with
…an API hosted on Amazon API Gateway
…access to existing data stored in Amazon DynamoDB
…static content served by Amazon S3 and Amazon CloudFront
…dynamic content/business logic encoded as Lambda functions
What we need
8. Lambda Function Editor
• Edit multiple files at once!
• Create new files for existing packages
• Run tests and view results and logs
without leaving the editor
• Save test inputs and reuse them later
• WYSIWYG designer
9. Serverless app benefits
Go from concept to working code in under 5 minutes. And
your app isn’t just a prototype…
• 1,000 concurrent executions (10K TPS) by default.
• Every account in good standing is
automatically approved to 3X the default!
14. Next, Joe needs to make some changes.
Step 2: Customize and share
Need an IDE for local dev/test/debug
Customize the app we deployed in step 1
Set up a CI/CD pipeline for the team
Deploy (safely!)
What we need
to do
15. Easy-to-use IDE in the cloud
Builtin GitHub support
Builtin Lambda blueprint support
Builtin SAM Local:
Local testing!
IDE debugging!
Deploy directly to Lambda and/or push
updates to GitHub
AWS Cloud9
16. Automated CI/CD process
Git push your changes from Cloud9
when ready to share…
Set up an AWS CodePipeline to build
automatically on updates
Local Testing
17. I need to deploy Lambda functions
safely and incrementally.
Customer feedback
How can I deploy multiple
functions and APIs in a
coordinated way?
How do I roll back
automatically?
How can I shape traffic
between two versions of
an API?
18. Safe, incremental serverless deployment
Lambda: Weighted aliases
• Set percentage of traffic between two versions of the same
function
API Gateway: Sub-stages for incremental deployments
• Share traffic between two stages
AWS CodeDeploy: Automated support for safe serverless
deployments
• Amazon CloudWatch metrics-driven rollout/rollback
19.
20.
21.
22.
23.
24.
25.
26. Another typical day…
Manager: “That app you built is working great, but now we need to
include data from a relational DB and one of our legacy services in our
VPC. Is your serverless architecture going to handle that?”
Developer “Not a problem.”
27. Next up: Deal with legacy stuff.
Step 3: Connect to enterprise systems
Monitor concurrency
Limit concurrency for legacy connectivity
Hook up APIs to VPC-based services
Audit and log all invocations
What we need
to do
28. I need a way to protect the capacity of
a Lambda function from others running
in the same account.
Customer feedback
I want to temporarily
disable a function.
Can you create a “dev mode”
for functions?
Lambda can overwhelm
my legacy systems with
too many calls
29. I need a way to protect the capacity of
a Lambda function from others running
in the same account.
Customer Feedback
I want to temporarily
disable a function.
Can you create a “dev mode”
for functions?
Lambda can overwhelm
my legacy systems with
too many calls
Insight: Concurrency control is a key
element of managing functions in a
serverless app.
33. API Gateway connectivity solutions
To
From
Internet
Regional
AWS Service
Customer VPC
Internet
Regional
AWS Service
Existing Service
(Edge-optimized, public integrations)
Private VPC
Region-optimized Endpoints
Region Endpoints
+Private VPC
Recent
New