Cloud Interoperability and Portability

Bijoyendra Roychowdhury
14 min readMay 26, 2021

1. Cloud Headway

As technology is making continuous headway across all the industrial sectors, cloud computing has become an unavoidable mandate for developing improving solution with greater agility and better user experience. Cloud computing has gained increased popularity due to its consumer experience on below benefits:

§ Flexibility in mobility of applications and workload

§ Reduction of costs in purchasing and installing packages, hosting applications

§ Reduced storage cost, efficiently modelled around usage

§ Increased reliability in terms of catastrophic situations

§ Durability and availability of data with any exhaustive backup-recovery plan

§ Increased data security

§ Just-in-time automated scalability with admirable elasticity

§ Easy integration between application and tools along with propriety and public data sources

§ Enhanced collaboration between employees, departments, business units, organizations and service providers

§ Greater options in terms of selection solutions as “Infrastructure-as-a-service (IaaS)”, “Platform-as-a-service (PaaS)”, “Software-as-a-service (SaaS)”.

§ Near 100% (99.99% for most service in a region and 99.95% for most service across region) availability

§ Almost “zero” maintenance activity of the infrastructure in terms of updates, patching embedded with free and auto-update features

§ Accessibility of data from anywhere-anytime with no performance issues for concurrent access of same data.

§ Easy navigational interfaces to access resources

While almost all industries are embracing Cloud Computing technologies, a greater thrust has been observed in Manufacturing, Retail, Healthcare, Agriculture, Government, Finance, Energy & Utilities, Banking

Now with the advent of Cloud Computing, it comes up with various options as type of services along with multiple service providers, considered as big players in the industry, who are almost providing same generic standards of consumer experience along with agreed SLAs. Now all type of workload may not be suited well for all public or private cloud platform. Based on the workload type, cost benefit, SLA agreement, long term benefit in terms Capex and Opex, customer’s select their Public or Private Cloud provider. It may customer may end with multiple cloud provider; in case it has varied type of workload where some of them gets suited to one type of cloud platform or some of them is suited for another type or the customer may end with Hybrid cloud where he is forced to keep some of its workloads to on-premise private cloud, while rest resides to any public cloud. In these scenarios, it is necessary for the customer to remain imperative about the accessibility, usability, cross-sharing of applications functionalities and data between the consumer or the end-user of different cloud platforms. And here comes the greater inevitability to ponder upon the usefulness of interoperability and portability. Interoperability and portability is a serious subject to deal with, even while the customer is trying to migrate its workloads from one cloud platform to another due to business or technical reason.

2. What is Cloud Interoperability

Interoperability is the ability of two or more systems or applications to exchange information and to mutually use the information that has been exchanged. Cloud interoperability is the ability of a customer’s system to interact with a cloud service or the ability for one cloud service to interact with other cloud services by exchanging information according to a prescribed method to obtain predictable results. ** The definition is based on ISO/IEC19941 **.

In cloud computing, the most significant interacting components are those which belong to the cloud service customer which interact with components of the cloud service provider. The nature of the interaction is a network connection using a prescribed interface or API. There are typically multiple separate interfaces, each dealing with a different aspect of the cloud service. For example, there are the functional interfaces of the cloud service itself, authentication and authorization interfaces, interfaces for administration of the cloud services, and business interfaces for billing and invoicing. The ideal of interoperability is that the interfaces are standardized in some way — i.e., they are interoperable — so that the customer can switch to another cloud service provider with minimal impact on the customer’s components. ** The writeup is based on 2017 Cloud Standards Customer Council **.

In short interoperability in cloud computing is a sector which ensures private and public cloud services can understand each other’s API, configuration, data formats and forms of authentication and authorization.

In general Interoperability can happen in many layers as below:

Transport or Communication Interoperability is an area of data exchange between networks, which can be Physical to Physical, Physical to Virtual, LAN to LAN, LAN to WAN, WAN to WAN, over MPLS, over Internet with or without IPSEC tunnel.

