
AWS Lambda is a flexible service designed for a wide variety of use-cases. Across the millions of AWS customers using Lambda every month, serverless applications generally fall into several common categories:
Additionally, many workloads are hybrid serverless applications, especially where legacy systems are being migrated from either on-premises or instance-based environments. In this case, developers can gradually migrate functionality from a legacy system to a Lambda-based application.
This guide is built for developers and operators of Lambda-based applications. It is aimed at operators of typical production serverless applications, looking to understand more clearly how to build, measure, troubleshoot, and optimize their compute processes. This guide covers concepts and best practices for designing Lambda-based applications, together with an approach for ongoing monitoring and troubleshooting.
Serverless applications can include a wide variety of different AWS services to manage APIs, messaging, storage, and content distribution. Most of these applications rely upon Lambda for connecting these services and transforming the data throughout an application. This guide focuses on the role of Lambda in these architectures, and how you can fine-tune your functions and their configurations to maximize reliability and maintainability, and reduce cost.
Lambda-based applications are event-driven architectures with many of the characteristics of distributed systems. While Lambda handles many of the complex tasks like scaling and infrastructure management, it’s important for operators to understand the scope of knowledge that they need to manage serverless applications successfully.
As AWS customers adopt Lambda to solve many of their most challenging workloads, understanding the troubleshooting and monitoring tasks involved is the key to becoming a proficient operator. Both start-ups and enterprises develop Lambda-based applications for green field applications and legacy applications. As these applications develop features and build traffic, many of the same best practices for operations apply.
This guide covers many of the most important operational best practices and advice while explaining core topics underpinning how Lambda-based applications work. The first half of this guide provides a deep dive into foundational topics around event-driven architectures, application design, and security. The latter half covers guidance for operators around debugging, monitoring and observability, and performance optimization. The goal is to provide a concrete, actionable approach to operating and troubleshooting Lambda-based applications.
These are the topics covered in detail:
This guide will be revised regularly to incorporate new Lambda features and AWS services as they are released. If you have any questions or comments about any of the content in this guide, raise an issue in the GitHub repository or contact the author.
James Beswick
AWS Serverless Developer Advocate