The cloud computing landscape is constantly evolving, making it challenging to keep up with all the changes. However, one thing has become clear in recent years: the multi-cloud reality is here to stay.
Should enterprises use multiple clouds? In fact, many of them already do.
One strategy is to use a single cloud as long as it fits the needs. Another strategy is to employ the best cloud for the job and combine clouds as a result. Of course, there are nuances to consider.
The bigger the company, the greater the chance that you are already using multiple clouds. Generic public clouds (AWS, GCP, Azure), private clouds (VMware, Nutanix), and specialized clouds (Cloudflare, Vercel) can all be combined for the benefit of your organization. Some clouds offer irreplaceable functionality that simplifies aspects of your product, while others are used for historical reasons.
Traffic
If you have just a few gigabytes of traffic a month, this would likely not have a significant impact on your cloud costs. However, if you have more than a few gigabytes per hour, a multi-cloud setup may bring you some surprises.
Traffic in and out of your load balancers, CDNs, on-prem resources, and between clouds is not free. For example, in AWS, transferring one gigabyte into or out of their networks may cost between $0.01 and $0.08 per GB. This can result in hundreds or even thousands of dollars for high-traffic configurations, such as image processing, financial transactions, and analytical data streams.
Even within the same cloud, traffic can be costly if it spans several regions or availability zones.
So, if you decide to go with multiple clouds or multi-regional setups, you definitely need a multi-cloud strategy that takes traffic costs into account.
Mono-cloud
In general, I advocate for using only one cloud platform and using it well. With the maturity of cloud platforms, vendor lock-in is not a significant problem if you are concerned about it.
If you are satisfied with the provided services, you should leverage the cloud platform to the fullest extent. This will also help you be truly cloud-native. You will be able to utilize all the extra services built into your cloud provider, such as identity management, encryption services, and network integrations. These services are usually cloud-specific but add significant value, sometimes even free of charge. For example, you pretty much always get:
API-driven infrastructure management
Built-in IAM (identity and access management)
Encryption services turned on by default
Cheap configuration and secret management
Common denominator
On the other hand, there are use cases and products where it makes sense to have the option to jump between clouds. For example:
Video rendering services (e.g. RebusFarm GmbH)
Decentralized network services (e.g. Mysterium Network)
Data extract/transform/load services (e.g. Matrixify)
I do not know if the products mentioned above use multiple clouds, but doing so would give them a strategic advantage. They would be able to migrate or replicate the infrastructure across multiple providers.
Not all clouds are equal, but there is always a common denominator that you can use to jump between them to optimize costs or gain a strategic advantage.
The common denominator includes the basic Infrastructure-as-a-Service components such as servers, networking, data storage, and security. In some cases, the common denominator could be Kubernetes.
All general-purpose clouds have the required capabilities. The glue code needed to achieve portability is minimal as well.
The benefits include:
Optimizing running costs: By using the cheapest cloud at the moment, you can take advantage of price drops.
Ensuring uptime: Stay online regardless of a single cloud region's downtime, which can happen.
Improving performance: Place your workloads closer to clients, as clouds have different regional availabilities.
In short…
You probably can’t escape multi-cloud reality. But you can be prepared for that.