Syntactic Interoperability is an area which is concerned about the packaging and transmission mechanism of data, like the structure and coding mechanism of an interoperable application. XML or JSON or ASCII characters can be a good example as the packaged transmission mechanism of code standard data. The messages transferred by communication protocols need to have a well-defined syntax and encoding, even if it is only in the form of bit-tables and Syntactic interoperability is the source to provide that data format.

Technical Interoperability covers the application and infrastructure linking systems and services. Specification of interface, data integration, interconnection between networks, data presentation, data exchange and security of communication protocols are its main characteristics, which Cloud computing inherits.

Semantic Interoperability denotes to a data exchange mechanism between information systems where the data which is exchanges is unambiguous and which has shared meaning. For example, if an IoT system is reporting a certain temperature it should be reporting a measurement parameter like Celsius or Fahrenheit along with the integer value of the temperature. The integer value of the data shared between information systems will be denoted to have a shared meaning, while the measurement attribute adds the unambiguous benchmark on the data. Semantic interoperability enables systems to combine received information with other information resources and to process it in a meaningful manner.

Behavior Interoperability is an area which deals with the expected outcome of model driven integration systems. System integration is an important aspect in which new technologies integrate with legacy systems and the service should keep on performing as expected.

Policy Interoperability is an important area where different information systems comply with any applicable legal, organizational and policy frameworks while interoperating between them. From example if there are two different information systems hosted on two different Public Cloud Providers and they exchange data between them about citizen’s personal information like “Name”, “Phone No”, “Bank A/C”, they should be definitely complying with the GDPR policy, which means, both source and destination systems should encompass the GDPR framework.

Organizational Interoperability deals with how administration align their business processes, responsibilities and expectations to achieve commonly agreed and mutually exclusive processes. For example, systems involved in several organizations sharing heterogeneous data across or same cloud platforms with agreed business process alignment.

Legal Interoperability is about ensuring that organizations operating under different legal frameworks, policies and strategies can work together. For example, if we are exchanging information, between two different policy frameworks for an intercontinental data transfer between two different cloud providers or even same cloud provider. It is also applicable for mergers, acquisitions and in fact competition between two different organizations hosting their workload on the same Cloud platform, and on the same location.

Now if you look very carefully there are certain overlap in few layers which has been discussed and defined above and certainly, we can bucketize them to identify parent and sub-layers as below:

Interoperability has emerged as a key concept for Cloud computing which covers standardization of information exchange, maintain legal frameworks, has impact on merger laws and indirectly impacts openness, intellectual property and competition

Cloud Interoperability can be of four different types:

Application Interoperability happens between application components which can be deployed as SaaS, it can use a PaaS service, or it can be using a platform deployed on top of IaaS. Applications can be monolithic, or it may be a part of microservice architecture. There are some basic design principles which needs to be followed for Application interoperability between cloud such as:

§ Loose Coupling: Cloud applications should follow microservice architecture, which means it should be loosely coupled, have multiple independent functions, acting as modules which are logically separated from the other, and interact with other components in time-critical manner but in a very simple way with shortest of hops.

§ Service Orientation: Application running on the cloud should follow Service Oriented Architecture(SOA) as much as possible, as the expectation from these applications would be they are self-contained, they will provide repeatable business activity with specified outcome and will act as a “Black-Box” to the consumers of the service aka application.

§ Stable Interfaces: Applications or Services running on Cloud should have interfaces which doesn’t change over time, quiet frequently and needs to be backward compatible.

§ Described Interfaces: Interfaces of cloud components should be well described for both human and machine readability for acquisition of application component, integration and dynamic discovery.

§ Marketplace Place usage mandate: Marketplace concept has been widely incorporated in the world of Cloud computing which ensures enterprise/s can make their products and services available to the users, with just a “Click”. Applications which can packaged or used as a COTS product, should be made available through Cloud Marketplace.

§ REST (Representational State Transfer): Representational State Transfer (REST) is an architectural style demonstrated by the design of the World-Wide Web. REST systems are considered to have interactions on client-server mode, remains stateless, and cacheable. It achieves it by having uniform interfaces and through layered approach. They also allow download and execution of code (e.g., as JavaScript). The REST approach is being increasingly used in cloud computing enabling to implement robust and scalable services, with the advent of simplifying principle of creating loosely coupled services with stable interfaces that are easy to describe.

