Automation - Why you should start
Automation is a thing, that is considered one key qualification when it comes to IT skills. But automation is not only for IT departments, it can be helpful in almost all work areas.
Addressing this topic is not as easy as you think. For this article, I will focus on the general idea of automation in IT processes.
The major improvement of automation is, that you can reproduce tasks over and over again. Installing patches? Deploying the same setup in development, staging and production?
All of this can be done automated, become repeatable and reproducible.
If you need to scale, you will face situations like setting up 100s of machines or restarting them. You need to patch them and install new servers or deploy the web shop application on many servers. With limited teams, it is not achievable to do all of these tasks manually over and over again. Even growing the team has limits, since new colleagues must be onboarded, trained and enabled.
In case you want to scale your infrastructure, you will need to automate something.
"Dear IT department, could you please do this and that for me?" is a typical ticket one will face now and then. Many of these requests can be automated and the requester must open a ticket. Ever thought about providing a self-service portal for "please open firewall for port xx and yy" or "please provide a vm with this and that"?
This is something automation can do for you, including approval steps, notifications and change management tracking. Fewer tickets = more time to focus on important work.
Ever been in a meeting with 50+ people discussing changes? Ever been the person responsible for a huge change with a ton of risk? Ever been in the situation, that the somebody of the team is on vacation, and he is the only one who knows how this exotic CRM works?
If you start automating things, you will produce code, that can be tested, reviewed and enables everybody to work on it.
Automation is a great solution when it comes to repetition. Ever wanted to schedule a task at a given time? Ever wanted that some actions happen after you have done another thing (event driven)?
Automation will help you to create this nasty report every month, update your servers every week and inform your social media followers if a new blog was published.
This one machine, somebody setup ages ago is crashed and nobody knows how it works and why it's broken. Even worse, nobody knows how to migrate the data or re-do the setup. Missing documentation is a thing everybody is facing now and then.
With automation done right, you will produce not only code, but also documentation, that describes this code. So, you will know how this setup was done and how to reproduce it.
Let's be honest, nobody wants to be the one person that pulled the wrong cable or pushed the wrong button. Wherever humans work, you will see human errors. This is ok, this is normal and this helps to learn. It's just natural, that humans will do mistakes. But we should learn from each other and provide code and documentation for others, so the same issue does not happen again.
With automation, you can avoid that the same mistake is done multiple times and conflicts and risks are more predictable.
Automation can help to scale, avoid human errors and create documentation and reproducible setups. It can be helpful for typical IT automation like regular server updates or even help you to publish your blog to various social media platforms.
This article also marks the start of my automation series, starting with Ansible.