
Why Cloud Portability Is Harder Than It Sounds
Cloud portability is more than moving a VM. Learn how data, networking, storage, identity, and platform dependencies affect workload mobility
Read field noteField notes / Latest
Engineering notes from operating open infrastructure: the failures, design decisions, and upstream work that make open infrastructure better.
Browse all field notes
Cloud portability is more than moving a VM. Learn how data, networking, storage, identity, and platform dependencies affect workload mobility
Read field note
Learn how OpenStack can power a private GPU cloud for enterprise AI, including compute, networking, storage, Kubernetes, isolation, operations, and deployment choices.
Read field note
Explore the AI infrastructure themes that stood out at ALL IN 2026, from GPU capacity and Kubernetes to data residency, operations, and production readiness.
Read field noteCloud portability is more than moving a VM. Learn how data, networking, storage, identity, and platform dependencies affect workload mobility
TL;DR: Cloud portability is about much more than moving a VM or container. Applications depend on data, storage, networking, identity, automation, and platform-specific services that may need to be moved, recreated, or redesigned. Kubernetes, infrastructure as code, and open infrastructure can reduce some dependencies, but they do not eliminate them. Planning for portability early helps organizations preserve realistic options as their infrastructure needs change.
Cloud portability sounds simple in theory. If an application runs in one environment, it should be possible to move it somewhere else. In practice, a workload rarely exists on its own. It depends on storage, networking, identity, APIs, automation, security policies, monitoring, and the data surrounding it.
That matters as organizations increasingly operate across more than one environment. According to the Flexera 2026 State of the Cloud Report, 73% of organizations now use a hybrid cloud model, while multi-cloud adoption also increased year over year. The same research found that understanding application dependencies is the leading cloud migration challenge, cited by 54% of respondents. The survey included 753 cloud decision-makers and practitioners worldwide.
This is where the difference between being able to run a workload somewhere else and actually being able to move it becomes important. A portable application may still depend on infrastructure components that are difficult, expensive, or disruptive to reproduce elsewhere.
At VEXXHOST, we work with these challenges across OpenStack, Kubernetes, Ceph, and cloud migration, including environments that are hosted, deployed on-premises, or being moved from existing virtualization platforms. Tools such as MigrateKit address part of that migration process, but portability starts much earlier than the migration itself.
The real question is not simply “Can this workload run somewhere else?” It is “What would we actually have to move, rebuild, or change to get it there?”
Moving a virtual machine from one environment to another can make a workload appear portable. But the VM itself is only one part of what keeps an application running.
A production workload may rely on specific network configurations, attached storage volumes, IP addresses, security rules, identity services, load balancers, DNS records, backup systems, and monitoring tools. Applications can also depend on services or APIs that exist only within the original platform. Moving the compute instance without accounting for those dependencies can leave teams with a workload that technically migrated but does not operate in the same way.
This is why understanding the environment before moving anything matters. As we explore in Migrating from VMware to OpenStack: Step-by-Step, migration starts with discovering not only the workloads themselves, but also the storage, networks, configuration, and relationships they depend on. A clear dependency map makes it easier to understand what actually needs to move and what may need to be recreated or adapted in the destination environment.
Tools such as MigrateKit can help with the technical migration process, including discovery, validation, synchronization, and cutover. But portability goes beyond transferring the virtual machine itself.
That is why portability should be considered at the workload level rather than simply the VM level. The more useful question is not just “Can we move this machine?” but “Can we reproduce everything this application needs somewhere else?”
Once a workload moves beyond a single VM, portability becomes a question of dependencies.
An application might use persistent storage with particular performance characteristics, an external identity provider, specific firewall rules, private networks, monitoring agents, secrets, certificates, or automated deployment pipelines. Some of these can be reproduced relatively easily in another environment. Others may rely on platform-specific APIs or services that have no direct equivalent.
This is where infrastructure as code and automation can help. When network configurations, infrastructure resources, and application deployments are defined in reusable code rather than recreated manually, teams have a clearer picture of how an environment is built. Tools such as Terraform can also make it easier to reproduce parts of that infrastructure across supported platforms.
We explore this idea further in Automating Recovery with Infrastructure-as-Code, Orchestration, and Atmosphere, where infrastructure as code acts as a blueprint for rebuilding infrastructure consistently rather than relying on manual configuration.
But automation does not automatically make an application portable. A Terraform configuration can still call provider-specific resources, just as an application can depend on a proprietary database API or identity service.
The important distinction is between automating an environment and making that environment reproducible elsewhere.
True workload portability requires teams to understand those dependencies ahead of time: which ones can move unchanged, which can be recreated, and which will need to be redesigned.
Containers can make applications easier to move because they package the application and many of its dependencies into a more consistent format. Kubernetes adds another layer of standardization by providing a common way to deploy and manage containerized workloads across different infrastructure environments.
But container portability is not the same as application portability.
A Kubernetes application can still depend on storage classes, ingress controllers, load balancers, network policies, identity integrations, secrets management, GPU configurations, or services provided by the underlying platform. Move the application to another Kubernetes environment and those components may behave differently, use different APIs, or need to be configured again.
Persistent data is particularly important. Moving a container image may take minutes, while moving the databases and storage behind the application can be considerably more complicated.
This does not diminish the portability benefits of Kubernetes. It simply changes where teams need to look for dependencies. Standardizing the application layer can reduce how tightly workloads are coupled to the infrastructure underneath, but it does not remove that infrastructure.
Kubernetes can make workloads more portable, but the degree of portability still depends on how much the application relies on the environment around it.
Applications can often be rebuilt or redeployed. Data is much harder to move.
Large datasets take time to transfer, and applications may continue generating or changing data while a migration is underway. Teams have to consider synchronization, consistency, backup and recovery, storage performance, and how much downtime the application can tolerate during the move.
The destination environment may also use a different storage architecture or expose storage through different interfaces. Even when the application itself can run in both environments, its data layer may require additional migration work or changes to how storage is provisioned.
Data residency and sovereignty requirements can introduce another constraint. Certain datasets may need to remain within a particular country, region, or infrastructure environment, limiting where workloads can realistically be moved.
For many applications, compute is the portable part. Data is what determines how practical that portability actually is.
Portability is much easier to plan for before a migration becomes necessary.
That does not mean avoiding every platform-specific feature. Managed services and specialized infrastructure can provide real advantages. The important part is understanding where those dependencies exist and what would be required to replace them.
Infrastructure as code can make environments easier to reproduce, while documenting application dependencies helps teams understand what needs to move with each workload. Using open APIs and widely supported technologies where practical can also reduce the amount of redesign required when infrastructure changes.
Data deserves the same attention. Teams should know how it can be exported, how long a transfer would take, what needs to remain synchronized during a migration, and whether regulatory requirements restrict where it can go.
Open infrastructure technologies such as OpenStack, Kubernetes, Ceph, can give organizations more options for where and how infrastructure is deployed. But using open technologies does not make workloads automatically portable. Architecture still matters.
Ultimately, portability is less about promising that everything can move anywhere and more about preserving realistic options when requirements, providers, costs, or infrastructure strategies change.
Cloud portability is not a simple yes-or-no characteristic. A workload can be relatively easy to redeploy while still being closely tied to its original storage, networking, identity, data, automation, or platform services.
The goal is not necessarily to eliminate every dependency. It is to understand those dependencies and preserve practical options for change. That means designing with migration in mind, documenting how workloads are built, and knowing what would need to move, change, or be rebuilt in another environment.
At VEXXHOST, we work with organizations across OpenStack, Kubernetes, Ceph, and cloud migration to build and modernize infrastructure with greater flexibility in mind.
If you’re evaluating your current infrastructure or planning a migration, talk to our team.
Choose from Atmosphere Cloud, Hosted, or On-Premise.
Simplify your cloud operations with our intuitive dashboard.
Run it yourself, tap our expert support, or opt for full remote operations.
Leverage Terraform, Ansible or APIs directly powered by OpenStack & Kubernetes