§ BASE Transactions: Basically Available, Soft State and Eventual Consistency constitutes BASE properties, which should be the core part of application design process which are intended to run on cloud, rather than designing them with traditional transaction processing properties or ACID properties: Atomicity, Consistency, Isolation and Durability. The BASE approach allows for replicated resources, so that at least one copy is always available, with different copies in slightly different states, but with synchronization between them so that there is eventual consistency as regards any piece of information.

Application interoperability happens between identical components in Cloud/s. For example, the same Application Monitoring tool may have been positioned to monitor multiple public cloud workloads for an application, which acts a Enterprise Service Bus(ESB) and triggers actions based on events, which means the components of this ESB regardless of their location in different public cloud platform must work together.

Few characteristics of Application interoperability are:

§ Follow the above discussed design principles to avoid data synchronization issues between different cloud platforms due to

o High latency of data transfer between clouds

o Different access control mechanism between clouds

o Different means of data encryption and decryption mechanism and different ways of moving data between cloud providers.

§ Target to have dynamic discovery to combine application components at runtime.

§ It requires interoperating applications to share common process and data models

Platform Interoperability happens between platform components, which are either deployed as PaaS or deployed as platforms on top of IaaS environments. Service discovery and information exchange is an integral part of Platform interoperability and it can only achieve it through standard protocols which should support session establishment, session affinity, transfer of session data like user’s data. As applications use platforms to interoperate their data, hence it is evident platform interoperability is the base which is utilized by the interoperable applications.

Management Interoperability happens between Cloud services like IaaS, PaaS, SaaS in a multi-cloud environment which may be a combination of public cloud — public cloud, public cloud -private cloud or public cloud — legacy environment, and users may be keen to manage them from one single interface to have unified control over all the components distributed across the platforms. But to do so all cloud services should have the same standard interface.

Publication Interoperability happens between platforms and marketplaces, app stores, play stores, which is used by the approved suppliers to publish their application components, services and even programs. Multiple platforms demand multiple interfaces, while standardization of them may make the life of the supplier easy enough for seamless publication.

3. What is Cloud Portability?

Cloud portability is moving the data or application from one cloud provider to another cloud provider or even moving from on-premise infrastructure to public or private cloud, given the fact, data remains intact, uncorrupted and the application remains useable and executable. Below categories should be part of discussion when we discuss about Cloud Portability:

Data Portability: Cloud data portability is the ability to transfer data from one cloud service to another cloud service, from on-premise customer IT systems to cloud service in a standardized electronic format. Now to transfer the data from source to target either of the two conditions has be to be met:

The source and target service have the same data format or homogeneous framework in terms of extract and transform data

The source and target service have heterogeneous data format, but they share a common tool which is responsible for converting the data from one format to the other.

Data portability between cloud service providers should consist of the utility of extracting the data by the customer and importing customer data on the cloud. Now the source and target data extraction and import API may be common like having a Web Interface to achieve the goal or there may be two different API’s in terms of extraction and import of data.

Data portability across different cloud platforms and services enables the customer to re-use the same across different application components without the re-creating or re-entering the new data. For example, if a customer is having a cloud data lake solution governed by an on-cloud PaaS, read by a separate SaaS cloud and an application residing on-premise, given the fact customer changes its cloud provider, the data portability to the other cloud platform’s data lake should be transparent and impact less for the SaaS and on-premise application.

Application Portability: Cloud Application portability is the ability to transfer application or application components from one cloud service to another cloud service which has equivalent features or moving application from customer’s on-premise IT infrastructure to Cloud platform.

If the application is not legacy, then it may not be needing any refactoring (redesigning and recoding the entire or most part of the application), but it may need recompiling or relinking on or to target cloud service without any change in the base code, functions and module design.

Application portability enables the re-usage of the application and its components across the cloud platform, by the required PaaS services and by other COTS (Commercial-off-the-shelf) applications or customized and home-grown customer applications.

