Moving an application to cloud can be as simple as a click of a button but at times can also go to the extent of re-developing your application. There are several factors that could influence the cloud migration strategy. Let us take a look at the various aspects one should consider while migrating their application to cloud.

 

Multi-Tenancy Decision:

Some of the applications may have the need to recognize/function different logical groups of users. Few examples are,

–       Different geography of the same company can be treated as sub-organizations and hence their setting and functionality can differ.

–       Functionality can (slightly) vary from department to department within the same organization

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.

Note: Please note that multi-tenancy is a general architecture capability and is not always restricted only with cloud.

 

Web-Native:

In a cloud scenario, applications are delivered over internet. Hence, it’s advisable to have the applications 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 application to web-native.

 

Integration:

Integration challenges are very common while migrating to cloud. Many a times the (cloud) candidate application might be integrated with other in-house LOB applications as well as external applications. In on-premise scenario, the candidate application is collocated with other internal applications sharing the same LAN and other resources. Whereas when the application is moved to 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.

 

Security:

In On-premise scenario, application 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 solution 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).

 

Internet Bandwidth:

In on-premise, applications typically run in LAN mode, in which case there is a huge bandwidth (in/out) available. An application operating from cloud has restrictions on the bandwidth (compared to a LAN), which may in turn affect the application 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:

Availability of applications is one of the critical factors when it comes to Cloud. 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.