One of the core principles of DevOps is automation. Continuous development, deployment, monitoring, security and every other element of a continuous DevOps life cycle depends on as much of the underlying tasks and actions being automated as possible. Although the provisioning, scaling and decommissioning of most DevOps resources in the cloud are handled by automated processes, inevitably there will be rogue artifacts and other cloud waste left behind.
When we talk about DevOps, we tend to focus on developers, but the reality is that DevOps straddles development, IT operations and general business processes. It is the cross-section of these three areas and how they mesh that enables DevOps to deliver increased agility, scalability and streamlined app development and deployment when implemented effectively.
Managing cloud costs and ensuring efficient use of resources should also be a function of DevOps. DevOps teams tend to hyper-focus on app development, integration, speed of delivery and app performance—all of which obviously are very important. It’s also important, though, to reduce or minimize infrastructure costs and ensure that cloud resources are not being wasted or left behind as remnants that are no longer being used.
Tearing down walls between teams and breaking down silos are hallmarks of DevOps. That same approach should be applied when it comes to managing cost and cloud waste. A white paper from ParkMyCloud notes, “Consider the problem of running resources when they’re not in use and how this contributes to cloud waste. If access is limited and only one person has the ability to turn instances on and off, then one individual is solely responsible for ensuring that cloud resources are used optimally.”
To efficiently manage cloud resources and reduce unnecessary clutter and costs, you need to pay attention to the right data. DevOps relies on monitoring and feedback to ensure apps are running as expected and performance is optimized. That monitoring and feedback also needs to look at things such as whether cloud instances are properly sized, if they’re continuing to run when they’re no longer being actively used, and whether there are rogue or orphaned resources out there that are unnecessary but still being paid for.
Just as automation drives DevOps itself, automation can also be an effective tool for managing and minimizing cloud costs and clutter. According to the ParkMyCloud white paper, 44 percent of cloud workloads are non-production—test, development and QA environments, for example—and don’t need to run 24/7.
“One way to save really significant dollars in dev and test is to switch your resources off when you go home,” suggested Werner Vogels, CTO of Amazon Web Services. An organization can theoretically reduce costs associated with development and test environments by up to 75 percent by simply turning those things off when they’re not needed.
If you think about it, managing cloud costs and clutter in DevOps is essentially the same as managing security within DevOps, which is essentially the same as effectively managing DevOps. You have to consider cloud infrastructure costs as a part of the holistic environment or project; remove silos to empower everyone involved to be part of the solution; monitor key metrics to get useful feedback; and automate the process as much as possible. As with DevSecOps, the main key is to make cloud hygiene and the reduction of cloud clutter an integral part of the DevOps life cycle—not something that is tacked on after the fact.