What is automation?
The development of IT is properly the fastest developed industry in the past 20 years. Many reasons contribute to its fast development, such as high demand, heavy investment, and popular applications, and right technologies. Part of them boosting technology is the automation. Theoretically, automation can be a very general concept, which applies to different levels. For example, any widely used programming language today is an automated tool, which is usually easy to use and powerful in describing procedures. It is a type of automation, which finish more jobs within fewer lines. Resource management tools such as Mesos auto reschedule jobs when required. A well-configured server management console sends emails to an administrator when one side power is down. All these are examples of automation in IT.
Automation plays a critical role in IT practice.
- Automation means scalability in IT management. Nowadays, A traditional industry-based economy is transforming to an information computerization based economy. Everyone extends their capability by one or more computing devices connected to clouds. The scalability is a fundamental requirement for most (if not all) IT systems. I remember when I worked for Lucent, one engineer usually only needs to care several servers running fixed applications countable with one hand. These days, thousands and even millions of virtual instances are managed by an intermediate or large IT organization. Automation is the only way to manage such a big and growing pool of IT resources.
- Automation means efficiency. Manual operations are slower compared to scripts based operations. The slowness comes from several reasons. Manual operation cannot be parallelized; while script based automation can be paralyzed as much as possible. Even comparing one manual operation and one auto operation, manual operation suffers from Input/output delays, which is the time lag between an operations eye reading and figure typing.
- Automation reduces documentation overhead. Automation procedure itself (the scripts and dependent data) compose accurate documents, especially used together with git. Manual operations require extra efforts on documenting operations.
- Automation means reusability. Scripts can be repetitively executed to enforce the same status in different IT systems. While manual operation needs to repeat itself to enforce a status for each IT system. Resue overheads in auto and manual IT environment are in different magnitudes.
- Automation welcome changes. Frequent change infrastructure nowadays is a basic requirement for IT systems, especially for an organization with fast growing business. These changes include metal machines join and leave on-premises infrastructure, virtual instances are created and destroyed in cloud infrastructure, services start and terminate, and updates of organization employee/property data. Manual operations in such a frequent change environment are almost infeasible in practice.
- Automation means reliability. (1) Build reliable service over unreliable hardware. This requires automation of service management. (2) Manual operations are usually error-prone compared with scripts based operations. (8 out of 100 words are typos for an average typist, see this link.)
- Automation is traceable. As Murphy’s law says Anything that can go wrong, will go wrong ( https://en.wikipedia.org/wiki/Murphy%27s_law). It is a common something wrong in an IT system. Things are much easier in an automated confined system. Firstly, an administrator can notice a wrong system at the first time when it happens via an automated setting. Second, it is easier to trace to the root cause in an automated configured systems and easier to test and correct the wrong settings. In a manual system, it is a much more painful process to get to know where it is wrong.
In a word, automation in IT provides compound interest to an engineer and a team!
Why not automation?
This part provides excuses for people too lazy to make things automated.
Automation overhead is too high. (1) A task is literally one-time task and automation setup requires more than a considerable number of times efforts, such as 5. (2) An urgent task requires immediate completeness. Automation can be done in a later time.
Some tasks require human intelligence to process exception or abnormal cases. Automation tools nowadays are smart but not smart enough to handle all cases for all applications. Human intelligence presence is still needed for many cases.
How to automate things?
A big topic! A user first needs to keen to automation, and lower the tolerance to manual operations. With passion in automation, many tools can be found to automate different levels of IT operations, from a metal hardware, operating system, a service, to a specific configuration file.
(was written in May 2016)