These days I hear a lot about the goal to run federated applications across cloud providers. We want to build these multicloud applications for many reasons, including:
- To optimize the underlying cloud resources for the application components. For instance, a CPU-intensive portion of the application can run on a portion of a cloud service that provides the fastest processing at the lowest cost for usage.
- To gain the ultimate resiliency, considering that outages typically don’t span cloud providers. Thus, we’re spreading the risk over more than a single provider.
- To avoid lock-in. Now we can put our eggs in many different baskets with a focus on the higher-level abstracted platforms versus the walled gardens of public cloud providers.
How to run federated applications
Although there are many ways to do federated deployment of applications, let’s focus on the most popular: Kubernetes. You typically set up a Kubernetes container cluster that spans multiple cloud providers. This creates several choices.