Best Practices for Serverless Developers Svs401

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.