Why is application portability a concern today?
There are at least two reasons:
- Many IT organizations that have built private clouds, or are contemplating building private clouds, view hybrid as their destination. This implies that IT organizations want to move apps/data back and forth between their private cloud and one or more public clouds (or between two or more public clouds). Moving apps between clouds is not easy given that we want them to provide the same performance levels and run the same overall. Providing application portability is more than just making the app itself portable. The source cloud and the target cloud are very likely to be much different in a number of ways: different hypervisors; different operating system support; different security, storage and network models; different database system support; and different management tools that work in the source cloud may be unavailable in the target cloud, etc.
- IT organizations do not want to be locked in to a single cloud or cloud vendor. If IT does not like the service provided via its SLAs with a cloud provider, it will want to move to another cloud provider without going through the agony of moving its apps that it likely did the previous time. For example, moving apps/data from Amazon EC2 to Terremark or Rackspace is not easy.
Lack of Cloud standards is a concern today because it could alleviate some but not necessarily all, of the app portability problems for IT.
What is the top barrier to application portability in these areas?
More resources on application portability
DMTF pursues standard for interoperable cloud computing
Cloud portability primer
How Oracle Apps resolves portability problems
- Legal --- Intellectual property issues regarding ownership of information placed in the cloud (can third parties be allowed access to your data or can cloud providers be forced to provide access to your data to third parties such as police), control over physical location of data, and regulatory compliances are some of the more important legal barriers.
- Technology --- The top barrier to portability from a technology point of view is lack of standardized cloud APIs that can be used by vendors/cloud providers in developing their technology-based products.
- Competitive stances by proprietary vendors --- Most vendors/cloud providers will support the creation of cloud standards. But they, especially the proprietary ones, will not strictly adhere to the standards because they want to differentiate their products from competitors. All of the vendors want to lock-in customers to their offerings. They only pay lip service to standards (unless the demand for the standards is overwhelming such as TCP/IP) and don’t always develop to the standards.
How far along are application portability initiatives by OASIS, The Open Group and others?
- OASIS --- OASIS has basically just started. If you look at the list of sponsors as of January 2012, none of the public cloud providers such as Amazon, Terremark, Rackspace or Savvis are sponsors. IBM is the only public cloud provider (IBM is also a private cloud vendor) that is a sponsor. Hell will freeze over before anything comes out of this effort with respect to application portability in clouds. They are just working on a specification.
- The Open Group --- They just presented a specification in early 2012. I have the same basic comments for them as for OASIS, except I don’t know which vendors are working on the specification.
- OpenStack project --- Of the groups working on cloud interoperability (basically the same thing as app portability), the OpenStack project is probably the most focused and most likely to accomplish something useful. Their goal is to get private cloud vendors and public cloud providers to adopt OpenStack cloud technology. This will make movement of apps/data among clouds easier.
What are some of the simple measures that enterprises could take to enhance portability of their apps to public clouds?
- Make sure that the app and its supporting components, such as databases and tools, do not rely on an operating system and an underlying cloud infrastructure.
- Find a management platform for your apps that can likely support the apps in a number of cloud environments (you may find this, but if the cloud provider does not use the specific management platform, then it is of no value).
These two things actually guarantee you very little because they address only a few of the issues around app portability.
Hurdles stand in the way of seamless container portability