The formation of DevOps brought together two distinct worlds, causing a shift in IT culture that can only be made better (and more cost-effective) by the integration of financial strategy. Enter DevFinOps. I say this only partially in jest. As long as the public cloud remains a utility, everyone should be responsible for controlling the cost of their cloud use, meaning “continuous cost control” should be integrated into the processes of continuous integration and delivery.
Companies should at least start thinking of financial management as an element in the DevOps process. Time and time again, I see DevOps teams overspend and face major organizational challenges when inevitably the finance team (or the CTO) starts enforcing a stricter budget. Cost control becomes a project, derailing forward development motion by rerouting valuable resources toward implementing spend management processes.
It doesn’t have to be this way. As financial resources are finite, they should be an integrated element from the very beginning when possible. There are a number of ways that finance can be integrated into DevOps, but one near and dear to my heart is with automated cloud cost control. A mental disconnect between cloud resources and their costs causes strain on budgets and top-down pressure to get spending under control.
Changing the Mindset: Cloud is a Utility
The reason for this disconnect is that as development and operations have moved to the cloud, the way we assess costs has changed profoundly in the same way that infrastructure has changed. A move to the cloud is a move to pay-as-you-go compute resources.
This is due to the change in pricing structure and mindset that happened with the shift from traditional infrastructure to public cloud. As one of my customers put it:
“It’s been a challenge educating our team on the cloud model. They’re learning that there’s a direct monetary impact for every hour that an idle instance is running. The world of physical servers was all CapEx-driven, requiring big up-front costs, and ending in systems running full-time. Now the model is OpEx, and getting our people to see the benefits of the new cost-per-hour model has been challenging but rewarding.”
In a world where IT costs already tend to exceed budgets, there’s an added struggle to calculating long-term cost estimates for applications that are developed, built and run on a utility. But wasn’t the public cloud supposed to be more cost-effective? Yes, but only if every team and individual is aware of their usage, accountable for it and empowered with tools that will give them insight and control over what they use. The public cloud needs to be thought of like any other utility.
Take your monthly electric bill, for example. If everyone in the office left the lights on 24 hours a day and 7 days a week, those costs would add up rather quickly. Meanwhile, you’d be wasting money on all those nights and weekends that your beautifully lit office is completely empty. But that doesn’t happen because in most cases, people understand that lights cost money, so people have automated this process in the office by using sensors either based on motion (usage) or time-based schedules. Now apply that same thinking to the cloud and it’s easy to see why cost-effectiveness goes down the drain when individuals and teams aren’t aware or accountable for the resources they’re using.
Financial decisions regarding IT infrastructure fall into the category of IT asset management (ITAM), an area that merges the financial, contractual and inventory components of an IT project to support lifecycle management and strategic decision-making. That brings us back to DevFinOps: an expansion of ITAM, fixing financial cost and value of IT assets directly into IT infrastructure, updating calculations in real time and simplifying the budgeting process.
Why This is Important Now That You’re on Cloud
DevFinOps proposes that a more effective way to estimate costs is by breaking them down into smaller estimates over time as parts of the work get completed, integrating financial planning directly into IT and cloud development operations. To do this, the DevOps team needs visibility into how and when resources are being used and an understanding on opportunities for saving.
As I have noted, the public cloud is a utility—you pay for what you use. And with that in mind, the easiest way to waste money is by leaving instances or VMs running 24 hours a day and 7 days a week. The easiest way to save money is just as simple: turn them off when they’re idle.