The multicloud approach can simplify management of disparate clouds, but it won't give you portability

I hear about these types of solutions each and every day. Cloud brokers or cloud exchanges, typically from existing colocation or MSPs (managed services providers), make a few promises:

They'll provide access to several public clouds, typically Amazon Web Services, Microsoft, and a few others. (I don't see Google much in cloud brokering, but I figure the brokers will fit Google in as well.)

They'll allow you to provision the public cloud services using their user interface or APIs, so you can provision services across public cloud providers as needed.

They can manage these public clouds as a single set of resources using a single set of interfaces. As they put it, mixing and matching the public cloud services to meet the exact needs of your application.

These are really multicloud architectures reinvented for MSPs, so they can manage many public cloud resources from different brands and providers using a single layer of abstraction. Certainly, such a multicloud approach for an enterprise is valuable.

But the ability to provision and deprovision public clouds services does not provide application portability, only the ability to manage many different clouds. That difference can be a huge issue.

Most applications built for public cloud providers, or enterprise ones ported there, are localized for that provider. Thus, it's no easy task to move it from one public cloud to another -- say, from AWS to Microsoft -- without a great deal of work, cost, and risk.

Though a cloud broker's multicloud promise may sound like it lets you easily move workloads across providers, it doesn't. But it does let you manage different, separate resources thorough one provider. Your workloads are pretty much locked into a single public cloud provider once built for or ported to it. Moving workloads/applications from place to place to find the best performance and the best cost efficiencies is not based in reality, at least today.

Of course, there are approaches like building an application as a set of Docker containers that may indeed provide the portability capabilities you seek. But there is more development to be done there, so while the Docker approach looks promising for the future, don't rely on Docker and similar container approaches for portability today.