Who Invented Containers?
For those who have been watching the container software technologies evolve over time, you likely know that IBM has often stepped up to help make significant, positive impacts to container technology and its related Linux underpinnings. I first wrote about this almost two years ago for a blog on the Docker website back in mid-2015, you can read it here.
While Solomon Hykes and Docker, Inc. deserve significant credit for their contributions which have jumpstarted the current wave of “container-mania” – they are quick to confirm that they based their efforts on more than a decade of community collaboration. I spoke about this at Container World back in February, and as the following image shows many firms have helped with the technical innovations that birthed the container movement we know and love today.
The above image is not an exhaustive list, nor is a direct evolution implied. OpenVZ (Parallels), Warden (Cloud Foundry), rkt (CoreOS), and others also represent container innovation.
Over the last few years, many IBMers have made significant contributions to both the Docker Project and the Open Container Initiative specification and implementation projects. Many thanks to Doug Davis, Phil Estes, Mike Brown, Julian Friedman, Christy Perez, Harshal Patil, Tatsushi Inagaki, and many others.
The Open Container Initiative Delivers v1.0 Specifications
This past week’s news is another significant milestone, as the Open Container Initiative (OCI) announced the debut release of its container runtime and image format specifications, comprised of Runtime Specification v1.0 (a specification for defining the lifecycle of a container) and Image Format Specification v1.0 (a specification for the container image format). Combined with efforts to create a formal certification program later this year, the OCI is bringing a set of common, minimal, open standards and specifications around container technology to a reality.
IBM helped establish the OCI, and you can read about its origins from my prior blog here.
The Certification WG, containerd and CRI-O
The OCI has established a Certification Working Group to develop an OCI Certification Program, which is currently a work in progress. The goal of the program is to build a certification process that allows OCI specification implementations to support a vendor-neutral process and requirements, including specifically, the ability for solutions to be certified on multiple operating systems and usable by multiple implementations. I currently serve as the co-chair of the Certification Working Group (along with my colleague Rob Dolin from Microsoft), as well as the Chair of the OCI Trademark Board.
Late in 2016, Docker announced containerd as another step towards efforts to ‘standardize’ container infrastructure. Building on OCI’s runc standard container execution functionality, containerd provides a feature-rich, production-ready core container runtime. As noted below, containerd has grown a wider scope than simple container execution: it now includes container image management, plug-ability for higher order runtimes, a gRPC API, and management of runc as the container executor.
Our friends at Red Hat have been busy in this space as well. CRI-O is a Kubernetes incubator project which is meant to provide an integration path between OCI conformant runtimes and image capabilities and the kubelet. Specifically, it implements the Container Runtime Interface (CRI) using OCI conformant runtimes. CRI-O uses runc as its default runtime to run Kubernetes pods.
What’s Next for the OCI & the CNCF?
At the end of 1Q 2017, Docker announced that containerd had been accepted by the Technical Oversite Committee of the Cloud Native Computing Foundation (CNCF) as an incubating project. The container runtime is just one component of a robust container management/orchestration architecture and containerd will provide a new option, implementing the Container Runtime Interface (CRI) to make containerd a first class runtime for Kubernetes pods. As to the scope of the CNCF, see the charter Schedule A for more information. A more detailed view of the landscape can be viewed in the Cloud Native Landscape by CNCF, in particular the “container runtime” section: https://github.com/cncf/landscape.
While the Kubernetes project is the anchor tenant of the CNCF, there are multiple projects that are gathering together to support “Cloud-Native” application development. For now, just watch this space for more exciting news to come.
IBM Bluemix Container Service Live in Sydney and London
On May 23 of this year, IBM announced that Kubernetes support is live in the IBM Bluemix Container Service. The IBM Bluemix Container Service combines Docker and Kubernetes to deliver powerful tools, an intuitive user experience, and built-in security and isolation to enable rapid delivery of applications all while leveraging Cloud Services including cognitive capabilities from Watson. Just last week, the team added Sydney and London to the growing list of regions covered, catch the latest details here.
Lastly, if you are a software developer looking for all the latest in Open Technologies from IBM and the open source communities in which we contribute and consume – check out https://developer.ibm.com/code/
There you will find everything you need to quickly solve real problems, compiled into Journeys: architecture diagrams, one-click deployment Git repos, and pointers to essential documentation.
Thanks for stopping by, follow me @jeffborek and DM if I can help you. Cheers!