Don’t get me wrong, I love automation, I automated a lot of setups and configurations in the past, including:
- The setup of hundreds of servers
- software deployments
- the installation and maintenance of my notebooks, desktops and raspberry pis for home control
I started my career without any of these tools, like ansible, puppet or stuff. We used bash and python scripts to automate routines that appear everyday…
What’s the problem with automation?
Like I told, we dont’ worked with these tools from the beginning, so we did a lot of the things by hand first, without just hitting ‘ansible do-all-the-stuff’. It took longer, sure.
But after setting up the services ourselves, we know how every piece of the system works. And the more important thing, we know how to fix the system.
I am not saying you shouldn’t automate, automation is great. But I met lot of people who rely on their automation system, to do all the stuff for them. They don’t know how to search for errors or fix them, because they don’t know how to setup the system without configuration management tools.
If you setup a service by hand, then you got the knowledge how to tweak the configuration and you get a better understanding and feeling for the service.
You’re not looking at top or ps, ander wonder why three processes are running for dovecot. You know why the service is running, because you configured it, not ansible, not puppet.
So, what should I do?
You should automate all the things! No, nothing is wrong with me, I am not schizophrenic.
But before you automate the deployment, the installation or whatever, make sure you did it once per hand. Then you got the knowledge and the feeling, how the service works and why it works like that.
If you have to setup a 100 node mail or database cluster, with sharding or other crazy stuff, you’ll be glad if you know it works in the background.
What do you think? Drop me some lines in the comments!
Thanks for reading and be sure to follow me on twitter or similar! Have FUN!