Getting Started Building Serverless Event Driven Applications Svs205

Title

AWS re:Invent 2023 - Getting started building serverless event-driven applications (SVS205)

Summary

  • Speaker: Emily Shay, leader of the application integration go-to-market team at AWS.
  • Co-presenter: Naren Gaca, who demonstrated Application Composer.
  • Topic: Building serverless and event-driven applications on AWS.
  • Audience: Beginners in application development, developers transitioning from servers/containers to serverless, and anyone interested in AWS native application building.
  • Personal Journey: Emily shared her personal journey from a non-tech background to leading a team at AWS, emphasizing learning by building useful applications.
  • Serverless Benefits: No server management, automatic scaling, pay-for-use billing, and built-in functionalities.
  • Core AWS Services:
    • Data Layer: Amazon S3, Amazon DynamoDB.
    • Application Logic Layer: AWS Lambda, AWS Step Functions, SQS, EventBridge, SNS.
    • Presentation Layer: API Gateway, Amazon Cognito, AWS Amplify.
  • Application Example: Emily built an application to receive daily Chinese vocabulary reminders via text message, which evolved to include user subscriptions, email notifications, and a user interface.
  • Developer Tooling:
    • AWS Console for initial exploration.
    • Infrastructure as Code (IaC) using AWS SAM or CDK.
    • CI/CD pipelines for automated deployment.
    • Testing in the cloud for service integrations.
    • SAM Accelerate for quick syncing of function code.
  • Application Evolution: Emily expanded her application to include a database (DynamoDB), user authentication (Cognito), and a front-end UI (Amplify).
  • Cost: The application costs less than a dollar per month due to low traffic and efficient serverless architecture.
  • Best Practices:
    • Start with a simple MVP and evolve complexity over time.
    • Plan DynamoDB access patterns carefully.
    • Use visual designers like Application Composer and Workflow Studio.
    • Establish an automated deployment pipeline early.
    • Test complex function code but test service integrations in the cloud.

Insights

  • Serverless Adoption: The transition to serverless is beneficial for developers who want to focus on unique application logic rather than infrastructure management.
  • Learning by Doing: Emily's approach to learning serverless by building a personally useful application is an effective way to retain knowledge and demonstrates the practicality of AWS services for individual projects.
  • Infrastructure as Code: The emphasis on IaC using AWS SAM or CDK highlights the importance of reproducibility and version control in cloud application development.
  • Testing Strategy: The recommendation to test service integrations directly in the cloud rather than locally can lead to more accurate and efficient testing cycles.
  • Application Composer: The introduction of Application Composer as a visual tool for building serverless applications can lower the barrier to entry for new developers and speed up the development process.
  • Cost-Effectiveness: Emily's application cost example illustrates the cost-effectiveness of serverless architecture, especially for applications with variable traffic patterns.
  • Continuous Learning: The application's evolution showcases the continuous learning aspect of working with AWS, as new services and features can be integrated over time to enhance functionality.
  • Community Resources: The mention of resources like The DynamoDB Book and AWS Skill Builder indicates a supportive community and ecosystem around AWS services, providing additional learning opportunities for developers.