Over the past decade or so, the host management community has adopted automated config generation and management as a means for maximizing scalability, maintainability, and reliability. Much of the recent research in the system administration field has focused on automation. It's now commonly accepted that a well-run organization doesn't manage 10,000 servers (or even 10 servers) individually, but rather uses tools like Puppet or cfengine to manage definitions of those servers and then create and update instances of those servers as needed.
Unfortunately, most organizations are still manually configuring (and reconfiguring) each of their network devices, which is inefficient, error-prone, and difficult to scale. By applying automation principles and tools similar to those that have been developed in the system administration field, savvy organizations can make their networks more cost effective, more reliable, easier to scale, and easier to maintain.
Luke A. Kanies, the creator of Puppet, identifies the following key benefits from automated configuration generation and management:
We believe that if your goal is to offer a reliable service, these are essential requirements, not merely nice-to-have benefits.
For example, let's say you're managing a moderately complex web site which includes several real and virtual hosts, and associated networking gear. In addition to the hosts themselves, you need to manage config files for all of the following:
Now, let's say you want to add a new virtual host to an existing load balancer pool on your network. What steps do you need to take, beyond configuring the host itself, to get it fully integrated into the network?
If you're doing this the old-fashioned way, by hand, this takes a fair amount of your time, to figure out exactly what changes need to be made to each system, and then make those changes. Furthermore, every one of these steps is an opportunity for something to go wrong. You might make a typo. You might accidentally skip a step, perhaps because you got interrupted. You might accidentally change something else in the config file while editing it. You might get called away to some other more urgent task, and forget to complete the steps (how many times have you seen monitoring systems that are incomplete, simply because somebody never got around to updating the monitoring config as the last step in setting up some new host or service?).
Over time, these small mistakes add up, leading to inconsistent networks which are unreliable and hard to troubleshoot.
By automating the configuration of your network devices and services using tools such as Netomata Config Generator (NCG), on the other hand, you can simply add that host to the model of your network, and in seconds NCG will generate new config files for all your managed devices and services that are consistent and complete across all of the devices and services. You won't have to worry about making a typo while configuring one of the systems, or about getting interrupted and forgetting to finish configuring all of the devices and services. Thus automation will make your network more cost effective, more reliable, easier to scale, and easier to maintain.