Automation is not new, but its use in cloud computing is recent. The idea is to automate tasks that have been traditionally carried out by humans; for example, self-healing a saturated compute server by automatically restarting it on a cloud provider. Or restricting the overuse of some expensive cloud service by finops automation, or having security automation defend against a cloud-borne breach attempt that happens at 3:00 a.m.
The truth is I’ve preached the role of automation in cloud computing for many years now, but I’ve noticed a reluctance to set up and leverage automation within cloud deployments. This seems to be a systemic problem that could lead to suboptimized cloud deployments, missing an opportunity to have more reliable, more secure, and more trackable cloud operations.
I believe a self-driving car is the best analogy here. When you’re behind the wheel, it is somewhat disconcerting to have the thing drive and steer itself through some complex situations. At highway speeds, I’m always concerned that the car is going to drive itself into a telephone pole and that’s it for me.
However, with a few exceptions, automation is mostly going to be better than depending on humans to carry out specific tasks reliably. Take our self-driving car: Those things have hundreds of sensors that take a 360-degree view of the environment, including speed, direction, engine status, tire inflation, etc. As the automated driving occurs, the systems have almost a perfect understanding of what’s around the car—more than you ever could. Moreover, the car is augmented with artificial intelligence capabilities and has a near-zero reaction time. The car is never tired, never drunk, and it doesn’t drive road-rage angry.
As humans, we’re just not that good. While we have experience driving cars and can look out the front window, we don’t have a perfect understanding of current data, past data, and what this data likely means in the operation and driving of the vehicle. Properly configured automation systems do.
For the same reasons that we are anxious when our cars drive away without us actively turning the wheel, we are slow to adopt automation for cloud deployments. Those charged with making core decisions about automating security, operations, finops, etc., are actively avoiding automation, largely because they are uncomfortable with critical processes being carried out without humans looking on.
I get it. At the end of the day, automation is a leap of faith that the automated systems will perform better than humans. I understand the concern that they won’t work. The adage is true: “To really screw things up requires a computer.” If you make a mistake in setting these systems up, you can indeed do real damage. So, don’t do that.
However, as many people also say: “The alternative sucks.” Not using automation means you’re missing out on approaches and mechanisms to run your cloud systems cheaper and more efficiently. Moreover, you should require fewer operational staff and can stop responding to events at 1:00 in the morning that can be fixed with very simple solutions that are… easily automated.
If you are not looking for ways to actively automate things in the cloud, you’re missing the point of using cloud-based systems in the first place. We need to expand our capabilities, even if that feels unnatural.