Abstract
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 prototypes for few standard applications and platforms to run them seamlessly across multiple cloud
environments.
To that end, we propose the design of MultiPaas, a platform capable of running traditional web
applications across multiple cloud providers. We target the fundamental problem associated with running
a PaaS across multiple clouds and design this as an extension to an existing PaaS, Deis.
We built a platform, MultiStack, which enables Big Data frameworks to run across multiple public and
private cloud providers. It currently supports Hadoop, a popular Big Data solution, and can be easily
expanded to support others. It supports both EC2 API, allowing seamless adoption of AWS, Rackspace,
Openstack and Eucalyptus cloud solutions