The Linux Foundation brought the container powers, including CoreOS, Docker, and Google, together to form the Open Container Initiative (OIC). Its job? To create a vendor-neutral, portable and open specification and runtime for container-based solutions.
It sounded great, but there were many management and technical problems to overcome before containers could really be standardized. While some of the tech details still need to be hammered out, the OCI is working on those those vital administrative details.
In addition, a Technical Developer Community (TDC) has been formed for the project and includes independent maintainers as well as maintainers from founding members including Docker, CoreOS, Google and Huawei. The TDC maintains the project and handles both the runtime and specification releases.
The OCI and the TDC will appoint a Technical Oversight Board (TOB). The TOB will work closely with the TDC to ensure cross-project consistencies and workflows. The governance model also includes a Trademark Board to oversee the OCI's trademarks and certifications.
This is all vital because this time last year, it looked like we were heading for container fragmentation. CoreOS has broken with Docker and was setting up its own container format. Historically, this kind of standard fragmentation delays a technology's progress and adoption. The Unix wars in the late 80s and early 90s exemplify this kind of strategic mistake. Fortunately, the containers companies were wise enough to avoid walking down this road to disaster.
Back in June 2015, when the OCI companies joined forces, Docker donated the draft specifications for the base format and runtime code along with a specification reference implementation. Since then, there have been two releases of the specification and no fewer than six releases of runc.
Runc is a a lightweight universal runtime container. It's also a shell tool for spawning and running containers. OCI is making great practical technical progress. Docker will be integrating the latest version of runc into future releases of Docker and Cloud Foundry has implemented runc as part of its Garden Project.
Looking ahead the OCI new technical committees will be working to ensure that the technology aligns with the following values:
- Composable: all tools for downloading, installing and running containers should be well integrated but independent.
- Portable: the runtime standard should be usable across different hardware, operating systems and cloud environments.
- Secure: isolation should be pluggable, and the cryptographic primitives for strong trust, image auditing and application identity should be solid.
- Decentralized: discovery of container images should be simple and facilitate a federated namespace and distributed retrieval.
- Open: the format and runtime will be well specified and developed by a community to ensure code development drives specification development.
- Minimalist: The OCI Specifications aim for simplicity, to ensure stability, optimize innovation and encourage experimentation.
- Backward compatible: OCI Specifications and OCI Projects strive to be as backward compatible as possible with prior releases.
In a statement, Jim Zemlin, the Linux Foundation's executive director, said, "This level of industry support illustrates the prevalence of container technologies across IT infrastructures, much in the way we saw with virtualization 10 years ago."
Virtualization, as we all know, became the technology that runs our data-centers and enabled the cloud to come into being. Who knows where open-source, standardized containers will lead us?