Configuration management is the process by which a company or organization defines and tracks the state of its infrastructural resources. Encapsulated in those resources are both physical hardware and software. It is a means to ensure that when changes are made to a system, those changes are tracked, geared toward the ultimate predefined criteria of what state should be.
Further, the automation of configuration management is integral to building and maintaining more complex systems. To understand the importance of configuration management in today’s complex technological ecosystem, it is useful to imagine what the inverse entails.
Consider a web-based service that has an environment comprised of multiple server instances. Some servers are responsible for serving web traffic, others for load balancing, a database node, a caching node, and more. This web service has a single System Administrator responsible for maintaining these servers and the uptime of the application.
One day during a particularly high-traffic event, users begin to report occasional error codes from the service. The System Administrator begins troubleshooting and realizes that one of the web nodes is no longer serving traffic. While troubleshooting one of the unresponsive web nodes, the other web nodes in the system begin to overloaded with traffic. A domino effect ensues, and suddenly, users are unable to access the service at all.
The System Administrator realizes that the web node that went down first has filled its disk to capacity. They quickly remedy the issue, bringing it and the other web nodes back online, and everything begins running smoothly again. However, they notice that the disk on the original web node that initiated the cascading failure continues to fill up. After further investigation, the System Administrator determines that verbose logging for some of the services is enabled. This setting is determined to be the root cause of the servers disk full error. They adjust the system configuration to turn the feature off, and the high-traffic event continues without issue.
Usually, the verbose logging feature is enabled to troubleshoot an issue. The fact that it was not turned off resulted in downtime for the application. If the application had proper configuration management and automation in place, the web node’s desired state would have been enforced, and the incident likely would not have occurred.
#tutorials #ansible #ci/cd #code #container #developer #devops #git #linux #monitoring #nodes #parent #parent server #platform #tools #vagrant #virtualization #vmware