cloud on top of an ice cream cone
PHOTO: Rakicevic

Cloud computing has revolutionized the computing universe, opening the world to a larger pool of resources, big data platforms, intensive computing and faster throughput. As organizations expand their cloud footprint, the ability to use on premises as well as cloud environments, along with a combination of multiple cloud vendors, has led to a mashup of computing environments. This has given rise to what we today call hybrid, multi-cloud platforms.

Portability and Interoperability in a Hybrid Cloud Environment

A hybrid cloud environment is a combination of on premises and private clouds, as well as multiple public cloud spaces. These all interact with each other to provide services across an enterprise. Using a multi-cloud environment is new to most organizations and requires planning to ensure a seamless flow of data and information across these environments, thus raising concerns around interoperability and portability. 

Another important concern for cloud computing is onboarding — the deployment or migration of workloads to a cloud service. Migration from on-prem to cloud as well as from one cloud service provider (CSP) to another requires portability of those components that can be moved to the cloud, and interoperability with remaining in-house systems. 

Interoperability and portability are often used interchangeably in the context of cloud computing since many of their technical solutions are the same. However, the two concepts are different:

Interoperability in the context of cloud environments, is the ability of a product, application, system or technology to work with other systems and technology to facilitate the exchange of information and data across them. It is mainly a concern for multi-cloud or hybrid cloud environments to ensure the proper functionality of their services with the external world. In some cases, interoperability requires a previous knowledge or agreement of the systems with which the current one will inter-operate.

Portability is the ability to move and adapt applications and data between on premises systems and across multiple cloud service providers. Cloud portability is a concern to  consider when designing an application, data or service. The aim is to minimize the human efforts in redesign and redeployment of application, data and services when moving from one cloud to another or when moving from on prem to cloud.

Related Article: What Is Hybrid Cloud Computing and Why Should You Use It?

Key Enablers of Portability in Hybrid Cloud Environments

Both interoperability and portability of data and applications are a key attribute that directly dictates the ability to manage seamless transfer of data and applications between alternative CSPs. Below we explore some key enablers for portability in a hybrid, multi-cloud environment:

Open APIs and Standards

The classic way to bust the interoperability and portability problem is the adoption of standards and open source APIs. An open architecture based on open APIs and standards is the first step in building a portable application, while at the same time promoting interoperability. A clear mandate to specify and publish open APIs and standards is a must-have.  

The most commonly used standard in cloud computing is the Open Cloud Computing Interface (OCCI). OCCI is a specification for remote management of cloud service infrastructure. It allows the development of tools for common tasks including deployment, monitoring and autonomic scaling. Its API supports three concepts: compute, network and storage. 

Other open standards are OVF, CDMI and the Topology and Orchestration Specification for Cloud Applications (TOSCA). TOSCA enables the portable and standardized management of cloud services, where composite applications and their management is done based on service templates that contain a service’s topology and its operational aspects.

Containerization

Containerization enables an application to be run in a virtual environment by storing all the files, libraries and more together as one package: a container. Containerization is the backbone for portability and has enabled portability, flexibility and scalability with its ability to plug directly into the operating system kernel. It makes it possible for applications to run on any vendor agnostic container platform.  

Architectures need to be designed to implement a container orchestration layer such as Kubernetes, to allow application teams to containerize their components and workloads for easy automated deployment and interoperability — and without the burden of factoring in the specifics for the destination CSP. This allows for easy movement from on premises systems to cloud systems, or movement from one CSP to another.

Related Article: Microservices Make Inroads: Replacing the CMS Monolith

Automation

Automation is a broad term that can be used to describe tools used to reduce manual processes. The immense power of cloud computing has given rise to automation in the software development lifecycle, which in turn has reduced time to deployment and increased flexibility and portability across environments. When considering portability, keep in mind two significant aspects to automation:

  • DevSecOps: Building in automation through a DevSecOps pipeline configured to deploy applications to any CSP promotes easier portability. DevSecOps is a key enabler of a modern software development approach. A well-designed DevSecOps pipeline, that can scale to demand, enables teams to continuously incorporate security into their SDLC, accelerating the time to production.
  • Infrastructure as Code: Infrastructure as code (IaC) is an extension to the concept of DevOps. IaC is the concept of managing an operations environment using similar methodologies deployed in the software development lifecycle. Rather than manually making configuration changes or using one-off scripts to make infrastructure adjustments, the operations infrastructure is instead managed using the same rules and strictures that govern code development. Using IaC to automate infrastructure provisioning promotes portability and reduces the risk of manual errors, as the same automated scripts would be used across CSPs to spin up environments and deploy applications and data.

Related Article: Choosing a Cloud Provider for Business Innovation

From Cloud First to Cloud Smart

As we move from cloud first to cloud smart, multi-cloud, hybrid cloud environments are becoming ubiquitous. The need for seamless portability across multiple environments is integral to ensuring we increase flexibility, reduce our time to market and increase operational efficiency.