Red Hat, one of the early Linux pioneers and the first billion dollar open source company, is taking on another pioneering role in enterprise software by putting forth the idea of creating standards for containers. To that end, Red Hat is pushing the development and the adoption of four key standards areas within the Linux community: isolation, packaging format, orchestration, and distribution.
This first standards area encompasses isolation of containers via control groups (cgroups), kernel namespaces, SELinux, and other capabilities that form the backbone of most Linux distros. This capacity for isolation is one of the primary reasons that containers are so valuable in enterprise computing.
Packaging FormatThe second container standard that Red Hat has helped push is Docker as an accepted packaging format. Docker gives developers the ability to package an application with all of its dependencies included and in a single image that can run on any operating system. Red Hat's hope is that the community and supporters alike will embrace Docker as a standard format instead of allowing fragmentation into various competing formats.
This would bring about quicker development because everyone's energy would be invested in a single format and would allow developers to focus on application security, for example. The single format concept would also help enterprises maintain consistency in their environments--consistency in security, in deployment exercises, in supporting application life cycles, and in application management.
"The core tenets of container infrastructure are the primitives for creating, distributing, running and managing containers, and we work towards avoiding fragmentation at this level, with the end goal of enabling innovation and customer value and delivering an answer to businesses concerned about adopting an "emerging" technology like containers."
Red Hat is pushing Kubernetes, Google's orchestration framework as the standard method of multi-container application management. Red Hat likes Kubernetes as the application management framework of choice for the following primary three reasons.
- Google knows how to build large applications, so Red Hat wants to leverage that knowledge and not reinvent the wheel.
- It's open source and Red Hat is the second largest contributor to the project. Google is the largest.
- It has the flexibility and extensibility needed to provide a consistent orchestration standard across many different environments including private, public, and hybrid clouds.
DistributionFinally, Red Hat wants standardization in container distribution. I assume, although Red Hat didn't explicitly mention it, that it wants a vetted Container Store of sorts--one that's perhaps distributed (no pun intended) across many different sites, but standardized in such a way that it is always available to consumers anywhere in the world.
I agree, having an "Apple Store" for containers is a good idea. I hope that Red Hat's standardization also means that there will be some sort of testing and vetting process that accompanies this service to ensure that containers are safe, secure, and of enterprise value--meaning that they are inspected and don't contain malware, junkware, or vaporware that annoys and costs businesses money.
In my opinion, Red Hat is on the right track here. I'm sure that Google will stand behind this effort. I'm hoping other large companies, respected in open source, will get in line as well. Now that the open source community and open source technology are mainstream and no longer on the fringes or hidden under desks, we can move forward with standards that make us and our technology better.