Before widespread cloud adoption, the cloud’s major selling point was a reduction in computing costs. Today, however, many organizations find themselves mired in increasingly costly and complex cloud environments, even forcing industry leaders such as Nvidia back toward on-prem setups. The priorities upheld by DevOps throughout the last decade have played a major role in this – having prioritized acceleration over all else, organizations are now beginning to strain under the weight of abandoned servers, unused tools and forgotten licenses. FinOps offers the next phase of evolution, integrating development, operations and finance teams.
What is FinOps?
FinOps is an integration of DevOps and Finance; a set of practices and principles that aim to optimize an organization’s spending on cloud computing resources. A heavy focus is placed on managing and controlling cloud cost to maximize efficiency, while also ensuring that the organization meets or even surpasses its objectives and performance metrics. For a deep dive into the term, see our ‘What is FinOps’ guide.
The below graph maps AWS’ revenue throughout the last decade: immediately obvious is a pattern of relentless growth. This corresponds with many industry leaders’ lived experiences, having seen spiraling cloud costs year after year. Coupled with other cloud challenges, such as growing network complexity and increasingly disparate teams, FinOps hopes to offer a new lens through which to scrutinize cloud spend.
AWS Quarterly Revenue from 2014 to 2022 (in million U.S. dollars)
Source: Statista
Much as its name suggests, interdepartmental collaboration is a cornerstone of FinOps. Only by taking engineering, finance, product and technology teams into account can the true impact of every cloud spend be discovered. Walking the line between cultural movement and cost analysis, FinOps lends teams the tools to define cloud investment from cloud cost.
What is DevOps?
DevOps, a portmanteau of Development and Operations, is an approach that aims to bridge the gap between software development (Dev) and post-deployment IT operations (Ops). Much like FinOps, a key focus is placed on improving the collaboration, communication, and integration between these traditionally siloed teams. In fostering this collaboration, DevOps aims to accelerate the software development and delivery process while enhancing the overall quality and reliability of software systems.
The DevOps lifecycle is vastly different from the traditional approach to software development. This old school approach is often visualized as a waterfall process – where every stage of code implementation is worked on in a linear fashion. In reality, this would see software development teams spending months on new, largescale code releases. Because of the sheer size of each new update, quality assurance and operations teams would have to spend several more months assessing each batch of new code. As a result, there would essentially be two versions of every application: the one pre-changes, and a test version. New software updates often languished in development for months or even years.
DevOps, on the other hand, co-evolved with more agile workflows. The DevOps lifecycle is a series of interconnected phases designed to optimize software development and delivery. Developers typically work in smaller bursts of activity, led by slight adjustments as code is integrated and deployed. To lend further resolution to the question ‘What is DevOps?’, consider trunk-based development: this approach sees developers merge frequent changes into a core ‘trunk’ of working code. A focus on collaboration sees developers take advantage of real-time code updates to further accelerate time to deployment.
Key Differences Between FinOps and DevOps
FinOps and DevOps are two distinct but complementary sets of practices. FinOps’ core principles revolve around financial management. It aims to optimize cloud spending, allocate costs, and ensure that cloud expenses are in line with the organization’s budget and financial goals. Day-to-day, this can look like tracking usage patterns and analyzing budgets to prevent unexpected cost overruns. DevOps, on the other hand, sits in direct contact with cloud and on-prem services as developers use compute power to build revenue-driving products.
Acceleration vs Accountability
DevOps’ primary focus is on streamlining and accelerating software development. Take the common DevOps KPI of lead time, which tracks the length of time between a code change being committed to when it’s deployed. Keeping track of this requires in-depth, ongoing analysis of the development environment. While more context can be added by including the change failure rate (which assesses how many code changes need to be fixed later down the line), DevOps success is measured by the lines of code being produced. This singular goal can often lead to an antagonistic relationship between DevOps and cloud spend, especially when compared to the rate of cloud spend increase of 42% per year since 2006.
To place the brakes on this spiraling cloud spend, FinOps takes a step back from front-line code: instead, a focus is placed on how cost-effective the development and implementation practices are. Take an all-too common example of server sprawl. Here, developers attempt to accelerate new projects by simply spinning up a new virtual server every time – and then essentially abandoning it after the service is no longer required. While one or two unused servers make a negligible impact on budget, as an organization scales and this practice is repeated ad nauseum, cloud costs begin to swallow up increasingly large portions of revenue.
To tackle cloud spend wastage, FInOps places significant importance on accountability. A particularly valuable metric employed by FinOps leaders is the percentage of cloud allocation. This defines how many taggable cloud resources have actually been allocated to their responsible parties. In this way, FinOps places guardrails for development teams to take full responsibility for the resources they choose to provision.
Development vs Cost Optimization
DevOps delves deep into the guts of the code development process. Streamlining this often requires Infrastructure as Code (IaC) changes that automate infrastructure provisioning and management. While every pipeline is unique to its organization, DevOps analyzes its set of considerations and evaluates which changes could act as a catalyst. For example, within container-based application pipelines, choosing between a local or remote registry is the first step to faster deployment. From there, the development process can be accelerated by building the container once and moving it throughout the pipeline, rather than rebuilding it at every stage.
FinOps takes the foundation of DevOps and builds a layer of financial analysis on top. Resource rightsizing is a pillar of FinOps, but to understand the ‘right’ amount of resources, FinOps must strike a balance between the pace of development and resource responsibility. For example, many cloud-hosted apps make use of compute resources such as AWS’ EC2. AWS offers this service in two different formats: on-demand and reserved. While on-demand instances promise unrivaled availability and scaling, it’s possible to buy reserved quantities of compute resources over a long period of time for much less. Reserved instances are just one example of how FinOps demands continuous assessment of instance performance and usage patterns – followed by deactivating or resizing certain resources. Given the dynamic nature of resource requirements, this rightsizing must be an ongoing, perpetual effort to consistently attain cost optimization.
Ultimately, the differences between FinOps and DevOps can be highlighted by the common practice of ‘lift and shift’. As organizations start to understand the architectural benefits offered by cloud vendors, many siloed development teams have simply shifted everything over as-is. DevOps has started to address the performance and development ramifications of this by containerizing applications before porting them over. However, the next stage of cloud maturity demands FinOps’ emphasis on financial management and cost optimization. Rather than viewing it as FinOps vs DevOps, a more productive approach recognizes that the two practices complement each other.
Role Requirements in FinOps
To excel in FinOps, a robust grasp of financial management concepts and data analysis are paramount. Alongside deep experience within production and procurement spaces, the examination of cloud cost data often demands further investment in cost management platforms and data analytics applications.
Keep in mind, however, that FinOps’ goal is to imbue IT teams with the financial realities of their procurement choices. Effective communication and collaboration abilities are crucial, as building this new approach can represent a drastic change for established teams. The end goal of integrating cloud management and discounting strategies across the entire IT team demands a clear and collaborative culture.
Alongside a tight relationship with on-the-ground engineers, FinOps professionals must remain in sync with the costs their cloud services are incurring. These must be transparent, updated, and related to the commercial value for organizations to succeed. This data then feeds into every business use case, as unit-level economics and real-time data becomes a North star for success.
The demands of the role are even higher than the financial stakes involved. Finding, hiring and training the best talent can be a challenge of itself, which is why many industry users choose FinOps as a Service. This ensures net savings on cloud costs with almost immediate effect.
Role Requirements in DevOps
A proficient DevOps engineer is essentially an IT generalist, well-versed in a broad spectrum of software development and operations, familiar with coding practices, infrastructure management, system administration, and DevOps toolchains.
As a pivotal aspect of DevOps, release engineering defines the intricate task of building and deploying application code. The specific tools encompass responsibilities such as selecting, provisioning, and maintaining CI/CD tooling and upkeeping custom build and deploy scripts. Infrastructure provisioning requirements include the deployment and maintenance of servers, storage, and networking resources indispensable for hosting applications. For organizations relying on on-premises resources, this may entail overseeing physical servers, storage devices, switches, and data center virtualization software. Conversely, for those embracing hybrid or entirely cloud-based infrastructures, this responsibility often involves provisioning and managing virtual instances of the same components within a cloud environment.
If successfully delivering features to a production environment is the initial phase, the next step involves the monitoring of feature performance, behavior, and availability. This critical phase allows DevOps teams to verify that the features indeed contribute value to end users. Operations play a pivotal role in ensuring a seamless end-user experience across these features, minimizing service disruptions by diligently maintaining the health of network, storage, platform, compute, and security components. In the event of issues, operations personnel promptly identify incidents, alert the appropriate staff, diagnose problems, and implement the necessary remedies.
The DevOps role demands technical competence and a greater degree of collaboration than ever before. However, one of the biggest challenges in implementing DevOps is the scarcity of skilled individuals. This is why DevOps as a Service promises to optimize time-to-market strategies by providing CI/CD excellence.
Importance of Collaboration Between FinOps and DevOps
In the realm of cloud computing, responsibility for optimization falls on the shoulders of the entire ecosystem, encompassing developers, engineering teams, architects, and IT finance teams. The prevailing approach is to introduce capabilities that empower digital teams to self-serve, all while keeping a keen eye on mitigating cloud waste and supporting a high-frequency delivery model, bolstering agility.
Both DevOps and FinOps cultivate this culture of collaboration, breaking down traditional silos by fostering communication and cooperation among development, operations, and various stakeholders. This collaborative ethos is underpinned by the fundamental principle of continuous improvement. Both fields champion the notion of learning from setbacks and refining processes to enhance software quality, reliability, and delivery speed.
As automation is another pivotal component within both frameworks, consider the potential of integrating FinOps within the development and resource attribution pipeline. Reserved instances have already been employed by many teams attempting to purchase set quantities. However, the ensuing cost savings are often lower than expected – largely thanks to contracts that purchase instances at a set rate. As AWS has consistently dropped the price per unit over the years, manual discount measures have proven sub-optimal. Automated tools, on the other hand, allow teams to benefit from day-to-day discounts on reserved instances. By automating various aspects of the process, FinOps grants DevOps-level agility to almost every facet of cloud spend. As established leaders in the field, GlobalDots can’t emphasize the benefits of Cloud FinOps enough. Throughout your FinOps journey, it’s vital to keep in mind the requirements of an iterative process that demands total alignment to your own organization’s cost and performance goals.