Understand the SaaS Practice

SaaS is improving business and software delivery models as efficiency , security , analytics and flexibility.

The SaaS maturity model

When we designing a SaaS application, we have to be carefully choose the model which is best fit of our application, business goals, and customers requirements. There are totally four maturity levels / models in SaaS application / produce,each level providing greater access to the full benefits of SaaS.

For example: If you are looking to migrate a legacy application to SaaS, hybrid model leveraging virtualization, microservices and cloud services may provide you best results. and it reduce the complexity and time required to begin taking advantage from the SaaS.

Four maturity levels/models :
  1. Hybrid model ( combined on-premises / cloud model for legacy apps )
  2. Single - tenancy ( Dedicated instances for each customer )
  3. Minimal multi tenancy ( Multi-tenant with limited scalability and configurability )
  4. Matured multi tenancy ( Unlimited scalability at all layers )

01) Hybrid Model.

During a phase transition, hybrid model will maintain the both traditional and SaaS application. According to the research, the most common approach to SaaS is evolving an existing on premises or hosting application, so this will a common starting point for many software vendors.

Length of transition phase : It's based on product challenges or end customer cloud readiness (size and rate of decline of their legacy business). And some cases may last years or until product retired.

Advantage :     Improving capabilities through the integration of new cloud services.
Disadvantage: It won't provide a reduction in complexity or lower TCO(Total Cost of Ownership)
                         It won't simplify DevOps activities.

02) Single - tenancy

It allows all aspects of our application to run in the cloud. To maintain the tenant (customer) isolation, the application is installed repeatedly,once for each customer. Application instance are standalone instance. So those instances never interact with another standalone instances. Each instance of the application has only one tenant, and tenant has it own database. Each time a new tenant(customer) is added a new (logical) hardware is provisioned and new instance of the product is setup in the allocated environmental.
This is provide the greatest tenant and database isolation. But, isolation requires that sufficient resources. Virtualization help to simplify deployment and environment standardization. 

Advantages : Reduced complexity and lower TCO, since application completely be in cloud.
                       Doesn't require any SaaS architecture/Engineering expertise.
                       Product doesn't require going through any changes to support SaaS model.
                     
Disadvantages : Maintenance efforts are going to be huge because we have to maintain multiple code base/environments.
                            Operational costs are going to be very high.

03) Minimal multi tenancy

Multi tenancy is an architecture in which a single instance of a software application services multiple customers or tenants.It uses a database per tenant model. Tenant can customize the application through a self service tool. Scalability is determined based on workload and is independent of the number or scale of the individual databases.
It economical because software development and maintenance cost are shared and it provide a cost effective way to sharing resources across many databases.

Elastic pools

When databases are deployed in the same resource group, they can be grouped into elastic pools. The pools provide a cost-effective way of sharing resources across many databases. This pool option is cheaper than requiring each database to be large enough to accommodate the usage peaks that it experiences. Even though pooled databases share access to resources,  but still it has limited database isolation

Advantages : Facilitates a cost effective way of delivering SaaS solution.
                       Huge savings in operational cost.
                       It will allow the ISV to offer an attractive pricing to their customers.
                       Enables to achieve higher levels of customer satisfaction.
                       Easier to adopt/implement best practices in the product features as you will be concentrating on only one version of the product.
                       The design principles of a multi tenant system is high level of maintainability. That means , if customer request for few additional fields in one of the pages, we can easily add them through custom field's module.
   
Disadvantages : Initial investment is high.
                           Requires SaaS architecture expertise.

04) Mature multi tenancy

From this model we can fully realize the promises of SaaS. This pattern also allows a hybrid model in which you can optimize for cost with multiple tenant in a database. It scarifies tenant isolation. The data of multiple tenants is stored together in one database. A multi tenant database shares compute and storage resources across all its tenants. So that, database carries an increased risk of encountering noisy neighbors.

Advantages : It is sharing all resources across tenants, so that we can get lower cost per tenant.
                       It reduce the application deployment complexity.
                       Easily collect aggregated data across customers.

If we plan to move the application into multi tenant SaaS architecture, we have to re-architect or rewrite our application.It will consume significant amount of time. It's depending upon the end application design and business model complexities.


Comments

Popular posts from this blog

Easy understanding of MVC design architecture

A / B Testing

Firewall