- Docker High Performance(Second Edition)
- Allan Espinosa Russ McKendrick
- 447字
- 2021-06-24 14:32:40
Importance of configuration management
The Docker Engine has several parameters to tune, such as cgroups, memory, CPU, filesystems, networking, and so on. Identifying which Docker containers run on which Docker hosts is another aspect of configuration. Getting the combination of parameters to optimize our application will take time.
Replicating all the preceding configuration items to another Docker host is difficult to perform manually. We might not remember all the steps required to create a host, and it is an error-prone and slow process. Creating documentation to capture this process doesn't help either because such artifacts tend to get stale over time.
If we cannot provision new Docker hosts in a timely and reliable manner, we will have no space to scale out our Docker application. Therefore, it's important to prepare and configure our Docker hosts in a consistent and fast manner. Otherwise, Docker's ability to create container packages for our application will become useless quite quickly.
Configuration management is a strategy to manage the changes happening in all aspects of our application, and it reports and audits the changes made to our system. This does not only apply when developing our application. For our case, it records all the changes to our Docker hosts. Docker, in a sense, accomplishes the following aspects of configuration management for our application:
- Docker containers reproduce any environment for our application, from development to staging, testing, and production.
- Building Docker images is a simple way to make application changes and have them deployed to all environments.
- Docker enables all team members to get information about our application and make the needed changes to deliver the software efficiently to customers. By inspecting the Dockerfile, they can know which part of the application needs to be updated and what it needs in order to run properly.
- Docker tracks any change in our environment to a particular Docker image. Then, it traces it back to the corresponding version of the Dockerfile. It traces what the change is, who made it, and when it was made.
However, what about the Docker host running our application? Just as a Dockerfile allows us to manage our application's environment in version control, configuration management tools can describe our Docker hosts in code. It simplifies the process to create Docker hosts. In the case of scaling out our Docker application, we can recreate a new Docker host from scratch easily. When there is a hardware failure, we can bring up new Docker hosts somewhere else from their known configuration. Configuration management enables us to manage our Docker deployments in scale.
In the next section, we will be setting up Chef as the configuration management system for our Docker infrastructure.
- 輕松學(xué)C#
- R Machine Learning By Example
- 返璞歸真:UNIX技術(shù)內(nèi)幕
- Visual C# 2008開發(fā)技術(shù)詳解
- 計(jì)算機(jī)圖形圖像處理:Photoshop CS3
- 大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)
- 奇點(diǎn)將至
- Silverlight 2完美征程
- 會(huì)聲會(huì)影X4中文版從入門到精通
- Photoshop CS4數(shù)碼攝影處理50例
- 電腦故障排除與維護(hù)終極技巧金典
- Apache Spark Quick Start Guide
- 探索中國物聯(lián)網(wǎng)之路
- 中文版Photoshop CS6數(shù)碼照片處理高手速成
- Learning Kibana 7(Second Edition)