Title
AWS re:Invent 2023 - Best practices for serverless developers (SVS401)
Summary
- Julian Wood and Chris Munns, AWS advocates, discuss serverless best practices.
- Serverless is not a fad but a strategic approach to building applications, focusing on delivering customer value without complex infrastructure management.
- AWS offers a broad selection of serverless services, including Lambda, DynamoDB, EventBridge, and Step Functions.
- The talk emphasizes using managed services and configurations over custom code (serviceful serverless) to reduce complexity and cost.
- Lambda functions should be modular, single-purpose, and use direct service integrations where possible.
- The speakers highlight the importance of orchestration and choreography in serverless workflows.
- Serverless Video, a live video streaming application, is used as a case study to demonstrate serverless best practices.
- AWS Lambda's performance can be tuned by adjusting memory and CPU settings, and using tools like Lambda Power Tuning and AWS Compute Optimizer.
- The lifecycle of a Lambda function, including cold starts, is explained, and strategies to mitigate cold starts, such as Provisioned Concurrency and SnapStart for Java, are discussed.
- The importance of automated testing, observability, and operational best practices in a serverless environment is stressed.
- The role of platform engineering teams in providing governance and enabling developers is highlighted.
- Resources for further learning and best practices are provided.
Insights
- Serverless architecture is increasingly becoming the norm, with AWS leading the charge in providing a wide array of serverless services that encapsulate well-architected outcomes like security, scalability, and performance.
- The concept of "serviceful serverless" encourages developers to use AWS's direct service integrations to minimize the amount of custom code they need to write and maintain.
- AWS Lambda's performance tuning is critical for cost optimization and application responsiveness. The introduction of Lambda function URLs simplifies invoking Lambda functions directly via HTTP requests.
- Cold starts in Lambda functions are a common concern, but AWS has been working on reducing their impact, and they affect less than 1% of all production function invocations.
- Provisioned Concurrency and SnapStart for Java are advanced features that help reduce cold start times and improve the performance of Lambda functions.
- The shift-left approach in testing and the use of automated testing tools are essential for maintaining speed and quality in serverless application development.
- The role of operations in a serverless world shifts from manual tasks to strategic enablement, with a focus on setting up guardrails and best practices to ensure safe and speedy application delivery.
- Platform engineering teams play a crucial role in enabling developers by integrating and managing various platforms and tools, thus preventing the creation of isolated and expensive silos.
- AWS provides numerous resources, tools, and learning guides to help developers adopt serverless best practices and continue their AWS learning journey.