On February 25, 2017, OCI Maintainer Meismiao delivered the Container Standardization Introduction in New Version, New Vision. IT Tycoon said (ID: ITdakashuo) as the exclusive video partner, by the sponsor and speaker review authorized release.

Read the word count: 1339 | 4 minutes to read

Guest Speech Video Address:suo.im/4rnosY

Abstract

This speech is mainly about Container standardization. I hope that more people can understand Container standardization through this sharing. If you are interested in containers, you can join the OCI community.

Basic Knowledge

Container technology has been a hot topic in recent years, and more and more companies are proposing container-based solutions.

I personally see containers as a system level lightweight virtualization technology. Literally, a container provides a space for resource isolation.

Container technology has an obvious natural advantage over virtual machine technology in terms of resource savings. Because there is no Guest OS, containers start up faster than virtual machines and consume fewer resources.

But based on what we know about container technology, it is not a new technology, it has a long history.As you can see, container technology can be traced back to the very old Chroot in 1979, but it hasn’t been as popular as it has been in recent years. The main reason for this trend is Docker technology, which appeared in 2013.

Why did Docker spark the boom in container technology? Previous container technology is not suitable for migration between different hosts and platforms, and it is not so convenient to use, but Docker solves this problem.

The problem

As more and more companies get involved, each vendor comes up with its own container technology or container solution, resulting in technical barriers like popular Docker, Rocket/ RKT, OpenVZ/Odin, and Hyper all having their own technical standards, which inevitably makes the entire container ecosystem seem fragmented. Our container standardization is designed to solve this problem.

Users do not know by what criteria to measure which technology vendor provides the best container technology. Because different manufacturers rely on different systems and cloud platforms, the system will be overly dependent on the cloud services of one manufacturer, and it will be difficult for users to transfer from one manufacturer to another.

Goals of container standardization

The goal of container standardization is to standardize container technology, guide manufacturers to develop container technology in the same direction, and guide users to choose more favorable container technology.

OCI Introduction

OCI, the Open ContainerInitiative, is an Open source organization launched on June 22, 2015 and currently operates under the Linux Foundation.

The main purpose of OCI is to provide a unified standard for the runtime or format of containers, and currently there are about 47 vendors involved.

The OCI community is primarily responsible for creating a runtime standard first, and for receiving, managing, and enhancing open source projects related to the standard.

More information about the OCI can go to http://www.opencontainers.org to understand.The diagram above shows the basic flow of Docker running a Container, which can be simplified to a few concepts below.

The first is that a container needs a bundle to run. The bundle contains the root directory that the container needs and the configuration files that the container needs to run. Then a Runtime parses the contents of the Config configuration file and mounts the root directory to generate containers to run the programs that need to be executed in the configuration file. At the same time, in order to facilitate the compatibility transfer of containers on different platforms or architectures, a container image standard is proposed, which can be converted between image and bundle.

Based on the concepts of Image, Runtime, and bundle, the OCI community currently manages five open source projects.

Runtime-spec: a standard that defines the Runtime standard required by the container to run and what is required in the container’s runtime Config configuration file.

Image-spec: The standard responsible for managing open source container images.

Runc: Runc is a Runtime implementation based on run-time spec. Runc allows you to create a container and is a runtime tool for containers.

Run-time tools: The Run-time tools is responsible for verifying that bundles conform to run-time spec and that Runtime is compatible with Run-time spec.

Image-tools: Image-tools is also a validation tool.

Future Plans

For runtime-Spec and image-Spec, we currently expect v1.0 to be released as soon as possible, depending on the pace of the community.

The main focus for RUNc is to support the development of CGroups V2. We hope to complete the development of runc configuration requirements for run-time spec and improve runc quality as soon as possible.

Future plans for Run-time Tools are to complete validation of Linuxcgroups configuration and complete the modification of Runtime Validation. Another key is the readability of the finished output. Runtime compatibility will be completed in the future.

At present, the main problem of image-Tools is that its three functions are scattered. We want its structure to be a unified lineup transformation like Runtime-Tools, and we also hope that image-Tools like Runtime-Tools can perform cross-platform verification.

That’s all for today’s sharing, thank you!