Enhancing Local Serverless Development using AWS SAM and Docker

Serverless has enabled developers to iterate quickly by moving the concern of infrastructure management to AWS. However, with this move, going serverless has increased the difficulty of local testing by raising the number of integration points in a simple service. To combat this challenge, local development should be utilized as it allows developers to iterate faster across these integration points, ensure that changes are not backwards incompatible before creating a pull request, and deploy the entire stack to AWS to perform end-to-end testing. Using AWS SAM and Docker, developers can increase development speed by removing the need to build and deploy an entire stack for each change that is made and therefore reduce costs. With this method, developers will be more confident with their code and its integration before releasing to a development environment, reducing the errors and invocations of real services with cost per invocation. This talk will demonstrate the steps to take a modern AWS serverless architecture (e.g., S3, Lambda, Step Functions, DynamoDB) and stand it up locally for testing and debugging. Finally, this demonstration will include how this can be automated and integrated into a build pipeline to increase confidence in releases.