Large applications that are widely accessed, especially by people scattered at different locations, to perform daily operations are mostly hosted on cloud nowadays. The reason being easy availability and high security at low maintenance costs.
Different types of cloud computing models:
- Infrastructure-as-a-service (IaaS): A virtualized environment where computing resources like hardware, software, server and other components are owned by the service provider. These resources are scalable in nature and can be managed based on demand. Amazon Web Services (AWS), Google Compute Engine, Windows Azure, Rackspace Open Cloud and IBM SmartCloud Enterprise are some providers of this service.
- Platform-as-a-service (PaaS): Middleware services like database management systems, business intelligence (BI) service, application platform and integration comprise this service model. The main advantage of using this model is the user does not have to manage licenses and costs. Building an application on PaaS model enables developers to simply manage the applications they develop.
- Software-as-a-service (SaaS): Accessing a complete application from cloud, with no hassles of developing or hosting it is the base of this service model. The access to the service and accessible components depend on user’s service level agreement (SLA) or subscription. Organizations specifically use this service model for managing their mailing and other collaborating system, lead management, sales management, CRM, ERP and other enterprise level applications.
There are two main considerations of cloud computing applications:
How can cloud migration help you?
- If your website or web application experiences high amount of traffic from different distributed locations.
- Quick provisioning of data when required.
- You don’t want a separate team for maintaining and monitoring performance of an application.
- You want to control infrastructure costs while effectively executing your operations.
- A growing database has requires substantial storage capacity.
- Security is important for applications storing critical information. This also requires a disaster recovery plan in place to prevent any data loss in times of crisis.
Every application involves software upgrades and maintenance activities, a simple desktop application being accessed by different offices within an organization will require a dedicated team at each end. Hosting the application on cloud will restrict the team size responsible for the application.
How to migrate your existing application to cloud?
Strategizing the migration process is crucial as any failure can lead to rather increased expenditure than controlling costs.
Analyze existing application
When an existing web or desktop application has to be migrated to cloud, detailed analysis of all application components and related data foretells the components that can be migrated and those which cannot. Following questions might help assess the migration aspects of your application: Does the application simply need a platform change or the existing technology too requires an update? What is the application’s architecture? Will the architecture support migration? Will migrating the application be beneficial? What kind of integrations will be needed for migration.
- Assess post-migration benefits
When multiple user access the application from different locations, performance is extremely critical. Seamless access and availability is the backbone of cloud migration apart from cost control. A large database raises storage concerns for organizations and hence the expense of maintaining servers comes as an additional expense. Migrating your application must save your infrastructure cost for managing data.
Simultaneously, distributed information across servers also includes security overhead which in cloud computing will remain the liability of cloud service provider. But all of this needs to be compared with the cloud service subscription costs. And most importantly the migration must help increase the revenue directly or indirectly.
- Technical feasibility
The existing system architecture needs to support multi-tenancy to integrate information from different departments for seamless data movement across different modules. Security controls need to be altered with regards to cloud without causing any disruption to existing processes.
- Workout a migration model/architecture
Existing applications will be either migrated to a PaaS model or an IaaS model. Identify the touch points of change like the nature of service workflows, whether a particular service is one-to-many or many-to-many; how is the flow of data, is it in single direction or is bidirectional; and many more integrations amongst components needs to be addressed theoretically before deployment.
- Define the Approach to Migration
Follow the below steps to setup the cloud infrastructure and migrate application:
- Virtual Private Network(VPN) structure (with firewall) needs to be designed based on the routers, protocols and other networking aspects.
- After configuring virtual machines in the network, their addresses need to be updated in network gateways.
- Once virtual machines are ready, implement database on virtual machines.
- After complete deployment of the cloud environment install the necessary middleware for applications.
- Install the application and manage its settings.
- Backup existing application data at other server locations to prevent any data loss during migration.
- Communicate application downtime to the users.
- Validate application settings and end to end server connectivity.
- Install security certificates for implementing access control.
- Create and share user roles.
The approach for migration determines the health and usability of cloud application. Since the major advantage of cloud computing is easy accessibility and cost control, compromising on any migration aspect can hurt both these concerns.
While cloud migration has notable benefits, the application and its usage are the decisive factors. If the application deals with highly sensitive data or caters to a few higher management personnel it is best hosted separately rather than cloud. It is extremely important to evaluate all these aspects prior to any migration planning.