Docker in action: a history of struggle

Some time ago, an article titled "Docker in Action : A History of Failure " caused an uproar in the 2B circle. The subjective will of the author of the original text is unknown. Of course, we are not fans of the motivation theory. As an ordinary container technology entrepreneur, let’s talk about our Docker combat: a history of struggle .

Docker is not a new technology. If you have used other container technologies before, it will be easy to get started with Docker; there is no problem if you don’t know container technology before, but you need to understand some container thinking before you use it. Just like before using a smart phone, it is not necessary to use a non-smart phone as a foreshadowing.

A set of tools centered on container management launched by Docker is a continuous improvement based on the existing technology (LXC, and with the help of the design idea of ​​SCM), so Docker is not a new technology, its innovation lies in At the ideological level , it can be summed up in the following points:

1. Packaging (encapsulation)

Docker uses container technology to package software code and environment in an image, which is its technical feature. From an ideological perspective, it changes the way software is delivered, allowing software producers to deliver the software to end users with absolute consistency . In layman's terms, container technology completely isolates the running of the software from the environment.

Let me give you an example:

Everyone has used the Windows system. Since the advent of Windows, Microsoft has spent more than ten years until Win7 basically solved a problem that has been plaguing for many years - the isolation of shared dynamic link libraries . Simply put, it is to isolate the dependent files of each software so that they do not affect each other.

How did the problem arise?

The software is written by different companies, but the library is shared. Therefore, with the release of the software, the software manufacturer will package and release its own dynamic library and install it directly to the user. Don't forget that this is a shared library. Software A uses version A, and software B uses version B. In the end, our lovely operating system was crashed into a blue screen because of installing some software, and it fell to the point of reinstalling the system once a month on average. in the cycle.

Microsoft's shared link library isolation, to put it bluntly, is to reduce the dependence of software on the system, but Microsoft has not been able to achieve complete isolation for so many years.

But in 2013 Docker did it, it used a clever way to package software and dependent files (environments) into packages (images). When I saw this way of solving software delivery problems, it felt like an emotional wind was blowing in my heart! "Docker knows our developers too well". When I conveyed this method (thought) to the operation and maintenance brothers, the confused eyes of the operation and maintenance brothers suddenly flashed a lightning, and threw out a vicious sentence: "I *harmonious and harmonious*, no longer have to toss the environment again and again! "

2. Isolation

New technologies are all "grown" on old technologies. Docker was first based on LXC technology and made technological innovations, but the evolution of any technology is related to the time point at that time. In 2013, virtualization technology is gradually maturing and is in a period of rapid growth. The industry is vying for market share around virtualization technology, in order to seize the banner of cloud computing.

But virtualization technologies are technologies that "grow" on physical devices. It essentially optimizes the efficiency of the use of physical devices. It misses the point of cloud computing. However, with the emergence of container technology represented by Docker, it is not a product in the same dimension as virtualization technology. Container technology solves the problems of software delivery efficiency and cost, and it directly reaches the final demands of users. Isn't the ultimate purpose of cloud computing to improve product delivery efficiency and reduce delivery costs? Virtualization technology provides soil, and container technology can blossom and bear fruit!

Since it is isolation, the isolation of container technology only needs to ensure the isolation between the software and the host. Talking about poor isolation, students who use containers as virtual machines may need to adjust their thinking.

Everything has its applicability, and so does technology, "Don't look like a nail just because you have a hammer in your hand."

3. Post

As of now, image repositories are arguably Docker's greatest invention! It manages the version of the image in the form of a code repository, and supports the release and distribution of the image through Push/Pull, which provides a carrier for software delivery .

We have already felt the convenience of code management and distributed development, and the mirror repository provides us with software version management and global distribution. Think about the ways we've been through, and are experiencing, acquiring software! You use it or not, the mirror repository is there.     

In addition, the global docker strike will have an impact on the production environment of the enterprise, especially the scenario of the Internet financial company mentioned by the author of the article "Docker in Action: A History of Failure". I think this problem is good for everyone. This should be the author's joke.

 

Our struggle history [brief and subjective]

At the beginning of 13, we started to touch Docker. At the time of its launch, Docker was still an experimental product, but it was fully testable. Please pay attention to the words complete and complete here. Although Docker is a new product, it has been proved that there is no problem in the test environment, so we try to use it in the production environment.

At the beginning of 2014, the company internally developed a set of container management system, which is used in the production environment of internal development and some services, which once again proved that there is no problem in the production environment. (Note: We have applied containers to the production environment in March 2014. At that time, the Docker version was 0.9.0. The scale of our production environment was 4 2U HP servers with 32G memory. No online incidents occurred. )

In April 2015, we started a business from our previous company, and used three years of experience and products that have been iterated on for commercialization. The final product for users is the application management platform based on container technology. Why can we give up everything we have and devote ourselves to starting a business with a technology that has only been around for 2 years?

One is because we have seen the future development direction and discovered another dimension of the market. Container technology can truly give full play to the simplicity and efficiency of cloud computing.

The second is to consider that there are still many friends and companies who are trying to fill the hole, in order to let them enjoy the dividends brought by cloud computing and container technology more quickly ("A History of Failure" just verifies our idea).

 

Epilogue

Problems that can be solved with money are not technical problems as long as there is an idea to solve them.

 

Zhou Yueqiu, the author of this article, Co-founder of Haoyu

The article mentioned "Docker in action: a history of failure"

Original link: http://t.cn/RVFtYi9

THEHFTFGUY “Docker in Production: A History of Failure

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325848958&siteId=291194637