Portability and interoperability are common terms regardless of the type of software system being discussed. They...
are old issues that have come into a new focus with the increasing adoption of the cloud services platform. Not only does a cloud system need to work with other cloud platforms and applications, but the data processing must also interoperate with existing or older enterprise systems.
Cloud application portability is generally defined as a concept within cloud systems concerning the ability to move applications and data between vendors. In other words, it's about porting cloud applications or data systems to any other vendor system without undue operation interruption. Cloud portability deals with integration issues between SaaS and PaaS applications specifically, but it also includes pre-existing enterprise applications and data processing methods. Portability allows cloud users to avoid being locked into a proprietary vendor's system by developing cloud systems in an open model rather than in a proprietary manner.
It's an evolving issue that is generating more buzz as more organizations move to the cloud. If an organization is considering moving to a cloud-based system, there are three significant considerations that need to be planned for and decided on for a successful cloud implementation.
In this article, I'll discuss data, application and platform portability and their involvement in a portable, interoperable cloud system design.
Application portability requires a standard interface that is exposed by the supporting platform. In this way, it enables the application to use the communication protocols built into the cloud platform to operate and communicate with, and get information from, the platform. For example, if an open standard interface is used, then it's more likely that applications can be ported with moderate effort. However, if the application is designed with features specific to a particular cloud vendor platform, then without rewriting the design, those applications will be difficult or impossible to move between systems without significant re-design.
Another point to consider is application portability between development and operations environments. A PaaS or iPaaS system is attractive to many organizations because it saves the expense of creating and maintaining an underlying infrastructure system. Instead, the infrastructure is supplied and managed by the cloud services vendor. But to reap the full benefits, an organization must ensure that applications are completely portable between development and operations environments. Applications should not need to be edited or altered to run in operations because true portability requires the application to run in both environments without needing any type of change. Application portability in this form is DevOps or the union of development and operations typically used in a continuous software development organization.
Data portability is creating and enabling the reuse of data components across applications.
When considering cloud systems, it's important to consider the business need and the data complexity to ensure the organization's data management design ports effectively. Most data structures are designed to fit a specific platform and the application processing method within it. Altering those structures in order to change platforms is not an insignificant effort.
Data portability essentially is the same issue whether the organization uses a cloud or more traditional system. Data structure design must be altered to fit the new platform and any new application data processing methods. The technical problems in transferring data remain the same. It's important to remember the data structure when planning a move to another platform.
According to an article on cloud portability and interoperability … organizations moving to a cloud platform need to consider two forms of platform portability:
- Platform source portability
- Machine image portability
Platform source portability is the reuse of platform components across cloud and non-cloud systems.
Machine image portability is the re-use of application bundles and data with their supporting platforms.
Unix is a classic example of platform source portability. Unix is written largely in C and can be implemented on different hardware platforms by re-writing a few sections and re-compiling the code. Platform portability simply enables applications to use the operating interface that they require, regardless of the hardware platform.
For more in-depth technical information on cloud portability, peruse the site for the Open Group organization.
Portability for data, applications and platforms is a significant business concern when moving to a cloud service. A common problem new cloud implementations come across is that some components move readily to the cloud structure and others do not. Or, other items like personal data cannot be moved to the cloud due to the loss of control. In other words there are likely one or more data types that an organization will not move to the cloud for regulatory or security reasons. Those pieces or components that remain on the traditional or existing system can create significant issues.
Organizations need to be aware of and plan their implementations accordingly in order to avoid integration issues. Planning for application, data and platform are essential for a smooth migration to the cloud services world.