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.