How do containers handle live migration and workload balancing in the virtualized environment?
As with conventional VMs, containers can be migrated from one system to another. Such migrations can be performed on demand or automatically to support critical tasks, such as server workload balancing. The primary factor limiting migrations is the underlying host OS kernel. Since containers share a host OS kernel, the destination server must use an operating system with a compatible kernel. It doesn't necessarily need to be the same distribution or build, but the kernel must be the same; you can't run a Linux container on a Windows server -- at least not yet.
Containers offer more than just a way to virtualize an enterprise application. Container technology has provided system and application architects with a new approach to software development and deployment. On one level, containers use fewer computing resources than VM counterparts, and are faster and easier to create. This makes it possible to spin up more containers quickly to meet the needs of high-volume applications, such as Web servers.
But the impact of containers is even more important than just the ability to create or destroy lots of them easily. Container flexibility and scalability is increasingly leveraged in a microservices approach to software design. In traditional "monolithic" software design, every feature and function is integrated into the single application. When the bandwidth of certain features and functions is exceeded -- or the program can't handle any more users -- the enterprise needs to deploy another iteration of the entire application in order to scale the software. This is a costly and inefficient approach to software design.
By architecting software in terms of discrete services -- application parts or components -- the varied parts of an application can be distributed across multiple containers, which are then connected logically to form the complete application. This allows the individual components to be patched or upgraded without impacting the other component containers. Even better, it is possible to create more containers to scale out only the features that need more capacity -- or even scale down the number of containers where a certain feature needs less capacity. This makes microservices-based software design an ideal match for container technology and results in highly-scalable, but highly-efficient applications. Microservices containers can still be migrated across compatible systems for workload balancing and application performance optimization.
VMware's microservices architecture
Are Docker containers a threat to VMs?
Five downsides to container technology
Dig Deeper on Application virtualization
Related Q&A from Stephen J. Bigelow
Containers have rapidly come into focus as a popular option for deploying applications, but they have limitations and are fundamentally different ... Continue Reading
ALM and SDLC both cover much of the same ground, such as development, testing and deployment. Where these lifecycle concepts differ is the scope of ... Continue Reading
Eliciting performance requirements from business end users necessitates a clearly defined scope and the right set of questions. Expert Mary Gorman ... Continue Reading