Moving a product to SaaS can be as simple as a click of a button but at times can also go to the extent of re-architecting your product. There are several factors that could influence the SaaS migration strategy. Let us take a look at the various aspects an ISV should consider while migrating their product to SaaS.
Multi-Tenancy is an architectural capability that can enable an application to respond differently to different logical groups. This is typically done through the configuration settings, which is governed by a multi-tenant framework.
In a single tenant model, a new instance of the product is created for each customer (tenant). Therefore, the hardware and infrastructure components are dedicated only to that particular customer. While this model allows you to quickly switch over to a SaaS model, it incurs huge operational cost as both software and hardware maintenance has to be repeated numerous times.
In case of a SaaS product, Multi-Tenant architecture allows to leverage the same hardware and other infrastructure resources to be commonly shared across all customers (tenants). This results in optimized usage of resources, thereby decreasing the operational cost.
In a SaaS model, products are delivered over internet. Hence, it’s advisable to have the product as web-native so that migrating/operating them from cloud becomes much easier. In case on non-web native applications there are mechanisms through which they can be still be delivered from cloud. Citrix XenApp is an example of a technology that leverages virtualization to deliver non-web native applications. However, this approach has a lot of operational overhead and in some cases may not be feasible due to technical/security limitations. On the other hand re-engineering to web-native requires effort and cost. Therefore, it’s an important and critical decision to migrate the product to web-native.
Integration challenges are very common while migrating to SaaS/Cloud. Many a times the (cloud) candidate product might be integrated with other in-house LOB applications as well as external applications. In on-premise scenario, the product is collocated with other internal applications sharing the same LAN and other resources. Whereas when the product has to function from cloud there are quite a few restrictions imposed by the security and policy settings of the organization that prevents access to internal resources. Therefore, it’s important to have appropriate technical solution that provides seamless integration.
In On-premise scenario, product functions within the firewall and hence has seamless access to other systems within in the firewall. This also results in minimal threats from external sources. Cloud based SaaS solutions should implement appropriate security measures to take care of the above. This also applies to critical data that may be stored in the cloud. In such cases it’s recommended to encrypt those data so that it’s not visible as plain text. However, one should consider this only for a limited set of data else it could lead to performance issues (as encryption and decryption takes time).
In on-premise, products typically run in LAN mode, in which case there is a huge bandwidth (in/out) available. A SaaS product operating from cloud has restrictions on the bandwidth (compared to a LAN), which may in turn affect the product performance. One should analyze the amount of data that is transferred between the systems and the frequency in which it happens. Hence, the software and cloud deployment architecture should take care of the same.
Availability of the product is one of the critical factors when it comes to SaaS model. Unfortunately, there is a heavy dependency (in terms of hardware availability) on the cloud provider on this parameter. Infact, this is the most important parameter for selecting the cloud provider. In order to address this risk, Architects always recommend a load balanced deployment environment for cloud based solutions in order to mitigate the risks of hardware failures.
In case of any queries please feel free to drop me an email at email@example.com