Getty Images/iStockphoto
An introduction to a cross-cloud strategy
A cross-cloud strategy enables enterprises to run the same workload in different cloud environments simultaneously. This is beneficial for resilience, flexibility and performance.
Conventionally, the purpose of most multi-cloud architectures is to enable businesses to use one cloud to host one set of workloads, while operating other workloads in another.
But what if enterprises want to host the same workload in multiple clouds at the same time? That's where a cross-cloud strategy comes in. Cross-cloud is a unique type of multi-cloud architecture that provides special benefits not available from traditional multi-cloud approaches.
This article explains what cross-cloud means, how it works and how to get started with a cross-cloud strategy.
What is cross-cloud?
Cross-cloud is a type of cloud computing architecture in which an organization hosts one or more workloads across multiple clouds. In other words, under a cross-cloud strategy, an application operates on more than one cloud at the same time.
For example, under a cross-cloud strategy, a business could use an Amazon EC2 cloud server instance to host an application's front end, while hosting the app's back end using Azure VMs.
Cross-cloud architecture patterns
Enterprises can deploy an application across clouds using two basic methods:
- Host redundant instances of the same app in more than one cloud. This strategy is useful for increasing application reliability and availability because, if one of the clouds goes down, the app remains available in the other cloud.
- Host different parts of an app in separate clouds. This approach helps optimize application performance and cost-effectiveness by deploying each part of the app on whichever cloud offers the best performance or cost.
Note that these deployment patterns are not mutually exclusive. An organization could deploy one app across clouds by operating redundant instances of it, while simultaneously deploying one part of another app in one cloud and the other part of the app in a different cloud.
Key characteristics of a cross-cloud architecture
Effective cross-cloud deployments hinge on the three following key characteristics:
- Integration. The components of workloads that run across clouds must be tightly integrated with each other. This is important for keeping them in sync and ensuring adequate performance.
- Unified management. To manage cross-cloud apps efficiently, organizations need a management layer or control plane that can centrally administer applications operating across clouds.
- Interoperability. In most cases, cross-cloud strategies require apps that are cloud-agnostic and can operate anywhere.
Cross-cloud vs. multi-cloud
Cross-cloud can be considered a type of multi-cloud architecture because it involves the use of multiple clouds. However, cross-cloud is different from what people usually mean when they talk about multi-cloud.
Traditionally, multi-cloud refers to a cloud computing strategy where an organization uses more than one cloud platform, while keeping each of its workloads within one particular cloud. For example, multi-cloud could involve hosting one application using EC2 and another, separate application using Azure VMs.
This is distinct from a cross-cloud approach, in which the same app runs in more than one cloud simultaneously.
Cross-cloud benefits
The benefits of a cross-cloud strategy vary depending on which type of cross-cloud deployment architecture enterprises use.
In cases where a business deploys redundant instances of an app on more than one cloud, the main benefit is increased reliability.
In cases where different parts of services of an app reside in different clouds, the chief benefit is increased flexibility. This type of cross-cloud deployment makes it possible to pick and choose which specific clouds host which parts of the app.
This flexibility can translate to better performance and lower costs, as one cloud platform might better cater to the needs of one part of the app, while another cloud better fits the other part. For example, a company might have an app with services written in different programming languages. One service is written in a language that is natively supported by AWS Lambda, a service for running serverless functions. Another service is written in a different language that Lambda doesn't directly support.
The only way the business could run the service on Lambda is to use a runtime API, which is more complicated. So, it decides to host the first service on Lambda, while running the other on a different cloud with a serverless function that natively supports the service's programming language.
Cross-cloud challenges
While cross-cloud strategies can provide more flexibility, they also present some challenges, including the following:
- Complexity. Cross-cloud adds complexity because it requires managing multiple clouds simultaneously, as opposed to being able to administer each cloud environment separately.
- Performance management. Cross-cloud performance management requires the ability to collect and analyze performance data from multiple clouds, as well as trace the root cause of performance issues back to a particular cloud.
- Sync issues. Keeping applications in sync when they run across clouds can be challenging because application components hosted in different clouds must rely on the network to stay in sync. Networking delays could disrupt this process.
- Security. The complexity of cross-cloud apps, coupled with the fact that they are exposed to multiple clouds, can make them harder to secure.
Getting started with cross-cloud
Enterprises that think a cross-cloud strategy might be right for them can work through the following steps to get started.
1. Define cross-cloud goals and strategy
First, they should determine why they want to go cross-cloud. Is it to save money, improve performance, increase reliability or all three? Different goals and use cases align with different cross-cloud deployment patterns, so choose a strategy that supports business objectives.
2. Assess the environment and architecture
Review the cloud platforms and services available to the organization, and ensure there is the mix necessary to support the targeted deployment pattern. For example, if a company plans to host instances of the same app in different clouds, ensure that the app is compatible with more than one cloud.
3. Implement a management layer
Determine how to deploy and manage the app across clouds. One approach is to use a platform like Kubernetes to create a cluster of servers and application services that spans multiple clouds. Another is to design the app to integrate with multi-cloud providers' APIs, rather than abstracting the underlying cloud platforms from the app.
4. Deploy and manage the app
With the preceding components in place, enterprises can deploy and manage the app. Ensure the ability to collect the monitoring and observability data necessary to manage the performance and security of an app that is spread across clouds.
Chris Tozzi is a freelance writer, research adviser, and professor of IT and society who has previously worked as a journalist and Linux systems administrator.