The SaaS model — the transformation of software into software as a service — increasingly appeals to a wide range of companies. The model offers major benefits for providers, customers and users alike.
But if you’re a business keen on SaaSification, you’ll know benefits are countered by challenges. A host of considerations can bring hesitancy to organizations otherwise eager to embrace SaaS; for others, vital factors might be overlooked.
SaaSification challenges you need to overcome
Pressures for SaaSification come from external and internal factors — costs; user expectations; developer needs; and demands for agility, rapid iteration and smooth revenue streams. But while the value of SaaS is understood, the journey to that model can have a large impact on any business and represent a significant transformational event.
Scale and availability are obviously key concerns. Always-available applications come with an expectation of immediacy and access. You’ll need automation and resilience built into your environment because no one appreciates downtime. Yet things will go wrong. Activities must therefore be constantly managed and monitored. You need strong DevOps principles, with self-healing environments and an awareness of issues so you know about them before your customer does.
Onboarding must be frictionless — it’s your front door and the first experience users will have when interacting with your SaaS application. With this comes requirements relating to identity management and tenant isolation. Your identity solution must have the ability to identify users by tenant, and services must be tenant aware. You must ensure one user cannot hog resources, nor get at another’s data.
Beyond safeguarding and securing data, you might find challenges in migrating it from an old environment to the new one. Also be mindful of customer hesitancy if a SaaS solution lacks transparency regarding data export options. People prize the flexibility to move their data, so if you cannot offer this then they may find a competitor that does.
There’s a challenge in terms of mindset as well, which needs to meet user expectation demands. SaaS solutions must provide ongoing value. A subscription licensing model brings with it responsibilities in making good on regularly improving a product. This means using freed-up resources to iterate and experiment, not as a cost-cutting measure. Ensure your organization’s culture is one that results in users feeling like the application they use is constantly getting better, given the recurring charges they are paying.
Six steps to SaaSification success
1. Decide on a tenancy model
You’ll hear about partitioning and isolation of infrastructure — terms sometimes used interchangeably. The former refers to physical or logical separation of one tenant’s data from another. Isolation refers to security constructs used to prevent one tenant from accessing data in another tenant’s partitioned space. Do also consider motivations beyond compliance for isolation. These include tiering strategies, noisy neighbors and even opportunity — when a tenant might not buy a solution without assurance there are tenant isolation constructs within.
2. Consider resource types
Infrastructure can be siloed, or you can have tenants share resources and gain isolation through runtime policies that prevent cross-tenant access. The former tends to be more common for large businesses where a tenant wants their own infrastructure and to not share resources — but might also be driven by compliance issues that prohibit shared resources.
A third option is hybrid, a mix of the two, where some tenants have separate infrastructure and some share it in a pool model. Regardless of model, the management aspect of a SaaS application remains central and you still need a central onboarding experience and place for managing/monitoring, metrics collection, metering and billing.
3. Refine your billing model
Build your SaaS application in a way that you can have different billing models and think ‘configuration’ rather than ‘customization.’ Utilize a single pipeline and rather than customizing per tenant, use feature flags or tiers to adjust feature set access as necessary. Implement discounts for longer sign-up periods.
Use metering to track tenant activity and bill them for usage. Metrics can help you understand what your tenants are doing across your application and become input into a metering system in a pay-as-you-go model. Be mindful there will always be shared services, and so consolidate information into a central account you can use to build out microservices around billing and tenant analytics.
4. Focus on user experience
Ensure onboarding is simple, including getting data in. Customers need to be able to use a product with no hand-holding. The more frictionless onboarding is, the more customers will reduce time to value and increase productivity. And be aware customers are completely in control of when and what they buy and that the cost of switching is lower in a SaaS model.
Note that the last of those points can be beneficial — people are more willing to experiment and you can tempt them to your solution with high-quality, differentiating features. But this means providers must keep improving the customer experience and deliver value through the entire customer lifetime. It’s important to not just focus on the acquisition of new customers like you might have under traditional models. Focus on customer retention and renewal and use instrumentation to observe and learn how customers are behaving.
5. Ensure QoS is first-rate
Pooling services that everyone consumes is beneficial from a cost perspective. But you must account for and deal with ‘noisy neighbor’ problems, where one tenant is trying to access the system in a way that saturates your compute resources, meaning others cannot use them. Define limits and scaling policies so one tenant cannot consume the whole architecture. Use tiered throttling, quota limits and metering. Over time, adjust these limitations accordingly.
6. Utilize modern application development methodologies
SaaS is suited to modern application architecture and development, which brings with it a range of advantages that can help you succeed. Serverless offloads responsibility for a range of considerations — provision and utilization; availability and fault tolerance; operations and management — to the cloud provider. Microservices are key to building scalable and fault-tolerant SaaS applications and enable portions of a solution to be updated rather than everything at once. And cloud-native brings affordability and speed, while helping you deal with spiky workloads and ensure ebbs and flows don’t leave users with a degraded experience when they need your product most.
Preparing for SaaSification
The SaaS model offers attractive benefits for providers, customers and users alike, but there are various SaaSification challenges you need to be aware of when shifting to a SaaS model. The journey to that model can have a large impact on your business and represent a significant transformational event. By following the six steps above, you can ensure your SaaSification is a success.
Global Report: Customer Experience and Technology
About the Authors
Senior Manager, Cloud Native Development Practice
Chris O’Malley is a Senior Manager in the Cloud Native Development (CND) Practice at Onica, a Rackspace company. As a past member of multiple startups, Chris has worn many hats including PCB/hardware designer and embedded developer to full stack and mobile developer to cloud native architect, team lead, and mentor. With Onica / Rackspace, he is focussed on scaling the CND team and helping customers build great software more efficiently on AWS. He lives with his family in Los Angeles, CA.Read more about Chris O’Malley