For a project to be considered the best, it needs to foster innovation by establishing itself as the benchmark standard for the problems it solves and accommodating the different needs of the project contributors. For a project to achieve such a status, it needs to adopt open standards. It is best practice that standards are openly developed involving the project community instead of a few people developing them and imposing them on the project community. The process is devoid of commercial influence. Decision making is grounded in merit of the idea and authority of contributors that has been earned from demonstrated competence.
One benefit of standards is they reduce the risk of technology disintegration and improve the ability of a project to operate in different environments. Another benefit of standards is committing code follows a broad objective instead of a narrow goal that only meets the needs of a specific developer. It also promotes wide adoption of the project, where management and security are key concerns. Open standards enable environment independence and technology consistency to protect investments.
Due to the popularity of containers dialogue within the community led to development of Open Container Project (OCP) which was later renamed to Open Container Initiative (OCI) as an open source and vendor independent framework. The motivation of developing OCI was the creation of one container standard having a light organization structure and a definitive model. The main objective of OCI was establishment of a standardized runtime and an open format to be used on containers. A list of OCI members and their commitment to open standards can be found here https://www.docker.com/docker-news-and-press/industry-leaders-unite-create-project-open-container-standards. There are three principles that truly make OCI open and they are listed below:
• OCI is not strongly connected to a specific commercial vendor or project
• OCI is not locked to a specific operating system, cloud infrastructure, hardware or CPU specification
• OCI is not bound to a specific client or technology
The above principles are critical in ensuring the success of container open standards and preventing them from being taken over by a commercial vendor or falling to obscurity. Although Docker is a well known container solution there are other competitors such as CoreOS and Google, among others. The OCP standard is founded on Docker runtime and format and Docker has provided the code and specifications.
Within the container community there are four standards that are of importance. These standards are isolation, packaging format, orchestration and distribution.
Isolation of containers is enabled through cgroups, kernel namespaces and other features that comprise Linux, container and PAAS backbone. The value of containers within the enterprise is from isolation.
The packaging format standard aims at enabling packaging of an application together with its dependencies in a single image. By focusing on one format, collaborative effort is directed towards a single format instead of multiple formats. Focusing on a single format for developing, distributing and other lifecycle needs benefits clients, vendors and support sservice providers.
The distribution standard specifies how container content will be exchanged, consumed and published. The architecture elements in this standard are container registry, container repository and container index.
The final standard is orchestration which is concerned with resource management across different hosts and enable the connectivity required. Kubernetes is one of the orchestration solutions available.
The greatest interest among practitioners who need standards, lies in the core format and runtime. Outside the core format and runtime interoperability and openness is reduced when performing cluster management. Available cluster management solutions include Kubernetes, Docker Swarm, CoreOS Tectonic and Apache Mesos. We will briefly discuss each.
Kubernetes manages containers to make them scalable and resilient. There is conflicting data on the adoption of Kubernetes and Docker. Some sources show Kubernetes has a larger presence while other sources show Docker has a larger presence. Because enterprises will look at the level of adoption of a standard in order to make a decision, conflicting data complicates the decision making process.
Docker Swarm offers similar capabilities to Kubernetes such as container management and scaling. Docker swarm is packaged less as a standard and more as a product.
Tectonic is simply Kubernetes provided as a service on Amazon Web Services or alternatively as an on-premise solution.
Apache Mesos can be used in conjunction with Docker for scheduling and providing fault tolerance. Mesos exposes its dashboard through a web interface and it is an excellent choice when scalability is a core concern.
To reap the real value of standards, you need to distinguish when it is relevant to be open and when there is no relevance in being open. When migrating your applications to containers, standards will not eliminate all the challenges you are likely to face. The most visible difference when applying standards will be at the core. The leading platforms of Docker and CoreOS are moving towards format and runtime standardization, which is beneficial to the container community. Outside the core you need to decide if your cluster management needs are met by an open source or proprietary solution. Besides cost considerations, you also need to factor in ability to support and update the selected technology. Therefore, it is best practice to first understand your needs before adopting standards.
In this post, we identified the characteristics a project needs to meet when adopting open standards and highlighted the best approach when developing an open standard. We discussed the benefits of adopting open standards. We discussed the principles that make OCI open. We discussed the four standards that are important in OCI. Finally, we discussed available cluster management solutions and the best approach when adopting standards.