rights reserved. 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…”
rights reserved. 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
its Affiliates.All rights reserved. • 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
its Affiliates.All rights reserved. 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!
rights reserved. 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
rights reserved. 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 New AWS Cloud9
rights reserved. 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
rights reserved. 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?
rights reserved. 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
rights reserved. 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.”
rights reserved. 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
rights reserved. 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
rights reserved. 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.
rights reserved. 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
“priority": "1" }, { "id": “2", "name": “Go to gym", “priority": “5" },… type Query { getTodos: [Todo] } type Todo { id: ID! name: String description: String priority: Int duedate: String } query { getTodos { id name priority } } Model data with application schema Client requests what it needs Only that data is returned
rights reserved. Serverless for everything Lambda and API Gateway in every commercial AWS Region + AWS GovCloud Lambda@Edge new features: • Content-based Dynamic Origin Selection • Network Calls from Viewer Events • Advanced Response Generation