Importance of Automation
What is Automation?
Automation can be understand as a way to manage repetitive task system administrator performs to have better time management at work and focus on other high value tasks to organization .Mostly these are done with the help of shell scripting, Perl scripting or python or any other tools or technique.
Why Automation or Importance of Automation ?
Automation not always reduce time to perform tasks .There are several advantages of automation’s are as follows
1. Better Time Management
Many things already automated at operating systems level in effort to make operating systems efficient. Still there is lot of scope depending upon your environment which can be automated. For installations of OS itself was tedious job earlier which can be automated solutions configuring setting up Jumpstart Servers for automated unattended installations of OS and post- install deployments according to environment specific installation for Solaris Deployment and similar implementations can be done for RHEL Kick-start. Many cloud providers also provide now a days provide such automation for faster deployments for instance AZURE ARM. Whole objective to save time in deployments which can be utilized in other major area of concern.
2. Avoid Mistakes
Humans are prone to mistakes so as system administrators. Performing same tasks over and over introduce chances of making mistakes. Most of the system administrators hate this. If things are automated with less manual intervention chances for making mistake gets reduced result in quality delivery with perfections.
If things are automated will allows all members in team can use the automation will result in teams productivity. With the help of automation, you can reduce a complex task up to one script like command and then same command or script can be used by any team member .Which will reduce dependency as well as it may need more senior member to perform that complex task. By automating that process, senior administrators can put all of their expertise into creating the right process that performs the right checks, and they can take off vacation with confidence that anyone else in the team now can perform the task efficiently.
Automation reduces documentation workload. Often instead of automating a task, a sysadmin team will spend time documenting a process. There is still an important place for documentation. For example if you automate entire process into a single automated task, you no longer need documentation because you’ve reduced it down to “run this shell script”. Because the process is now automated, you also know the process is kept up to date; otherwise, the script may stop working.
What to automate?
Even though automation is really good but things to keep in mind that everything cannot be automated. Below are the few scenarios when we can consider the automation.Following are a few different types of tasks that make good candidates for automation.
1. Routine tasks
Tasks that you perform frequently are good candidates for automation. The more frequent the task, more time-savings you get from automation. Good document will be enough for less frequent task.
2. Repetitive tasks
If a process is as a series of commands, and then copy and paste them one by one in a terminal and the task would be complete, that’s a repeatable task that may be a good candidate for automation. Something you may never have to do again aren’t worth the time and effort to automate mostly used shell scripts.
3. Complex tasks
More complex a task, the more opportunities for mistakes if you do it manually. If a task has multiple steps, in particular steps that require you to take the output from one step and use it as input for another, or steps that use commands with a complex string of arguments, these are all great candidates for automation.
4. Time-consuming tasks
Task that take longer time to complete, better candidate for automation. OS installation and configuration is a great example of this. For installations of OS itself was tedious job earlier and very time consuming and much manual intervention which can be automated using automated solutions. Setting up Jumpstart Servers for automated unattended installations of OS and post install installations according to environment specific for Solaris Deployment and similar implementations can be done for RHEL via setting up Kickstart and using post build scripts for any package installations according to organization requirement. Many cloud providers also provide now a days provide such automation for faster deployments for instance AZURE ARM. Whole objective to save time , improve quality in deployments and raising the productivity of team.
Summarizing the importance of automation, system administrators these days have lot of automation in place to do routine tasks, repetitive tasks, complex tasks and time consuming tasks as well and many tools available. Just to keep few things in mind if you are owner of automation as you write your automation, be careful to check that your tasks succeeded, and if not, alert the sysadmin to the problem. That means shell scripts should check for exit codes, and error logs should be forwarded somewhere that gets the administrator’s attention. It’s too easy to automate something and forget about it, but then check back weeks later and discover it stopped working so it is always recommended to provision error and completion logging.