How many times have you been faced with the same boring process of onboarding a new user, or building a server that was just like the last hundred that you built? And how did you feel the last time you built a script that does a repetitive task for you and saved you time? Both of these you would think are a dichotomy between long boring repetitive tasks and drudgery to the satisfying and pleasing knowledge that you now have more time on your hands for other things. I suggest these are just two points on the same path. One is recognizing a problem and the other is the resolution. Automation, when used properly, is an efficient and cost-effective solution to tasks that are repetitive and ongoing.
Automation has gotten a bad rap in recent years. Some people believe it as a tool to start the outsourcing procedure. Others think it will decrease personnel knowledge on how to perform these tasks themselves. These can be valid points at times, but I can bet that almost all of us at some point in our careers has found a process that we found painful, slow, error prone, and repetitive and turned it into a scripted process that saved time, money, and especially our own sanity.
Our time is precious in our chosen careers and we are constantly being asked to do more with less. When I first heard that idea I thought “How could you possibly do more with less?†So, being the young naive person that I was at the time, I just worked longer hours. A few years after I started down that path, I hit a wall. That wall was a complete dissatisfaction in my job and where I felt I was going. That’s when I started working on automation. They were just simple scripts at first, but these scripts allowed me to cut my time to deploy infrastructure in half and make my work more consistent.
One of these scripts was a simple PHP script which took variables I gave it, and returned a drop in configuration that followed the standards for each of our devices and regions. I would input things such as device name, region in which the device was to be deployed, interfaces and their IP configuration, and more. From that it would give me a text file in which it had the standards applied to each interface, global configuration option in which were our standards
Another script that simplified my life was our firewall rule automation script. This two part script would first be run during the day with all of the firewalls that had changes. It would verify that the compile of the rule base would complete without any errors, and it would then schedule the second part of the script to automatically push the rules at a specified time during that following night. It would email out results about the policy push to our network operations center, so that if there were any errors they could begin troubleshooting procedures and make any possible calls outs. This saved our engineers an hour each night for policy installations.
Each business and professional has different needs for automation. Some of these include, but are not limited to the following:
- Repeatable Outcomes
- Process Standardization
- Faster Delivery
- Increase Customer Satisfaction
- Reduce Errors
- Reduce Costs
- Increase Employee Availability
Now, not everything can be automated. Automation takes time for the process discovery, knowledge on how to best perform the task, and the skills to program. Before you can automate a task, it needs to be a clearly defined framework. I don’t mean at a high level. It needs to be defined at each and every step what is expected to be done and the possible outcomes. For example, let’s go back to my new user example. Every new hire needs certain things; a laptop/desktop, network logon, access to all the appropriate systems, an email account, remote access VPN, etc. This is a clearly defined process that can be automated. Automating this allows a user to be functional within a day to possibly a few hours, with most of the work being paper trail for auditing purposes.
Cost is the biggest reason for automating and should be the first consideration when you are looking into it. The benefits need to outweigh the costs of the implementation and maintenance of these processes. Maintenance can be costly if you are constantly making changes to your processes, because it requires keeping people who are skilled enough to understand the process and how to program it so that it functions properly. On top of that, automation requires a higher level of quality assurance testing to be done to assure that the outcomes are what you’re expecting. Remember that when you automate a task, most people are expecting as good as or better than their human counter parts.
Do I think automation is awesome? Do I think automation is the miracle cure for IT woes? Yes, No, and not really. It depends on the situation, as some automation can just add complexity if not done properly. But with proper understanding and investigation as to what you can automate in your infrastructure, you can help your company save money, respond with agility to changing markets, and improve your own work experience. Doing so will allow you to expand your horizons to the new and exciting things that are coming out in IT every day.