How hybrid cloud architecture helps free developers from the constraints of virtual machines

06 May 2025

8 minutes

Authors

Mesh Flinders

Author, IBM Think

Ian Smalley

Senior Editorial Strategist

Most of today’s advanced enterprises have already migrated a significant portion of their IT infrastructure to the cloud. Using virtualization technologies from companies that have become household names in the space—such as VMware, Citrix and Nutanix—organizations can successfully virtualize servers, desktops, applications and more, reducing costs and dramatically shortening DevOps lifecycles.

But virtualization in its simplest form, using virtual machines (VMs) to run software hosted elsewhere, is over two decades old. Today, newer, more efficient approaches are disrupting the market, enabling new capabilities and efficiencies that enterprises need to thrive. In particular, containers—application code that can run in any computing environment—are changing the way organizations build, deploy, maintain and modernize applications.

Still, taking a traditional approach to virtualization makes sense for some enterprises. After all, many companies have relied heavily on VMs in the past, and it’s unrealistic to think they’ll be able to change overnight—or that they’d want to. But when it comes to building and deploying modern applications that can tap into the power of transformative technologies like generative AI, a cloud-native approach that utilizes a hybrid cloud application platform has many undeniable advantages.

“Many companies are looking at their existing VM infrastructure and trying to find new efficiencies,” says Kyle Brown, IBM Fellow and CTO of Cloud Architecture at IBM Cloud Labs. “And often what that means is this journey away from VMware towards a more modern, hybrid cloud infrastructure that utilizes containers.”

Aerial view of highways

Keep your head in the cloud 


Get the weekly Think Newsletter for expert guidance on optimizing multicloud settings in the AI era.

Virtual machines and the birth of modern cloud infrastructure

Modern cloud infrastructure, where organizations and individuals leverage virtual compute resources to run software and applications like word processors, email, texting and social networking, wouldn’t be possible without virtualization and virtual machines (VMs). At its most fundamental level, virtualization creates an abstraction layer over a device’s hardware, allowing its components—including processors, memory, networks and storage—to be divided into VMs. Each VM can run its own operating system (OS) like a separate, physical computer, even though it shares the same hardware.

The use of shared resources via VMs and virtualization transformed IT infrastructure in the early 2000s. This new compute environment, known as “the cloud,” caused many organizations to overhaul the way they managed compute resources and demand greater agility, flexibility and cost savings from their IT environment. In the cloud, rather than purchasing critical resources like CPUs and application servers outright, businesses started to buy what they needed on a pay-as-you-go model. As workloads changed, they could simply scale their VMs up or down as needed.

While new approaches, better tuned to the demands of emerging technologies like artificial intelligence (AI) and the Internet of Things (IoT) have caused some reshuffling, the global market for VMs has remained strong. Last year, Precedence Research valued the global VM market at USD 11.1 billion and projected it to grow at a compound annual growth rate (CAGR) of almost 15% over the next 10 years.1

AI Academy

Achieving AI-readiness with hybrid cloud

Led by top IBM thought leaders, the curriculum is designed to help business leaders gain the knowledge needed to prioritize the AI investments that can drive growth.

The challenges of running VMs in modern app dev environments

While VMs were pivotal in moving IT infrastructure from on-premises architectures into the cloud, they have been unable to keep up with the demands of modern app development. From customer relationship management (CRM) tools like Salesforce and Hubspot, to collaboration solutions like Zoom and Slack, to gen AI platforms like ChatGPT, applications have come to define modern enterprises. 

To sustain the level of innovation and support needed to run these applications, companies need to support and manage an evolving DevOps environment with the latest tools and technologies. Unfortunately, while VMs were considered cutting-edge in the early years of cloud computing, as app dev practices evolved, their limitations have become more and more apparent.

Here are a few of the challenges VMs face in modern app dev environments.

Incompatibility with modern software and tools

Many VMs are incompatible with cutting edge tools that developers need to build, deploy and support modern applications. Microservices, for example—a method of building apps out of loosely composed, independent services and components—work much better on containers.

Poor performance

VMs run on a hypervisor, a software layer that enables multiple operating systems to run on the same physical server. However, each VM that the hypervisor provisions requires its own CPU, memory and storage, which can slow processing times on the host machine. Newer technologies based on containers don’t require an OS to be booted for each workload instance, which can lead to much faster startup times.

Excessive resource consumption

VMs run copies of an entire OS and any hardware that’s required for the OS to run, like a server, networking component or desktop. This places significant demands on system memory and CPU cycles that newer technologies, like containers, don’t have.

Docker, Kubernetes and the rise of containerization

With all the constraints VMs have in modern app ecosystems, it was inevitable that a technology would come along that was a better fit. Containers are executable units of software that contain application code, the code’s libraries and all its dependencies, which means the code can run in any compute environment. Containers are an evolution of a specific kind of virtualization that uses a kernel—a computer program that gives a user control over a piece of hardware and the amount of compute resources it needs to run.

