New Container Image Standard Promises More Portable Apps
I've written about containers before, and I've waxed lyrical about the multitude of benefits they bring to DevOps and cloud computing. And, I'm not the only one to appreciate them—although there are always detractors, there's a pretty strong consensus that they're a Good Thing. But while they are arguably the best thing since sliced bread (or VMs), they aren't without a few drawbacks.
Perhaps the biggest one is the lack of standardisation between different container runtimes. There are plenty of different options when you select a container engine, and choice is always a good thing, but the problem comes when you try to run an image from one container engine on another. Right now, each engine uses its own image format, which makes it impossible to switch between them.
This may not seem like a problem right away. After all, if you use Docker for development, testing and deployment, why should you care about supporting Kubernetes or rkt? The problem becomes more apparent when you want to move from one cloud host to another, or if another container engine releases a feature that you realize you can't live without.
As things stand now, your only solution would be to rebuild the application images using the new container engine, but that introduces variables of its own, so it's no longer possible to guarantee the code will run identically on both platforms.
The ideal solution would be to build the app once and run it anywhere—and that means on any container runtime.
That's the goal of the Open Container Initiative, an organization that was formed by the Linux Foundation. Its goal is to close the gap between different container engines, so applications can move freely from one runtime to another.
A major target is to create a standard specification for container images. If the Initiative can get all of the major container engines onboard, it'll be one giant step closer to achieving its goal, which will be a real boon to startups that are expanding rapidly.
The new standard also will be good news for customers of off-the-shelf solutions that ship in container form. They no longer will be tied down to the developer's choice of container runtime. Instead, they can choose the stack that suits their requirements and circumstances.
It's still early days as far as the standard is concerned, but already most of the main players are voicing their support. As the OCI is a community-driven body, it's in the perfect position to draft a standard that meets everyone's needs—whether they're container-engine developers, DevOps teams or cloud computing providers.
You can read more here.