Lower Your Total Cost of Ownership with DevOps Practices

Organizations can greatly reduce technology spend by leveraging DevOps practices that automate work with CI/CD pipelines written with Everything as Code (EaC).

By
Eric Gerling
July 24, 2023
Repeating pipelines with skies and horizon in the background

While there are many aspects to consider when looking to implement DevOps practices, this article focuses on Continuous Integration/Continuous Delivery (CI/CD) pipelines and Everything as Code (EaC) as they are integral to getting started with DevOps and serve as building blocks for lowering the Total Cost of Ownership in a product delivery organization.

Defining These Two Building Blocks

According to GitLab, CI/CD is used to describe a process where multiple changes are made to a codebase simultaneously. Everything as Code allows developers to spin up infrastructure that meets business and security requirements in a predictable, repeatable way that eliminates the opportunity for human error that can occur when the process is done manually.

Using CI/CD pipelines and EaC together is a strategic decision that requires organizational alignment. When paired together, it creates repeatable consistency that saves the company time and money every time change is needed – lowering the cost of ownership.

By not leveraging DevOps practices, companies risk reduced confidence in technology’s ability to maintain and support the current and future infrastructure and applications as the company grows due to:

  • An inability to make holistic, strategic investments in infrastructure and applications.
  • An increase in security gaps, duplication of efforts, and technical debt.
  • An increase in manual steps and release and deployment inefficiencies.
  • An inability to shift priority and resources quickly to take advantage of new markets and new revenue streams.

Essentially, companies can’t make strategic decisions due to a higher cost of operations and uncertainty in developer time when adding new features and functionality. 

High Deployment Frequency = More Revenue Opportunity

When using a delivery framework that embraces the DevOps approach, CI/CD pipelines enable higher frequency in predictable, repeatable deployments by providing teams with immediate feedback loops. These feedback loops ensure teams deliver the correct and complete software. The consistent feedback loops can also enable developers to more quickly roll out new or updated features and functionality.

Features and functionality, whether it’s for an internal process or app or external product with subscribers, means more opportunity for revenue.

A team starting out might only deploy to production every month, but once it gains traction, new features and functionality are rolled out weekly, daily, and eventually on demand.

In the software engineering book, “Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations,” the authors identify four key metrics and one of them is a higher deployment frequency.

CI/CD Pipelines with Everything as Code

Now we have to layer in the next building block: Everything as Code. 

For each application or product, a team has to set up the infrastructure, permissions, access, APIs, and integrations. Teams not writing pipelines with EaC aren’t typically documenting the configurations which makes it difficult to repeat or scale services. 

With CI/CD pipelines that are written as code, instead of manually configuring each application for each environment, teams can more easily reproduce pipelines using EaC, and then test out new ways to optimize, automate, or fine tune parts of the CI/CD pipeline. 

Without CI/CD + EaC 

Teams who don’t use EaC with CI/CD pipelines are building and deploying environments and applications with no traceability and are manually building and rebuilding steps to achieve the END STATE. Current and future team members have no insight when defects or issues are discovered – which might be days, weeks, or months later. As shown in the diagram below, even the team who did the work will have questions about how the END STATE was achieved.

The diagram above demonstrates a pipeline created without EaC.
The diagram above demonstrates a pipeline created without EaC. Even if a team documents how applications and environments are configured, they still have to manually go through each step to determine where the bug or issue exists.

With CI/CD + EaC 

CI/CD pipelines that are built with EaC, means teams can see how each step is configured and have clarity on how the END STATE was achieved. So if a test fails, the team can easily find the issues and refactor immediately vs. waiting weeks or months later based on their deployment schedule.

Imagine working on something a month or two weeks prior and when it’s finally deployed, there are bugs. Without CI/CI pipelines written in EaC, you have to go through each manual configuration to find the issue and then determine how to fix it.  

As shown below, the HOW and the WHY is built into the pipeline for current and future team members to see the full process.

The diagram above demonstrates a CI/CD pipeline created with EaC that documents the steps that are automated.
The diagram above demonstrates a CI/CD pipeline created with EaC that documents the steps that are automated. Using this approach, allows current and future team members to easily find what failed in testing to the desired environment.

Leads to constant optimization vs. fire fighting

CI/CD pipelines and EaC also means teams can easily reproduce tearing down and building up the steps in the pipeline over and over (with the push of a button vs. manually configuring every time)– giving them a flexible formula to accelerate, optimize, and consolidate processes and workflows. 

Teams who have to manually rebuild steps to achieve the END STATE never have time to optimize or enhance. Using CI/CD pipelines means the END STATE is a moving goalpost and every day it can be optimized, refined, or improved as shown in the figure below.

The diagram above demonstrates how a CI/CD pipeline created with EaC makes it easier for teams to constantly improve their work instead of troubleshooting past work
The diagram above demonstrates how a CI/CD pipeline created with EaC makes it easier for teams to constantly improve their work instead of troubleshooting past work. Teams can more easily optimize by removing unnecessary steps, refine existing steps, or add steps to the pipeline due to the traceability of this approach.

Leads to hardened security posture and compliance

Adopting CI/CD pipelines with EaC also means nothing can be modified outside the pipeline without appropriate permissions. And when modified, it is traceable. 

The diagram above demonstrates how CI/CD pipeline created with EaC makes it more secure
The diagram above demonstrates how CI/CD pipeline created with EaC makes it more secure since modifications are only possible with appropriate permissions and when made, it’s traceable.

Examples of Cost Savings 

Automating Environments: From Days to Hours

Proof Point: For one client, Trility helped automate how developers stand up local environments for testing and validating company-wide cloud-based initiatives to help reduce the cost of operating cloud environments. Previously, developers were taking 2-5 days to configure their local environments using a manual process that led to inconsistencies between individual developer environments. After Trility automated this process, new laptop setup now takes 1.5 hours with updates to the local developer environment consistently applied for the entire team from a single source of truth.

Taking this approach can also save a significant amount of money on long-running cloud-based environments. Every developer has a laptop, they do not need their own cloud environment or access to one. Investing time and resources in what is often called "dev_local" is just one way to save money in the cloud.

Optimize Change Management

This approach also empowers teams to find and address big and small issues that both bring about impactful cost savings. In this example, an engineer identifies a database change that automates a workflow and reduces manual inputs. Sometimes a change may only require adjusting three lines of code. With a DevOps approach, an engineer is empowered to make suggestions in the code for the team to review, approve, and deploy to production. 

Learn how Trility has helped other clients with DevOps practices, such as implementing a Custom Security & Auto Remediation Tool, a Data Storage CI/CD Pipeline Solution, or a Policy as Code Assessment and Implementation.

Reduce Your Cost of Ownership

These two building blocks of DevOps allow teams to do more with less by simplifying and automating work, managing change, and creating reproducible patterns. If you are using CI/CD pipelines and EaC or some other combination of DevOps practices and aren’t realizing the benefits, one common pitfall is what I like to call, “Siloed DevOps.” The company creates a special team focused on DevOps or Platform Engineering, yet what they create is not aligned with the company’s strategic plan. Or it doesn’t have buy-in from development teams. If this is how you are doing DevOps, then you won’t reap the benefits. 

If you are interested in learning how we help teams to successfully enable a DevOps approach, schedule time with us.