The cloud computing landscape is constantly evolving, and it can be hard to keep up with all the changes. However, one thing that has become clear in recent years is that the multi-cloud reality is here to stay.
Should enterprises use multiple clouds? In fact, many of them already do.
One strategy is to just use one cloud as long as that fits the needs. Another strategy is to employ the best cloud for the job and combine clouds as a result. There are nuances, of course.
The bigger the company, the bigger 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 together for the benefit of your organization. Some clouds offer very good irreplaceable functionality that makes things easier for your product. Some are used for historical reasons.
If you have just a few GBs of traffic a month, then this would most likely not have a big impact on your cloud costs. But if you have more than a few GBs per hour, a multi-cloud setup may bring you some surprises.
Traffic in/out of your load balancers, CDNs, on-prem resources, and between clouds is not free. For example in AWS, transferring of one gigabyte into or out of their networks may cost you 0.01 - 0.08💲per GB. This may result in 💵 hundreds or even 💵💵 thousands of dollars paid for high traffic configurations (e.g. image processing, financial transactions, analytical data streams).
Even within the same cloud, traffic may be costly if it spans several regions or availability zones.
So, after all, if you decide to go with multiple clouds or multi-regional setups, then you definitely need a multi-cloud strategy that should take traffic costs into account.
In general, I’m all in for using only one cloud platform and using it well. With the maturity of the cloud platforms, vendor lock-in (if you are afraid of that) is not a problem. If you are happy with the provided services, then you want to leverage the cloud platform to the full extent. This will also help you be truly cloud-native. You would be able to use all the extra services built into your cloud provider. Identity management, encryption services, and network integrations will all be at your disposal. Those services are usually cloud-specific, but they do add value. Sometimes even free of charge.
On the other hand, there are use cases/products, where it will make sense to have options to jump between clouds, for example:
- Video rendering services (e.g. RebusFarm GmbH - https://us.rebusfarm.net/en/)
- Decentralized network services (e.g. Mysterium Network - https://www.mysteriumvpn.com/)
- Data extract/transform/load services (e.g. Matrixify - https://matrixify.app/)
I do not know if the products mentioned above use many clouds. But it would give them a strategic advantage. They would be able to migrate/replicate the infrastructure with 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 get a strategic advantage.
The common denominator includes the basic Infrastructure-as-a-Service (servers, networking, data storage, 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 rather minimal as well.
The benefits include:
- Optimize running costs by using the cheapest cloud at the moment (prices drop all the time)
- Stay online regardless of a single cloud region downtime (it does happen!)
- Place your workloads closer to the clients (clouds have different regional availability)
You can’t escape multi-cloud reality. But you can be prepared for that.