E06: Strategies for Cloud Cost Allocation and Chargeback
On this episode of Cloud Cost Optimization, Nick and Jason dive into chargeback and (also known as showback and billback) the strategies you can deploy to implement it. It is crucial to first understand how your cost is allocated as cutting corners may have unforeseen consequences. In fact, it is also suggested that allocating costs across different departments can help to shift the focus from cost-cutting to revenue growth.
Hey, what's up everybody? This is Dick from tenacity.ai with my co-host Jason, and you're listening to the Cloud cost optimization podcast. Uh, today we're gonna discuss, uh, uh, chargeback and the importance of holding others accountable in your cloud environment, especially at scale. Uh, this could be chargeback, Showback, bill back.
In, in, you know, other techniques there, but we want to dive into some of the strategies around why you do this, how you do this, you know, what sort of things you, you would implement. So I guess Jason, um, you know, off, off the top, just what are, what are, you know, what are, when we say charge back, what are we, what are we really talking about here when it comes to the cloud providers?
Well, I think it's, you know, charge back, show back, build back. There's like, you know, multitude of different terms. I think at a high level, it's the ability to accurately allocate costs to the units in your business, which are contextual to you, right? So if I'm a service provider, uh, and I'm managing. My public cloud environments for my customers, I may want to be able to accurately show how much they're spending so that I can invoice them and charge them whatever my fee is for an organization.
I think it could be, you know, I have, uh, maybe I have, maybe I have it broken up by application, right? Different product owners, product groups. I might want to allocate that way. Or maybe it's just business unit functions like marketing, sales, things like that. You wanna be able to show them what portion.
Of there, of, of the total cloud costs are associated with those particular units of measure, whatever is contextual to the business. Yeah. I, I think it's, I think it's important. I think we all sort of understand why, especially if we've [00:02:00] been in IT or cloud for any period of time, uh, we understand this idea of being a call.
and the importance of being able to show cost out and sort of defer some of that out to revenue aligned organizations or, or other organizations, period, because it, it stops a lot of that internal focus or at least helps redirect a lot of that internal focus on cost cutting at a cost center in IT department.
And shifts the conversation to how is our, or how our, our technology costs aligned to our revenue, right? Because we, you know, from a, a cloud cost management perspective, and, and, and really, Cost allocation in chargeback are a cost management discussion to be clear. So this is one of the things you gotta get right before you really focus on a lot of optimization.
So the, the import, I don't even know what to cut if you don't know where things are [00:03:00] exactly. Or, or should you cut it, right? Because if. If, if you can align costs out to your highest revenue growth item and those costs are skyrocketing, that's, that's may not be the thing I want to cut. It may be the thing I just want to manage because.
Depending on, on, you know, whether that's growing linearly or whether it's growing asymptotically or you know, hopefully not growing exponentially because then you do have something to go fix. But, but the idea being that I don't want to just kind of blanket across the board, start cutting things with a cleaver.
I want to use a scalpel and I need to first understand what I'm not gonna touch or what I'm just gonna focus on managing. I think that's a really, Part of this. Yeah. I think you, it, you, it you, you've kind of outlined the question you need to be able to answer before you can even do it is how are these things growing?
and then why are they growing that way? Right? And so in the case of growing exponentially, like let's say it's, you know, uh, revenue generating application that's growing exponentially, but also sales is growing exponentially, right? That, that could be a reason. Um, and then maybe, well wait a minute. My sales is growing exponentially, but.
We assumed that our IT spend would not grow at the same rate as that, so what's going on there? So just, just having the ability to answer that question. gets you to a point where , where you can actually, uh, you know, accurately look at the business from a chargeback or showback or billback perspective.
And I think the cloud is what's enabled us to do this. By the way, I mean, I don't, it wasn't unless you were an organization that could afford to buy individual, Units of things for different, for these different businesses, right. Like a VMware farm and sand for marketing or for, for whatever, you know, product that you're talking about and a different one here.
You know, trying to track all [00:05:00] these things where you're not paying for things individually Right. In, in a legacy IT environment was very difficult to. The po, one of the power, one of the benefits of the club is you can get pretty accurate down to the resource level one, what, what these things are used.
So as long as you have an accurate, uh, organization strategy, right, like, um, either by account or tag or whatever the case may be, you can really get down to some very accurate costs by these individual units. You know, understanding that cost allocation is is important. That's, you know, Yeah. We get that and I think we all kind of understand that.
But when we get down to actually how to do it, that's where, when, when we are, uh, sitting across the table from a client, we're, we're trying to help them, um, take their environment and transform. It into something that can be allocated. There's a, there's a handful of strategies there that, that we probably wanna discuss, you know, how do you actually implement this and what are the sorts of issues that, that folks run into?
So, why don't we start there? What, what, what sorts of techniques are there for actually doing the cost allocation or splitting up the environment? Well, I think. Probably the easiest method is by subscription or account or whatever logical way the provider gives you to separate groups of resources. So if I'm an Azure, you know, a subscription by.
Right. Could be, could be an answer, whatever these units are. AWS could be account or accounts by units. So I have a collection of accounts. I mean, to, to, to me that's the easiest way because you know, then you can, uh, you know, because tagging everything in a similar manner can be very hard. If you're not all code and tagging is.
Probably the [00:07:00] best way to do it, but also not the easiest, and I best is probably a difficult way to put it because I think you can achieve the same things by separating them by a account or, or subscription. But tagging is the way to get the most detailed, um, information right down to the individual resource like environment or business unit X, y.
on a ta, on a resource on every resource that's associated with that unit is, is, is probably the best way, but you can have a pretty good strategy just by separating these things by the logical units that the providers give you to separate them by like account or subscription, et cetera. Yeah, I, I, I agree.
I, I think the account based strategy, uh, for doing allocation is, is by far the simplest, it's the easiest for people to understand. Um, everybody understands, when you say tagging, I think they immediately kind of go, Oh yeah, it's a great idea. We should tag our environment. Uh, it's when you actually get down to the nitty gritty of, Well, how am I gonna tag all the resources?
Which [00:08:00] way, uh, what, what are, what are the keys, uh, that I need and what are the values I'm gonna key off of? Uh, that it can get really, really complicated and it can drift outta control really fast. And that's why, you know, an accountant based strategy is really good first step. And then using tagging to refine, uh, that strategy I think is, is important.
Um, should you have a Google Awesome projects, but it's all the same. It's all the same concept, project subscriptions. Same, same concept, right? So I think those are, and they gave them, they, they have them organized in this way for specific reasons for you to do that. And. , that's how the, they recommend doing it as well.
Now is by that unit. They still recommend, we still recommend a solid tagging strategy, but separating by project account subscription is, is always a good thing to do. So the question you know of, of should you tag your environment, uh, is, is yes, of course. I think it's just, it's harder to. Realize the [00:09:00] future where it's a well tagged environment, then, then I think people understand when they embark on that, I think they really start to understand it down the road when they're a year or two in and, and they look at their tagg strategy and understand, you know, we see this all the time.
40, 50% of environments untagged. Right. That, that, Oh yeah. Yeah. Which is why we give people a view to see their untagged resources, , because it's, you know, just sort by a sort, by a filter, by untagged. Oh my gosh, I've got all these things untagged. So, absolutely, yeah. Very early ask from our, our, our own customers.
The, the difficulty here or some of the hangups that, that folks run into, and, and I'm sure that that folks listening to the show, um, have run into some of these as well. But one of the very earliest is actually, what do I do with share costs? And, and I think, you know, we, we've seen this, um, in most sophisticated environments at even modest scale, there are a set of shared resource.
Um, and there's also separately a set of kind of overhead where people don't [00:10:00] understand really where it should be charged back to. But let's, let's address first kind of the shared resources. You know, what, what is it that, you know, what, what's the strategy there? How do you, how do you tackle that? Well, there's probably, uh, many different ways, but historically we would, we would allocate a, a certain percentage to business units of those shared shared costs or whatever unit units you're measuring.
I think shared costs are difficult, right? Because if, you know, are you gonna allocate them e evenly, are you gonna allocate them, you know, weighted how, how are you gonna allocate these shared costs to these different centers? Um, but in general, I think you, if you're, if you need to allocate. Then, uh, assigning a specific percentage to, and however you come up with that math, to these different things is most likely the best way to do so.
I think so, I think, you know, the, the ultimate place to arrive would [00:11:00] be what would be awesome. What was the dream is that you could use, you know, do some sort of utilization based allocation for shared resources. It's really, really, really hard to achieve. Right? So you oftentimes then a team who's thinking about that, is thinking about actually a refactor, because they're gonna have to find a way.
Uh, tag those resources and use those resources only for that particular use. Right. And so you kind of actually getting a little bit away from actually it being a shared model and really kind of refactoring it into a dedicated model. Um, the, the, the next best thing. That's a great point. Refactoring is absolutely a, Yeah, that's a great point.
Refactoring so that it is isolated, Absolut. . Yeah, I think that's, I think that's kind of ultimately where you want to go. But, but you know, there's, there's a whole lot of shared resources you just don't wanna address, Right? They're just, there, there's some sort of common set of, of, uh, functionality and in, you know, shared across your apps that, that you need, but you don't want to go spend a bunch of time or make a big investment there.
You know, sort of the next best stab at it is actually the weighted allocation model of just trying to understand from a perspective either spending or use, you know, how should those. Resources actually be divided up amongst the various units that use them. Um, and, you know, then adopting a, uh, tagging model that will help you with that division.
And, you know, we, we've, we've got a number and we, we write about this. So we can certainly, um, uh, if you have any questions about this, you can certainly reach out to us on, on LinkedIn or, or, uh, uh, through our, our website. We're happy to share what the tagging strategies are that we've used, but you can effectively use, you know, key value pairs to uh, uh, you know, tell, tell yourself, uh, uh, where you want to share back, uh, those particular resources and how you want to divide those up so you can consume those tags and actually divide those costs that way.
Um, and then I think that, you know, the really, the really easy peanut butter math that is, Tagging that they are, in fact shared resources and then dividing 'em, uh, anything that's been tagged, shared amongst those, amongst those business units. I, I, I think that's kind of the ultimate place you want to get to, to the [00:13:00] easiest way to implement it.
Yeah. You know, the other thing I would say, Nick, just by knowing what your shared costs are, can help you make that decision. Because here's the thing, sometimes doesn't happen all the time, but sometimes when people understand, What portion of their environment is quote unquote shared. They realize it's not that significant of a number to even worry about how, you know, it's like, okay, this is not anything significant, so let's just allocate it evenly across because it's not changing the numbers by that much.
I think I do think a lot of the, Here's what we see, a lot of shared costs are a concern. But if you look at it, a lot of companies don't know what their shared costs are. They just know they have a bunch of shared stuff out there, right? So they're, they're concerned about making sure it gets allocated, but is it because they just don't know what the number is?
Or is it because they really need to make sure that, that those shared costs get allocated? And so I think a another thing is just knowing what your shared costs will help you make the right decision. , Um, whether it's peanut butter, whether it's weighted, whether or whether I just go, Okay, well, I'm just gonna budget for this much shared cost.
I know they're gonna be there, They're gonna grow by this much, and I'm not gonna worry about charging all that stuff back because it just gets really complicated. Or I'm just gonna add a service fee. . Right? I mean, there's so many ways just by having the data, there's so many different ways in which you could attack this problem.
People have the same concern about data transfers. Like one of the things we always, By the way, data transfers way down is like a major cost in CL cloud. I mean, I know people think it's a. It's a huge cost, but if you look at like the top five services, data transfer isn't in there. Everybody's worried about data transfer costs usually because they just don't have the data around it to be able to make the right decision and understand it.
So I think part of it is just knowing what those things are. Well, I, I think the, you're, you're right on the data transfer and we'll, we'll, we'll do an episode on data transfer. It's not a priority because it's still down there. This is a, that's a link, link back in this ar in this article to the data transfer.
Right. Just, I just dropped that nugget. , the really important thing I think you hit on there is that knowledge is, is power here and, and one, one of the realizations that I see happen is, When they understand, when you do allocation, and the team now allocates out a bunch of resources and they have this chunk left and it's this big chunk, a lot of times it's a big chunk and they go, Those are my shared costs.
And we say, Well, actually, let's identify the shared costs and then let's charge them back. And they find out that the share costs are actually a very small chunk. And then the rest of what's left is this overhead where nobody knows where it's allocated or where it should go. That's a really good place to then go focus your time.
You don't have to go focus on the business units you just allocated to. What you really need to do is focus on that overhead. Like what, what are all these S3 buckets and why are there all these services that don't appear to be associated, They're associated to a project, Right? Or [00:16:00] they're associated to some other activity that happens either in the dev chain or, or in in, you know, the business process that maybe we don't yet understand.
So we're now trying to go. Those. And if we can't allocate them, what do we do with them? Right. Probably go through some sort of cost reduction exercise because we need to discover what they're use, how they're used. It's a really, you know, cost allocation and chargeback is a really great way to get to what is my overhead that I can't allocate, and why is it that I can't allocate it?
Where, how do I attack that? And, and so I, I would really encourage folks to go through the, you know, at least the high level cost allocation exercise, even if you're not gonna really charge back your business units. Um, Get to then what's left over and tackle that from a cost management and an optimization perspective, if it's actually necessary in the environment.
All right. Well, I think we're, uh, uh, you know, we're at 17 minutes, a little bit of a long show, so I think we're, we're good for today. Um, so that's all. Thanks everyone for tuning in listening to the Cloud Cost Optimization, uh, podcast.