Portability on the Cloud: What it Really Means for AppsComments Off
The cloud market is moving fast, starting with huge buzz around a bunch of web apps moving to one or two clouds to where we are today, with companies looking at cloud computing as a means to implement efficient business processes and support a productive work environment. With this maturation in the market, businesses now realize that the early migration vendors and approaches of hardwiring applications to a single cloud did little more than trade the constraints of their physical datacenter to being constrained on one cloud.
Enter the era of cloud portability, which addresses this very real pain point businesses are facing. With seemingly a flip of a switch, incumbent “hard wire” script-based migration vendors, and a whole host of new cloud migration and management vendors, launched products and messaging promising cloud portability and multi-cloud solutions. But what does cloud portability really mean, and what are the differences in the various approaches?
Hub & Spoke
With unlimited time, resources, and money, anyone can make an application portable across multiple heterogeneous cloud infrastructures. This is the approach that incumbent migration solution vendors have taken. After all, if you write enough scripts, create cloud-specific VM images and make necessary code alterations/additions to the application, any app can run on any cloud. After the application is migrated to one cloud, moving it to another cloud involves understanding the next target cloud’s APIs representing its unique rules and behaviors around compute, network, storage and security. Regrettably, most of these primitives are significantly different between various clouds, allowing only the most basic web apps the ability to repurpose the migration activities involved in getting to the first cloud. Some vendors are trying to simplify this process by providing pre-packaged VM images with accompanying deployment scripts. This does arguably cut down the time to complete the migration as one does not have to start from scratch. However these images/scripts and customizations have to be separately maintained on every cloud and does not represent true cloud portability.
VM to VM
More recently to the scene are a bunch of newer VM migration vendors with cloud portability as a major positioning point and product focus. Many of these solutions provide enhanced portability, especially in contrast to the older migration solutions attempting to repackage their messaging. With the VM migration vendors, the general proposition is that an intact VM from an on-premises deployment including operating system, database and applications, can be forklifted to any cloud. While these solutions do enhance portability, their drawbacks assume an existing virtualized source infrastructure, have very large and unnecessary VM stacks to move to, and then between clouds, and in many cases, offer performance overhead involved with coordinating a VM on a VM and a loss of visibility into the application.
The lack of visibility into the application makes it impossible to efficiently monitor the app and its performance, making it difficult to auto scale, tune the application or performance-based bursting to other private or public cloud environments. Furthermore, because of the lack of application visibility, most VM migration solutions make comprehensive app and data security very difficult, and typically lack utilities that support active connectivity and coordination of cloud resources with those remaining in on-premises environments—an absolute requirement for hybrid clouds and enterprise-class cloud computing.
The good news is for these VM migrations solutions—many of the drawbacks outlined above can be addressed. Once on the cloud, scripting along with integration into one or more of many of the cloud-provider’s management tools can be accomplished. But, doing so effectively hardwires the app and VM to that cloud—eliminating portability.
Cloud to Cloud—It’s all About the App
Lift, shift and transform. Another approach to cloud portability is a migration and management approach that de-couples the application from requiring awareness of any underlying cloud infrastructure. With this approach the knowledge of the application and its rules and behaviors around primitives such as cluster, storage, network and security can be described in an interactive migration tool environment. Once described, an active meta-data workflow is produced and presented to the cloud. The supported clouds also host a multi-tenant orchestration virtual appliance that represents its behavior around these same primitives. The coordination of these two (application and cloud) orchestration layers creates, in essence, a software defined datacenter environment that allows the application to be deployed from any physical or virtual infrastructure, natively and optimally on any supported private, public, or hybrid cloud. Using this approach, applications remain visible and accessible, they can be tuned; auto-scaled based on user-defined schedule or application performance based policies and secured.
Another advantage of the application-based approach to cloud migration and management is that beyond a lift and shift application deployments can undergo an optional transformation, supporting the real world diversity within/between datacenter environments and disparate clouds. The application-centric approach allows many source components, such as operating systems and databases to be transformed “in-flight” to perform natively on different target cloud environments. A transformation example can be moving a Java-web application that uses a database such as MySQL on the source side, but can be ported to a cloud environment to use a different database such as SAP Hana or the cloud’s database service such s Amazon’s RDS.
This application centric approach to cloud migration and management allows any application that can be supported by some cloud infrastructure to be moved from any physical or virtualized environment to any private, public, or combined hybrid clouds. On-board once, run anywhere—cloud-to-cloud portability allows applications to fluidly and transparently move to, and across, any federation of clouds optimally while requiring no additional migration.
CliQr provides this cloud to cloud migration.