Sergey Galushko - Fotolia
One of the principal benefits of containers is deployment flexibility. The idea is that a container is assembled from a series of layers, which allow the container to package all of the dependencies that are involved in the application -- thus enabling the container to run almost anywhere regardless of the platform. But the OS itself can pose a serious wrinkle in container compatibility that's often overlooked.
Even though containers share the underlying OS kernel, each container itself will include some OS components -- an OS layer. The problem is that the OS components included with the container must match the OS version running in the host kernel. If the OS versions don't match, the container might not function properly -- if at all.
Containers are blocked if the build numbers are different. For example, Microsoft uses a four-level version notation system that designates major, minor, build and revision -- such as 10.0.14393.0. Ideally, all four levels of the version system should match before a Windows or Hyper-V container will run on a Windows Server host. In actual practice, a container will start if there's a difference in the revision -- lowest -- designation level, but there's no guarantee that the container will work properly. However, no differences are allowed in the major, minor and build levels.
This can become a serious problem for DevOps teams. Consider an environment where an IT staff updates the OS on production hosts, only to find that hundreds, thousands or even tens of thousands of containers no longer function properly because of an OS kernel mismatch. Operations staff will need to coordinate OS patches and updates with developers so containers can be updated and redeployed with the equivalent OS layer in concert with production environment changes. The challenge is a bit less pressing for Hyper-V container deployments where there might be more latitude in delaying and coordinating VM OS upgrades.
Differences between Windows Server containers and Hyper-V containers
Evaluate Microsoft Azure Container Service
Understand the relationship between containers and microservices
Dig Deeper on Application virtualization
Related Q&A from Stephen J. Bigelow
Once part of the gaming industry, GPUs are gaining traction in data center infrastructures. Learn why the power of GPUs makes them fit virtualization... Continue Reading
It's perfectly viable to approach API development using either in-house or SaaS-provided tooling, but each path has its place. Learn how to choose ... Continue Reading
Thinking about applying the OpenAPI Specification to API development? Analyze OpenAPI's automation and standardization benefits and see if it will ... Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.