Due to their portability and efficiency, containers quickly became the preferred compute units for modern applications to run in the cloud. Additionally, with the rise of hybrid cloud environments, where on-premises, private and public cloud resources are combined to form a cohesive IT infrastructure, containers have become critical to the core operations of many large businesses. According to Global NewsWire, the global application container market was nearly USD 4 billion last year and is expected to reach nearly USD 30 billion in the next 6 years, growing at a CAGR of 25.87%.2

While many modern enterprises still use VMs to run legacy applications, containers have become the preferred virtualization technology for modern app dev teams. When developers set out to build, test and deploy new applications in the cloud, they rely on containers so the apps they build will run in any environment, including private, public and hybrid multicloud environments. Additionally, containers are optimized for modern DevOps practices like AI-code-generation and continuous integration and continuous deployment (CI/CD) implementation.

Docker

While the idea at the core of container technology—isolating application code so it could be tested and run without disrupting other services—has been around since the 1970s, it wasn’t until 2013 that it became a truly transformative technology with the release of Docker. Docker was the first open-source platform to facilitate the creation, deployment and management of containers.

Docker transformed containerization, streamlining and simplifying the way developers could build, deploy and manage the code that underpinned some of most popular distributed applications in the world, including ecommerce sites, social networks, banking platforms and more.

Docker made app-dev easier in large part because it provided a consistent development environment across any kind of machine, speeding DevOps lifecycles and simplifying workflows. Additionally, Docker is open source, meaning its constantly being iterated on and improved by developers who can freely modify its code. This led to even wider adoption of Docker, making it nearly ubiquitous in today’s advanced DevOps environments.

Kubernetes

While the release of Docker in 2013 transformed the way DevOps teams built and deployed application code using containerization technology, it wasn’t until the release of Kubernetes, the first open-source container orchestration platform, in 2015 that containerization became scalable at an enterprise level. Kubernetes was fundamental in automating the deployment of containerized applications, reducing costs, time and complexity of DevOps lifecycles.

With Docker and Kubernetes, the foundation was laid for what would become the modern app-dev ecosystem, underpinned by the fundamentals of containers and cloud computing but ready to meet the challenges of emerging technologies like gen AI.

Microservices architecture and the cloud-native approach

Perhaps no single term defines the modern app-dev environment—or captures how far it has evolved from the early days of cloud computing—than the term cloud native. Cloud native describes an approach to building applications out of discrete, reusable components (known as microservices) that are compute-environment agnostic, meaning they can run virtually anywhere.

Unlike traditional applications which can be adapted to run in the cloud, cloud-native apps rely on cloud technologies like Docker and Kubernetes and are designed to leverage key features of cloud environments like auto-scaling, load-balancing and managed services.

Characteristics of microservices architecture

Because microservices can be deployed independently, without causing disruptions to the end-user of an application, they are well-suited to modern DevOps environments that rely heavily on the automation of critical tasks like code integration, testing and deployment.

  • Modular design: Microservices are designed with their own, independent logic, making them highly modular. Each microservice has a specific purpose and function, making it easier for developers to understand, deploy and maintain than traditional code.
  • Fewer dependencies: Microservices interact through well-defined application protocol interfaces (APIs), meaning they are not as interdependent as other kinds of code and can be changed easily without impacting one another.
  • Faster deployment: By enabling services to be deployed separately rather than having to wait for an entire application to be redeployed after an update, microservices speed the deployment of new features and fixes.

Benefits of cloud-native development

Constantly on the lookout for greater scalability, resilience and cost benefits, modern organizations are increasingly taking a cloud-native approach when it comes to building, deploying and maintaining their applications.

“IT managers usually feel the pressure from their developers initially,” says Ryan Dejana, a senior member of the IBM CIO Hybrid Cloud Integrated Platform Team. “They want to start moving in a cloud-native direction, embracing Kubernetes, Docker and other containerization technologies, because most of the software they work with is already there.”

Here’s a closer look at some of the enterprise benefits a cloud-native approach to app dev can yield.

  • Increased agility: Compared to traditional app-dev approaches that use a monolithic architecture based on integrated units that are difficult to scale, cloud-native development allows developers to quickly and easily develop new features and services without impacting overall application performance.
  • Automated resource management: Cloud-native apps have what’s known as an ‘elastic infrastructure,’ meaning that the resources they rely on—such as CPU, memory and storage—can be automated to scale up or down depending on user demand.
  • Built for gen AI applications: Today’s most advanced platforms and apps are increasingly reliant on generative AI capabilities, such as creating new content and answering complex questions. Cloud-native development supports gen AI solutions with the advanced tools, methodologies and approaches to data management that its applications demand.

Modernizing legacy apps using containers

