Are you looking to move your on-premises software to an on-demand paradigm?
We are referring to the SaaS model, delivering software via the Internet, renting access to the application. Questions that will come up include choice of approach and architecture, and whether to get to the cloud in a gradual or as a big bang implementation.
There are several phases along the SaaS roadmap and we can help on each one of them.
- Business planning
- Architecture design
- Development and infrastructure migration
A primary decision at this phase is whether to simply adapt the current on-premises version for the cloud or to build a completely new version of the software. This largely depends on customers and markets being targeted and the features they are seeking, if they can be met from the current version of the software or if a new solution would be called for. Whether it should be a single version of the solution for all market segments or if separate solution versions should be built for different segments is an additional question to be answered.
Multi-tenancy and scalability are key variables to be determined at this stage. There are several possibilities here:
- Separate application and database for each tenant.
- Shared application with unique database for each tenant.
- Shared application and database for each tenant with data logically separated.
One could opt to gradually move from one level to the next, along the maturity curve. Or it could be a one-shot move to the “shared everything” model.
SaaS software employs a multi-tiered structure:
- User interface layer that could be a web browser or a thin client, with the ability to add customer specific branding.
- Business logic layer where customized workflows, security, and business services like licensing, reporting, and billing come in.
- Data layer where custom data models and fields as well as proper isolation are implemented.
Enabling tenants to configure each layer is where SaaS brings in tremendous flexibility advantages. Layers will be shared across tenants while maintaining isolation between them. Ensuring application scalability is another key consideration. Additional services are required for Operational Support Systems (OSS) to enable licensing, provisioning, and monitoring and Billing Systems Support (BSS) to enable billing and customer care. APIs make it possible for customers to integrate with the SaaS solution. Security is obviously critical: user authentication and authorization, encrypting/securing data, providing audit trails.
Development and infrastructure migration
The technology platform is a major decision point. Moving to SaaS may be the opportunity to upgrade the technology stack.
Flexible, agile infrastructure is what is required for SaaS offerings. Running in the cloud. Also from per user, per month to more sophisticated usage based or feature based metrics, licensing could run the gamut.
While building the SaaS solution, it may be necessary to continue to offer the current on-premises software. In which case the different development lifecycles will need to run in tandem: evolving the existing SaaS product while creating the new SaaS offering.