Strategies for application migration to a multicloud environment

The word ‘Cloud’, in its traditional term, gives the illusion of immense and infinite capacity. This has been made very true by some of the leading public cloud providers. However, it is the subscription based, on-demand and flexible nature of the Cloud that attracts organizations. The sheer thought of running capacity comparable to a super-computer, spawning the entire infrastructure from scratch in minutes and paying at an hourly rate, is powerful. With virtual resources ready to start on the press of a button, cloud gave birth to programmable infrastructure. Gone are the days when only shell scripts were used to configure servers. Now an entire data center could be deployed using a few lines of code. This is so powerful and tempting that organizations are opting for a cloud-like model for handling their in-house resources, giving birth to the private cloud. Both public and private clouds offer great opportunities to start from scratch, but this is not an option for organizations which have been running their services on traditional infrastructure for years. Many organisations are already migrating their services and applications to cloud. This involves a lot of decision making and resources, both in terms of time and money. With plenty of public cloud providers available currently, choice isn’t straightforward. Apart from a few common features, each provider has offerings specific to their platform. With differences in APIs, features, cost etc. selecting a specific cloud becomes a long term commitment for the company. Due to inherent heterogeneity present in the cloud space, coming up with a unified solution which is compatible across all providers isn’t cheap and at times not even feasible. Our thesis focuses on designing and building solutions to facilitate migration of applications from a traditional setup to Cloud and enable a subset of applications and workload to use Multiple Clouds across public providers or hybrid environments. A lift and shift strategy for migration could result in disruption of services. An approach to migrate a group of processes from one host to the other without ever stopping them is called live migration. To minimize the disruption and performance of services, we propose two live migration strategies inter-hypervisor and inter-cloud. The former enables an organization to migrate their Virtual Machines to different physical machines allowing them to easily move to a Private Cloud. The latter allows live migration of containers across different nodes. Due to no dependence on hypervisors, the latter offers a solution to move to a public cloud. Live migration has a lot of inherent challenges and a majority of workloads don’t have such stringent downtime requirements which demand live migration. Not to mention that most production applications are clustered and have multiple replicas to be Highly Available. In such cases, it would be simpler and preferred to spawn a new process in the remote location and failover instead of live migration. Ideally, we should be using frameworks which support multiple clouds and migration of an application to a new cloud should simply be increasing its deployment scope. Our work has been focussed on building frameworks which leverage multiple cloud providers out of the box and reducing the heterogeneity between cloud providers. We’ve developed frameworks and