Serverless SaaS: Transforming Enterprise Applications
Introduction
- The speaker, Thomas Moore, is a senior solution architect from the UK who works with software vendors and is a serverless specialist.
- Customers are looking for three things: modernization, cost optimization, and more time to focus on what matters.
- This talk will focus on the technical aspects of serverless SaaS, including understanding the drivers for serverless and SaaS, implementing multi-tenancy with serverless, and solving architecture challenges using serverless patterns.
The Transition to Serverless SaaS
- The speaker introduces a real-world example of a mechanic management software that has evolved from a downloaded application to a managed service and now aims to launch a serverless SaaS product.
- The challenges faced in the current architecture include version misalignment, performance and cost concerns, and data silos.
- The vision for the future includes faster time to market, reduced costs, and increased innovation through moving to a serverless SaaS model.
Serverless and SaaS Concepts
- Serverless removes the need to manage servers, automatically scales, and is highly available.
- SaaS is about building a service, focusing on customer onboarding, value delivery, and feature updates.
- The importance of a control plane (services that manage metrics, onboarding, administration, and billing) is highlighted.
Serverless Application Architecture
- The serverless web application architecture is introduced, including CloudFront, API Gateway, Lambda, DynamoDB, and S3.
- The challenges of the siloed model (where each tenant has a copy of the resources) are discussed, leading to the need for a shared, multi-tenant architecture.
Implementing Multi-Tenancy with Serverless
-
Entry Point and Authentication:
- Options for domain names and tenant context in the URL are discussed.
- The use of a Lambda authorizer to verify JWT tokens and retrieve the tenant context is explained.
-
Data Storage and Access:
- Storing data in DynamoDB and S3 using the tenant ID as part of the key/prefix.
- Dynamically assuming roles at runtime to ensure secure data access.
-
Analytics:
- Addressing the data silo problem by streaming data from DynamoDB to a data lake in S3 using Kinesis Data Streams and Kinesis Data Firehose.
-
Integration Patterns:
- Synchronous and asynchronous communication patterns using API Gateway, SQS, SNS, and EventBridge.
- Using Step Functions for orchestration and complex workflows.
-
Updates and Migration:
- Strategies for rolling out updates, including region-by-region deployment and cellular architecture.
- Approaches for migrating customers from the legacy hosting model to the new serverless SaaS platform.
Key Takeaways
- Serverless is a good fit for SaaS because it scales automatically with tenant usage.
- Maintaining tenant context is fundamental to multi-tenancy.
- Serverless integration patterns can help create scalable and extensible solutions.
The presentation provides a comprehensive overview of the technical considerations and best practices for transitioning to a serverless SaaS architecture, using a real-world example to illustrate the key concepts and challenges.