<img height="1" width="1" style="display:none;" alt="LinkedIn" src="https://px.ads.linkedin.com/collect/?pid=1310905&amp;fmt=gif">

Discover

Explore CloudZero


Overview Icon
Overview

Discover the power of cloud cost intelligence.

Services Icon
Services

Give engineering a cloud cost coach.

Pricing Icon
Pricing

Learn more about CloudZero's pricing.

Demo Icon
Demo

Request a demo to see CloudZero in action.

About Icon
About

Learn more about CloudZero and who we are.

Connect With Us

Got questions? We have answers.


Questions Icon

Speak with our Cloud Cost Analysts and get the answers you need.

Get in touch arrow-right

Featured

How SeatGeek Decoded Its AWS Bill and Measured Cost Per Customer

Read customer story arrow-right
User Icon

By Role


Engineering

Enable engineering to make cost-aware development decisions.

Finance

Give finance the context they need to make informed decisions.

FinOps

Decentralize cloud cost and mature your FinOps program.

Use Case Icon

By Use Case


Provider Icon

By Provider


Amazon Web Services (AWS)

Measure, monitor, and optimize cloud spend on AWS.

Snowflake

Combine cloud cost intelligence from AWS and Snowflake.

Resources Icon

Learn


Blog

Discover the best cloud cost optimization content in the industry.

Content Library

Browse helpful webinars, ebooks, and other useful resources.

Case Studies

Learn how we’ve helped happy customers like SeatGeek, Drift, Remitly, and more.

Featured

5 Tactical Ways To Align Engineering And Finance On Cloud Spend

Read blog post arrow-right

How Making Cost A Non-Functional Requirement Helps CloudZero Engineers

Learn how CloudZero shifts cloud cost decision making left and makes cost a non-functional requirement to help build better cloud architecture.

Is your current cloud cost tool giving you the cost intelligence you need?  Most tools are manual, clunky, and inexact. Discover how CloudZero takes a new  approach to organizing your cloud spend.Click here to learn more.

I never used to care about the cost of the systems I built. As an engineer, why would I?

Especially in the days before the cloud, infrastructure resources were purchased and procured by somebody who worked many levels above me. Even when I first started building on the cloud, I had to submit requests (again, to somebody many levels above me) for my resources.

However, somewhere along the way, companies realized they could get products out the door much more quickly when developers can access what they need on the spot, without all the red tape. As a result, today, I have the keys to the kingdom when it comes to making purchasing decisions. I can spin up a fleet of instances, a NoSQL database capable of millions of transactions per second, or even a flock of lambdas with instant scaling, as I please. 

So, why, you might be wondering, do I now suddenly care about cost? Well, I will admit that I do work for a company whose main mission is to provide engineering teams with feedback about AWS costs, so... you could say it’s kind of our thing. 

More importantly, I work for a growing SaaS software company—and like any company, maintaining strong margins is important. Especially in the early days at CloudZero, we had conversations during our design process about how we could build a product that was affordable enough to run even as we added more customers.

This kind of thinking continues to pervade our engineering culture and today, we think of cost as a key non-functional requirement of anything we’re building.    

Making Cost A Non-Functional Requirement

So, how do you make cost a non-functional requirement? On our team, we start with a cost constraint, and then force ourselves to decide how we can build the feature with those resources.

If you think about it, it’s no different than back in the day, when we used to have to figure out how to build software using the resources that had been allocated to us for the year. We used non-functional requirements like performance, memory usage, cpu usage, etc. Today, engineering teams have unlimited resources on cloud providers like AWS, which is great for shipping products—and potentially harmful to your margins. 

I’ve found that working with my team to set daily cost constraints (i.e., this feature should cost $X per transaction, customer, or day to run) has actually forced me to be more creative in the way I architect my applications and systems. I’d suggest any team give it a try!

Even if you don’t ultimately stick to the constraint, I promise it will at least force you to think through different ways to solve a problem. Ultimately, the process isn’t about finding the cheapest way to build a product; it’s about making conscious tradeoffs about cost— and making sure you’re not choosing the most expensive way just because it’s the first thing you came up with.

Cost Constraints In Action

Interested in seeing this process in action? I also wrote a follow up post about a project I did to productize a Machine Learning pipeline. Read that here.

STAY IN THE LOOP


Join thousands of engineers who already receive the best AWS and cloud cost intelligence content.