Docker ecological system and the future
Again correct concept: Docker not lightweight containers.It is made up of lightweight container engine management, client and AUFS file system of three parts.Lightweight containers (Lightweight Container) in the field of UNIX/Linux has experienced ten years of development, and in the last five years by leaps and bounds.
A lightweight container technology development
Before the analysis of the Docker ecosystem, we first review the development of lightweight container technology roadmap.
; In 2000, the BSD Jail: Jail in a variety of ways to improve and enhance the BSD operating
system used in the process of isolating the chroot environment.Jail not only access to file
system to realize the separation, but also to the user, the BSD network subsystem and
some other system resources in the kernel in isolation.
; In 2005, Solaris Containers: the realization of the Solaris Containers include two parts:
the Solaris Zones and the System Resource Controls.Zones to achieve the namespace
isolation and security access control.In the non - global process in the zone can not see
the process zone, also can't communicate with.The System Resource Controls to achieve
the function of Resource management.
; In 2005, OpenVZ: OpenVZ is open source software under the GPLv2 license, is based on
the Linux platform operating system level server resource isolation solution.OpenVZ
adopts SWsoft Virutozzo is the core of the software product is SWsoft company Virutozzo
provides business solutions.
These are the Container technology pioneer, the Container really started to popularize, driven by the following several landmark event.
; In 2007, since version 2.6.4 cgroups officially into the Linux kernel.
; In 2008, the LXC 0.10, simplify the creation and management of the vessel.
; In 2011, Linux developers agree on the unification of the container technical
; In 2012, the Cloud Foundry use WARDEN Container to hold the PaaS applications.
; In 2013, Google released open source container management tool lmctfy (Let Me
Contain That For You).
2013 is the year of container and the surrounding technology rapid development, which represented by the popularity of Docker, the following two iconic companies and their products.
; In 2013, the Docker version 0.10: Docker is PaaS provider dotCloud (recently has officially
changed its name to Docker Inc.) open source a senior LXC container based engine,
source code escrow on making, based on the language and follow the open source
Apache 2.0 protocol.Docker dramatically simplify the creation and management of the
container, the layered AUFS Docker mirror is realized.
; 2013, CoreOS: the established in a silicon valley garage startup company issued
specifically for large-scale deployment server custom Linux concise system, the purpose
is to run with the application of lightweight containers as the carrier to provide a highly
optimized the underlying system.
In 2014, a large number of around a Docker and CoreOS startups, newly open source software projects and large enterprises and Internet companies to join, the wave of the lightweight container technology to the next level.
Docker, by definition, is "the Container Engine", it is a cgroup, namespace abstraction of a Container to the underlying technologies such as Engine, provides users with create and manage the Container convenient interface (including the command line and the API).
Conceptual clarity, we first from the perspective of the dimension of technology stack Docker and its ecosystem, from Linux to do four levels stratified Docker.
; Linux operating system.Complete the Linux kernel, to perform the operation mission:
management hardware, scheduling tasks, user interface and service, etc.
; Container of the kernel.It mainly includes the cgroup, such as the namespace in the
Linux kernel, which the container (the user process) resource isolation, provides the
guarantee of the kernel level.
; The basis of lightweight containers.Through LXC tools such can complete basic operation,
such as container to create, start, but using LXC containers need to be familiar with the
kernel principle.It has the certain difficulty for the average user, and the LXC in different
; Container management engine.Docker is the leading role of this layer.Docker by Docker
engine and Docker of client.Docker engine will mysterious cgroup, complex LXC all
hidden, using a simple command can complete the operation and management of the
container.Another is unique in its AUFS apply, Copy on write mode of hierarchical file
system which makes the image can be as flexible as the building blocks of creation and
modification, and realize the increment distribution in the network.Docker client,
especially its API, provided above the Docker ecosystem development possibilities.
Docker appeared and standardization for lightweight containers as the core of the ecological system offers a chance for explosive growth.We from the following perspective Docker ecosystem.
The host Docker and container
Mentioned above the Docker Inc., and CoreOS have earn enough attention, investors followed, wholesale funding.Enterprise vendors such as red hat, Ubuntu unwilling lonely, have bright bright flag, choose sides.
In June in San Francisco DockerCon 2014 shows the Docker's ambitions for the future.The Docker engine gradually stable and standardization of the background, the Docker's future goal is to set new standards for Internet infrastructure.Open source libcontainer recently, libchan and libswarm three projects, blowing the signal of the battle.
; In the new version Docker engine, developed by the language libcontainer library has
replaced the LXC.I think it is the purpose of greater reverse define container, the
implementation of the standards will be the underlying implementation (perhaps no
cgroup Linux) abstraction to libcontainer interface.
; Libchan class libraries, in the form of standard interfaces solve the connectivity of the
container, realize cross-platform, better support for distributed systems and concurrent
; Libswarm is another very simple class libraries, but it will substantially promote the
innovation of the Internet application architecture.It abstracts the details of application
deployment and cluster management, gives the across a cloud platform for the
application and the Internet level of flexibility.
CoreOS the slogan of "A new way to think about the servers", this sentence illustrates their goal of transforming the Internet server.CoreOS by minimizing the customised version of Linux systems provide carrier for container operation.I once thought CoreOS and hardware closer union, is the development direction of launch based on ARM version, even integration into the server firmware.
CoreOS proved by the practical action, however my judgment error: on August 14, 2014, came the CoreOS acquisition Quay. IO and launching CoreOS Enterprise news Registry service.
Obviously, CoreOS work are not satisfied with the server layer, its target positioning in technical services for enterprise users with a complete container stack, provide the overall solution of large container cluster management.To survive in this category is a standard definition, they are the basis for the rest of the Docker ecosystem.
The image storage and container hosts
This includes a mirror image of Container storage and CaaS Container (Container as a Service) classes run hosting, representative of the company is StackDock, Orchard, Tutum, Quay. IO, Baremetal. IO, etc.
This several nearly all startup, they surround the whole lifecycle of the lightweight containers to design your own products, some focus on container image description file (Dockerfile) wizard im into and the optimization of the build process (e.g., StackDock), some
provide high performance, including the SSD, hosting environment (such as StackDock and Tutum), as well as the monitoring and elastic extension do article (e.g., Tutum), there are like Baremetal. IO that in view of the enterprise as a whole solution for company.
Image storage and running of the container managed are very close to the end user the Docker ecological system of a layer.Companies in this category may not be the fallacy of the technology, also is not a standard definition, but through their communication with the segments of the customer's long-term cooperation, accumulated the massive Docker commercial experience and practice.This layer has two merger cases: Docker buy-outs Orchard/Fig team and CoreOS Quay. IO.A bit like the big fish eat small fish?Let's take a closer look at the two company "eat".
Orchard Laboratories (good fantastic name, in fact only two employees) develop and maintain an open source tool called Fig.Fig is known as "by far the easiest way to orchestrate the deployment of multi - container applications", also known as "the perfect Docker companion for developers".Say simply, Fig based on the Docker, with containers throughout the software development process, rapidly isolated development environment.Fig allows users to write a simple Fig. Yml file list all the applications need Docker container, and how they are linked together.Written FIG. Yml, only need to add the -d parameter, the application will start running.This means that from then on, development, testing, operation environment is unified, container to become the new carrier for the software release.Above mentioned Docker's goal is to set new standards for Internet infrastructure, Fig to join to make this link for developers and development process greatly enhanced.
Quay. IO, the team to provide private Docker mirror warehouse (Image Repository) hosting service.Through the acquisition, CoreOS enhances the CoreOS Enterprise Registry service.Quay. IO only two employees.
On August 20th, came the Tutum. Co $2.6 million upfront investment news, they are big company in this field (seven employees), as CaaS platform providers, currently has 1500 developers to use its services.
Based on the micro Docker PaaS
Image storage (static) and container hosts (dynamic) are containers for the unit.Below we're going to be about to apply for the unit to a container for the underlying technology implementation of PaaS.
In recent years with the popularity of Microsoft Azure, Cloud Foundry respectively (I had the opportunity to participate in the two products in the Chinese market early promotion), the PaaS concept has been deeply rooted in the hearts of the people.Traditionally PaaS instances are general binding, and a specific IaaS platform provide deployment interface, load balancing, service binding and so on, yet Docker world of micro PaaS, on the basis of further innovation.This field is typically Flynn and Deis IO, they are all open source projects.
Flynn is divided into Layer 0 and two layers of Layer 1.Layer 0 mainly for abstraction of the underlying hardware and cloud platform, the distributed configuration, task scheduling, service discovery and other basic work, it provides the upper container operation environment with an abstract resource platform.Flynn can be quickly deployed on AWS, the future can also be extended to other public and private cloud.1 main service in the application Layer, is the concrete implementation of PaaS function Layer, it provides a basic management API and the client, implements the Git Receiver, Heroku Buildpacks, Routing, and Datastore PaaS core functionality.Layer 1 itself and its management applications, both for container carriers.
Deis. IO, it is a bright spot with CoreOS, undertake the task of the underlying resource management.In the deployment Deis PaaS environment, the first installation of the Controller will create a CoreOS system, then on its running Deis all components in the form of container.Support for CoreOS is a very smart choice, currently CoreOS already can run in multiple public cloud platform, virtual machine and the physical environment, it provides the Deis born across a cloud platform ability.
Flynn and Deis common characteristic, is the native support for complex and large-scale distributed applications.Heroku founder Adam Wiggins has published The famous "declaration of Twelve elements application (The Twelve - Factor App)", this statement defines The service way and The delivery of The software via The Internet should follow The Twelve elements.Flynn and Deis is a faithful follower of twelve elements, their micro PaaS platform and Heroku has excellent compatibility.
Micro PaaS startup emerge in endlessly, competition is very fierce, but maybe go to the last only a few.During this round container technology boom, the PaaS is affecting software development and operational processes, change the way the software delivery, standardization of twelve elements. These make the Internet application architecture.
Orchestration, Management, and Moni - t oring
Around the threshold of the Docker API for Web UI is relatively low, is sought after by everyone, this category includes DockerUI, Shipyard, maDocker, etc.They invariably call Docker apis and other class library, put the container management and monitoring is presented in a Web page, which to some extent reduced the enterprise network management fear of these new technologies.
This area has three must carry the Grosvenor LTD handsome project: Google Kubernetes, Cloud Foundry BOSH and Diego.
Kubernetes is built upon the Docker container cluster management system, Google will in June 2014 the project open source.It can provide users with cross-platform handling ability, can not only run in Google's infrastructure, to access other cloud computing server at the same time, such as AWS, and even a private cloud.
Once the system is open source, and get the IBM, red hat, Microsoft, Docker, Mesosphere, CoreOS and SaltStack manufacturers support: Microsoft will ensure Kubernetes in its Azure cloud as container and virtual machine based on Linux system normal operation;Red hat has introduced its own cloud products;IBM's plan is contributing to Kubernetes and Docker code;CoreOS in its operating system releases provide Kubernetes support;SaltStack trying to simplify Kubernetes operation deployment process in other environment;While the Mesosphere intends to join this technology into their own Mesos open source projects with the same.Google the kind of general wind.
Cloud Foundry BOSH is deployed and operational tool, it through the similar operating system driver's CPI (Cloud Provider Interface) to implement the support for a variety of heterogeneous Cloud platform and abstract, with an elegant way management VM template (note: in Cloud Foundry terminology called stem cells (stem cell) 】, software release (release)
and deployment configuration script file.BOSH recently launched a pilot project BOSH Release for Docker.
DEA (Droplet Cloud Foundry in its Execution Agent) used in the Warden based container technology for the application of PaaS isolation.Latest Diego (the language version of DEA) project goal is to let Cloud Foundry in across the runtime environment is more extensibility and the runtime environment includes Docker, may also native support for Windows Server.
The network layer of the enhancement and solution
How the connectivity between the container?Docker engine inline in the network can meet the needs of the enterprise level network?When a container like today's virtual machines in the large-scale deployment of the business environment, complex network requirements such as network configuration management, security monitoring, traffic QoS, network isolation would be forthcoming.
In a virtual world, these needs led to the huge network virtualization (SDN) industry, the environment, in the container with the same challenges and opportunities?In the field, more attention is currently Skydock and VNS3 open source project, but also are in bud early stage as a whole.
Who is the ultimate user of container technique
Listed above a lot of company and products, who will be the vessel technology end users?I think it will be a breakthrough in the following areas.
The Internet company
The development of the Internet company operational environment is complex, applications using distributed architecture, the background a wide range of use of the service,
these are the Docker best solve the problem.According to statistics, at home and abroad have a certain number of Internet companies to integrate the Docker into the development of internal testing process, and on the carrier of Docker published applications.The company used in the community to share their Docker combined with Jenkins do the case of continuous integration, such as seven cows emerging domestic Internet companies are also beginning to application Docker.
Throughout the SDLC (Systems Development Life Cycle) in introducing the Docker, especially enhance the container as the core of the continuous integration and the continuous delivery, will eventually container as the delivery of the software to the cloud platform entity.This aspect at present is not the transition of the overall solution, such as Shippable abroad, domestic startups such as Coding in this direction.
This is the most popular field of software development, social, Mobile, game MBaaS (Mobile Backend as a Service) has quite a few molding products.How Docker, micro PaaS combined with mobile application development, is another area of concern.