your options exist along a spectrum between:
• aggressive fine-grained tagging of every individual cloud resources a BU uses, which is then used to pass along the underlying cloud pricing to the originating BU.
◦ pros: everyone is responsible for their own operating costs. your BU's additional cost is the overhead of funding the team that does platform maintenance.
◦ cons
▪︎ other BU's now have to do their own spend projections
▪︎ everyone's life is more complicated because chargeback is modelled in every platform abstraction
▪︎ how do you do spend reconciliation if there's a bug in the tagging?
▪︎ unclear how shared resources will be billed (e.g. if you use a 3p SaaS that doesn't propagate resource tagging into costs - Sentry for example only recently released Spend Allocation)
• set up an internal SaaS model, where your BU charges the other BUs for their usage of your platform.
◦ this still requires some amount of usage tracking, but doesn't necessarily entail tagging underlying resources with the consuming BU.
◦ pros: your users have a vastly simplified view of pricing
▪︎ provides a mechanism to manage spend for shared resources.
◦ cons:
▪︎ your BU needs to do a lot of cost/spend projection work
▪︎ you still have the spend reconciliation problem
where you land on this spectrum (alt: what costs you abstract away and what costs you directly pass along) is entirely dependent on the abstractions you have for usage tracking (if you have any - it sounds like you don't), the timeline you need to deliver on, and probably most importantly, the people responsible for managing your company's spend (finance/accounting) and what they need to see from you.
also, what happens if a given BU exceeds their budget? should their services hard fail, or is it OK if that cost is absorbed by other BUs? (the answer to this will depend on the magnitude of the overrun, but it has pretty big technical implications)