Docker Container technology is so fast that many developers can't keep pace, andDocker is not only one of the most popular open source projects ever, but has also revolutionized the way people build applications. In fact, Docker is based on LXC(Linux Container) container technology, through kernel virtualization technology (namespaces and cgroups and so on) to isolate the container, the container runs the same time as the host on the previous process, no additional operating system overhead, resulting in Docker isolation, portability, and lightweight features.
With the release of Kubernetes and related management tools,Docker container technology and supporting tools are becoming more and more perfect. As early as the year, we have introduced Docker to the Lenovo Enterprise Cloud development process. Lenovo Enterprise Cloud provides cloud storage services to enterprises, enterprises pay more attention to reliability and stability, so after extensive research and extensive testing, decided to apply Docker to the actual production environment. In addition to some of the features mentioned above, we share the benefits of Docker in the actual development process.
1. Continuous integration to enhance development and test iteration capabilities
The traditional development test process is code-driven, the developer submits the code to the code base, the tester goes from code to code, and then tests in the simulated environment, which allows the test and the developer to see the same code, but the configuration becomes a problem due to environmental changes, which is less efficient. After the introduction of Docker , we can drive the image to the development and testing process.
During the actual development process, each day the developer develops according to the requirements and problems of the product, and then commits the development to the Code warehouse. After that, the system automatically calls the build service, automatically compiles the code in the Code warehouse, then consolidates the compiled program into the underlying image, generates an executable image, and then runs the executable image for automated testing, primarily running the system's test set, and detecting whether the executable image is qualified from the logical and business levels. After validation is passed, the image is pushed to the mirror warehouse and the new version is published. After the testers receive the new version of this notification, pull the corresponding versions of the image from the mirrored warehouse, deploy the tests, test the specific features and issues, and then feed the test results back to the developer. This development process enables developers and testers to focus on specific needs and issues, increasing the ability to update versions iteratively and quickly advancing the project's progress.
2. isolate environmental differences for easy tracking and commissioning
In the traditional development model, the code from the developer's environment to the final deployment of the production environment, need to go through a lot of intermediate environments, each of which has its own differences, resulting in a lot of differences between the development environment and the build environment. Once a bugoccurs, it often takes a lot of time and effort to solve the problem of inconsistent environment. With Docker, both the development environment and the build environment use the same image, and the application runs in the same environment, which simplifies the management of the Code pipeline and makes it easy to track issues. Docker also offers a number of features, including the ability to set checkpoints, set versions, and view the differences between two containers, which can help debug bugsand quickly locate bugsfor targeted repair and refinement.
3. rapid deployment, continuous delivery
Deploying distributed systems on virtual machines or physical machines is often time-consuming, even for the fastest virtual machines, up to 1 minutes or so. Docker 's virtualization technology in the creation of container processes, usually seconds of time to complete, greatly improve the efficiency of deployment, and this method of deployment of the system is more reliable.
4. customized and version upgrades are easy to handle
Lenovo Enterprise Cloud for enterprise users to provide customized requirements services, each enterprise will have its own independent custom services, if the traditional way to deal with custom services, will take a lot of time and effort to deal with the environment and the application version control. Using docker container technology can easily respond to enterprise customization requirements. Because docker container is one of the characteristics of the application and data separation, you can keep the data unchanged, the application upgrade. In practice, we first upgrade the private image warehouse inside the enterprise, then the mirror of the other machines is synchronized with the private warehouse, then the new container is started, and the whole distributed system is upgraded. In this way, developers do not care about the enterprise's network environment and version management, as long as the focus on the development of customized requirements, not only improve the efficiency of research and development, but also increase the ability of enterprise customization services.
existing management tools, such as kubernate , are not easy to use, especially for small and medium-sized operators, which are more difficult to operate. If you use these management tools directly, you will not be able to connect with our products on the one hand and affect the experience of our private cloud products on the other. So in order to meet the above requirements, combined with the characteristics of Lenovo Enterprise Cloud storage, we developed a set of management system, the main modules and functions. This management system incorporates docker Automated deployment, dynamic configuration, automated monitoring and alerting, and dynamic capacity expansion, which are simple to operate and very easy to use. Developers, testers and operators can be very convenient to use this system, our enterprise customers with our management system, are easy to get started, coupled with the ability to monitor and alarm systems and containers, they think Lenovo Enterprise cloud storage products more reliable, use it more assured.
Docker Container technology easily solves the challenges of inconsistent development environments and build environments, freeing developers, testers, and operations personnel from the complex deployment environment to focus on what they care about, reducing human and material costs and increasing productivity. Docker Container development so far, the corresponding supporting tools and solutions abound, in the specific selection, do not blindly pursue technology ' sophisticated ', to pay attention to their products and requirements, easy to use and stable and reliable often more important, which is also Docker A major reason for rapid development and promotion.
Source: http://blog.csdn.net/chenyanpeng2003
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Lenovo Enterprise Cloud Docker development Practice