Application portability denotes to the capability of moving the App code to or from the cloud service, between cloud service, for example when the application crosses the development, testing phase to be pushed into the production environment.

It only applies to IaaS and PaaS services, not for SaaS service, as the SaaS App code belongs to the cloud service provider, which is not portable to anywhere else, by the customer.

Important thing to consider for application portability to work between cloud services, is that both source and target services, should have standard interface shared between themselves, which should consist of sharing or exposure of artifacts and dependencies.

It may well happen, the development and run-time production environment for the application is different — customer may be using Cloud PaaS environment for developing applications and using its own on-premise setup for the running the run-time production workload, which demands correct applications to be moved unaffected between Dev and Prod environments. This can be ensured by able synchronization and exposure of artifacts and dependencies between source and target service.

Application portability along with Application interoperability is very essential for a DevOps environment to be successful, in case development and operation/production environment is different, which needs interoperability feature of service discovery and communication and a portability feature of transferring the code unchanged.

Platform Portability: Platform portability denotes to the re-usage of platform components across Cloud and Non-Cloud infrastructure which deals with the base infrastructure layout, for Cloud which is IaaS.

Platform portability is also the ability to package the application and data of one platform to be re-used in different platforms without any effect on functionality, which is where we see a lot of popularity in terms of using easily portable containerized applications.

An example of platform portability is, if you written and compiled any application is a specific programming framework like .Net in a platform which resides in on-premise and now you want to transfer the application to Cloud which has the same .Net framework. While your transfer the application, you need to recompile the same on the Cloud .Net framework while respecting the pre-requisites like supported versions and installation of dependencies.

Another example is containerized application which we just discussed a paragraph above, which is basically a machine image, to be transferred from one platform to another, consisting the OS and application binaries bundled with porting requirements.

4. Interoperability and Portability Scenarios

As per Cloud Standards Customer Council (Copyright © 2017), the key interoperability and portability scenarios are:

§ Customer switching between Cloud Service Providers

§ Multi-cloud vendor: Customer using multiple Cloud services from multiple providers

§ Heterogeneous Cloud Handshake: Customer linking one cloud service to another cloud service, like App1 in Cloud-A is using App2 service in Cloud-B

§ Hybrid Cloud: Where Customer links in-house capabilities like on-premise Datacenter or legacy workloads with cloud services.

§ Cloud Migration: Customer migrates its on-premise workload to cloud services

The below diagram may give a fair idea about the scenarios.

5. Conclusion

With increasing amount Public and Private Cloud provider who are in fierce competition to provide equivalent features for similar services and always upgrading themselves to provide access to cutting edge technologies to create a greater user experience, greater invocation of services by the customer and consumer to maintain their brand identity and reach out to their end users faster than their competitors, cloud computing is becoming increasingly complex where vendor lock-in is the word which customers will thoroughly reject. Customer may remain very vigilant about the services they are absorbing from their cloud service providers and the coming decade will see a lot of migration of services between cloud platform providers from customer perspective along with a greater thrust to move from on-premise environment to Cloud environment, especially with the induction of pandemic situation which has taught the customers that need not be lagging behind in terms of Digital transformation initiatives. These will create a situation where multiple customer will end-up multi cloud platforms to run their services along with a Hybrid setup of on-premise legacy workload and modern cloud workload. Hence interoperability and portability will be the most discussed concepts in the world Cloud environment, for next five to ten years. Realizing the importance several standard governing bodies like CSCC, ISO, IEEE etc. have been investing a lot of time and effort to build and define cloud interoperability and portability standards which will reduce technical complexity by eliminating custom gateways and interfaces, have more flexibility in terms of changing service providers, seamless connectivity from heterogeneous sources to a single target.

Thanks for reading my article. If you like it please 👏 it and surely provide your feedback if there is any which will motivate me to come up with a more detailed version of the subject as the research will continue on the same 😊.

--

--

Bijoyendra Roychowdhury

Bijoy is distinguished IT Enterprise Architect for Multi Cloud(Azure, AWS, GCP), Datacenter, DevOps, Automation and SRE technologies, having 15.5 years of exp.