While many enterprises would probably love if a switch existed that would simply migrate their existing IT infrastructure from the VM era to a more modern, cloud-native approach, unfortunately, it isn’t that simple. When it comes to impactful digital transformation, rather than shutting down VMs and building new, cloud-native applications from scratch, organizations need to take an approach that is more nuanced.

“The beauty of some of these new platforms,” says Dejana, “is that you don’t have to get rid of your legacy infrastructure overnight to leverage the benefits of a cloud-native approach.“

To modernize a legacy app built on monolithic architecture using outdated programming language and older technology (or, really, for any other reason), organizations must do four things: Assess, containerize, orchestrate and integrate.

Assess

Before embarking on any of the newer containerization technologies that modern apps are built on, enterprises must first assess which of their applications, platforms and services need to be modernized. Typically, these are their most widely used, valuable and innovative apps.

VMs, though outdated, are still fine for many older applications, such as those with well-defined purposes that aren’t likely to change or require massive scalability. Calculators, text editors and accounting systems are a few examples.

Containerize

Once an organization has identified the applications it needs to modernize, it must undertake the process of moving them from legacy infrastructure (usually VMs) into containers. This usually involves Docker or another containerization solution to package the app code and libraries and configuration requirements.

Orchestrate

Once the app code has been containerized and the app has been deployed, platforms like Kubernetes can help manage, configure and deploy the container, as well as scale it up and down as needed and update it with new features and bug fixes. Kubernetes and other orchestration tools also help configure an application's networking functions so it can interact with other apps and services, such as databases.

Integrate

Once an app has been containerized and is under the control of an orchestration tool, it’s ready to be integrated into an organization’s new cloud-native app ecosystem. Unlike legacy apps, newer cloud-native apps—as well as legacy apps that have been modernized—will need to be supported by cloud-native tools and processes. Examples of these include automated testing and debugging tools like Github and CoPilot, and application performance monitoring (APM) solutions like Datadog and Instana.

The hybrid cloud platform approach

Enterprises that want to modernize their application infrastructure and support the development of cutting-edge applications that leverage technologies like gen AI need to give their developers the right tools. Hybrid cloud architecture applied to the app-dev environment allows DevOps teams tasked with innovating new applications as well as modernizing old ones to flourish.

Taking advantage of the latest in cloud technologies, hybrid cloud platforms help teams self-manage their journey to cloud native with features like enhanced observability, automated updates and migration toolkits.

“Organizations that utilize a hybrid cloud platform can easily work with containers and VMs, using tools that allow them to talk to each other,” says Dejana. “This makes it easier for the whole enterprise to move from a peer VM-based environment towards a more cloud-native, container-centric model, which is critical for building, deploying and managing today's most advanced applications.”

Characteristics of hybrid cloud app-dev environments

  • Common APIs for containers and VMs: Hybrid cloud app platforms use a common API for both containers and VMs, making integration and storage much simpler in a complex dev environment. With common APIs, developers can manage apps on both containers and VMs using a single set of commands, streamlining and simplifying the overall dev experience and ultimately leading to shorter DevOps lifecycles.
  • Automated resource optimization: With a hybrid cloud platform, automation tools help provision the necessary cloud or on-premises infrastructure to support an app’s needs. For example, if real-time demand for a financial trading app spikes because of a sudden fluctuation in the market, a hybrid cloud platform’s automated resource scaling automatically provides the necessary resources to support it.
  • Single user experience for developers: Hybrid application platforms provide a consistent, unified experience for developers no matter what kind of app they’re building or modernizing—or what kind of environment it's intended for. Rather than writing code that matches a single, existing infrastructure, developers on a hybrid cloud platform only write the code once and then can run it anywhere, including on-premises or in a public cloud. “You’re not going off and having to think about how to provision your VMs and then when or how you’re going to switch over to Kubernetes,” says Dejana. “It’s a consistent experience that simplifies developers’ lives.”

Related Solutions

IBM Red Hat OpenShift

Get started with a fully managed Red Hat OpenShift platform. Accelerate your development and deployment process with scalable, secure solutions tailored to your needs.

Explore Red Hat OpenShift
Hybrid Cloud Solutions and Software

Streamline your digital transformation with IBM’s hybrid cloud solutions, built to optimize scalability, modernization, and seamless integration across your IT infrastructure.

Explore hybrid cloud solutions
Cloud Consulting Services 

Unlock new capabilities and drive business agility with IBM’s cloud consulting services. Discover how to co-create solutions, accelerate digital transformation, and optimize performance through hybrid cloud strategies and expert partnerships.

Cloud services
Take the next step

Maximize the potential of hybrid cloud technology with AI-driven solutions. Explore how you can optimize your cloud infrastructure with IBM’s hybrid cloud offerings or access expert insights to enhance your generative AI strategy.

Explore hybrid cloud solutions Download the ebook
Footnotes