We all know the trend: Use the cloud to automate security, governance, and management, and use devops tools and technology to automate the stream of software that flows from the coders to the cloud.
Automation is good. It removes us from the mundane tasks, and it drives a repeatable process that eliminates the element of human error. But enterprises are going a bit nuts with the concept. It's clear to me that you can overautomate far past a diminished return.
When moving to the cloud and devops, here are the types of duties you want to automate:
- Any task that has a repeatable pattern, such as unit testing, proactive performance monitoring, and removing unused machine instances
- Any task that runs better without a person involved or that are easily automated
- Any task that is noncritical to the business; if it fails, you won't be hurt too badly
However, here's what you should perhaps not automate:
- A task that requires constant human intervention; if a person must constantly make a decision, automation brings little value
- A task that is not repeatable, which means it's difficult or impossible to pre-program an automated response (sorry, machine learning is nowhere near that advanced)
- A task that is critical to the business -- if it fails, you will be badly hurt
Cloud and tool providers tell IT that automation leads to productivity, which leads to efficiency and, in turn, a return on investment. Although the notion is generally true, it's not consistently true. You must make the decision to automate, or not, on a case-by-case basis.
As you move to cloud and use devops as a path to leveraging the cloud more effectively, you might have too many items you can automate. Keep in mind that simply because a task can be automated doesn't mean it should. Pick your automation opportunities, battles, risk, and -- ultimately -- ROI thoughtfully.
In the next few years, I figure many enterprises will find they overdid the automation because they could. Try not to be one of those enterprises.