Aim of using puppet, chef or ansible

859 views Asked by At

I read many article concerning Configuration Management, but I dont really understand on what this configuration is applied.

Is it on software himself ? Like, changing hosts in conf file etc... ?

Or on the app "host" ? In that case, what is the aim of using this kind of software, knowing that we generally use docker containers "ready to use" ?

1

There are 1 answers

0
Mxx On BEST ANSWER

You spent hours setting up that server, configuring every variable, installing every package, updating config files. You love that server so much that you named it 'Lucy'. Tomorrow you get run over by a bus. Will your coworkers know every single tiny change you made to that server? Unlikely. They will have to spend hours digging into that server trying to figure out what you've done and why you've done it.

Now let's multiply this by 100s or even 1000s servers. Doing this manually is unfeasible.

That's where config management systems come in.

  • It allows you to have documentation of your system's configurations by the nature of config management systems itself. Playbooks/manifests/recipes/'whatever term they use' will be the authoritative description of your servers. Unlike readme.txt which might not always match the real world, these systems ensure that what you see there is what you have on your servers.
  • It will be relatively simple to duplicate this server configuration over and over to potentially limitless scale(Google, Facebook, Microsoft and every other large company work that way).

You might think of a "Golden image" approach where you configure everything, then take a snapshot and keep replicating it over and over. The problem is it's difficult to compare the difference between 2 such images. You just have binary blobs. Where as with most config management systems you can use traditional VCS and easily diff various versions.

The same principle applies to containers.

Don't treat your servers as pets, treat them as cattle.