Amazon this week announced the public availability on GitHub of AWS SaaS Boost. The open source tool (released under the Apache 2.0 licence) is designed to help software vendors transition their applications to a SaaS model. It comes with connectors to other open source technologies, such as OAuth for authorisation, Open Policy Agent for control, and OpenTelemetry for observability.
AWS SaaS Boost was first previewed at the annual Re:Invent conference in 2020.
It is designed to guide software builders through the migration and operational processes of turning software running in a monolithic setup into a fully managed, multi-tenant, pre-built SaaS setup, with a unified tenant experience. Tenant management, tenant deployment, tenant aware analytics, billing, and metering are all "wired up and ready-to-use" for applications being dropped into SaaS Boost.
See also: Cloud-native should be a tradeoff-free zone...
AWS SaaS boost is underpinned by a serverless application model using AWS Lambda, with a React-built admin application, hosting defaulting to S3 and Amazon CloudFront. Needless to say, that all makes it easier to bring software deeper into the AWS ecosystem, but for those considering taking applications cloud-native, it certainly reduces the heavy lifting and comes with some nice, clear guidance.
As AWS's Adrian De Luca notes: "Through hundreds of engagements with SaaS builders, we have learned that capabilities such tenant isolation, data partitioning, monitoring, metering, and billing, are foundational, and we have developed useful architectural patterns.
"Although the need for these elements is universal, the implementation is not. For example, technology dependencies such as databases and file systems are different for each application, metering units change depending on customers, and billing systems differ by geography. Because AWS SaaS Boost was released under the Apache-2.0 license, the code can be customized to meet your businesses requirements and redistributed as needed."
AWS SaaS Boost: what it lets you do...
As Tod Golding, Principal Partner Solutions Architect, AWS SaaS Factory, puts it: "A classic software deployment model... [sees] each customer operates in a standalone environment. They may be deployed in the cloud, or they may be on-premises. The key observation is that each tenant is managed and operated separately. Typically, customers in these environments will be running a range of product versions as well.
"While this approach may simplify early adoption, it begins to create real problems as a business grows. As more and more customers are onboarded in this model, companies begin to face challenges with operational efficiency, cost, and agility. Ultimately, this ends up impacting an organization’s ability to scale and innovate."
- Step one is to download the SaaS Boost code from its repository. As Golding notes: "Developers may want to modify or augment the experience based on their needs. In fact, the evolution of SaaS Boost will very much be driven by a mix of AWS insights and community contributions" the company notes.
- You can then run and set this up in your AWS account, configure the settings for your environment (ports, domain, database settings, billing and metering configuration, etc.)
- Next, you need to containerise your existing application and upload that container image to AWS. With the app uploaded and environment configured, you can start to use the automated tenant onboarding features in AWS SaaS Boost, which lets you configure all the moving parts of each tenant environment.
- After that, it's just a case of using the management and analytics tools that come pre-packaged.
For those already considering this kind of step, it's likely to simplify your build process and ops, reduce dev and experimentation time, and allow extensibility, easier product integrations, and less lock-in. Read more about AWS SaaS Boost here.