by David Sterz, Solutions Architect and FinOps Lead, Mindcurv
A central Platform Team is the enabler for the Product Teams to develop value faster and compliant by providing shared platform services as a product (VCS, Container Registry, CI/CD) on a shared deployment target (Kubernetes) along with shared operational services (Dashboarding, Log-management, Metrics, and Tracing + APM, etc.)
The shared platform services are a mix of cloud resources, Kubernetes Deployments and as a 3rd Party SAAS that are consumed by most product teams.
The cloud resources that are needed by the product teams are provisioned by the central platform team into the product teams accounts which frees up the product teams from the heavy lifting and the operational responsibilities so they can focus more on their application development.
While organisational units and the account per team setup gives a good baseline for cost transparency there are various shared costs almost everywhere.
Most costs can be allocated directly to the product team on product level. Higher granularity down to application and sub-service level is achieved through tagging and labeling.
A small percentage of costs occur in every product team account which is part of the platform teams tooling that provide observability, security and compliance services as part of the platform services.
As the platform for the product teams is shared most of the resources in the platform account is shared.
Example of shared cost allocation strategy for Log-Management
|Proportional||Log-Mgmt Costs / Directcost-per-Team|
|Even split||Log-Mgmt Costs / Number-of-Teams|
|Fixed||Log-Mgmt Costs by Traffic %||Log-Mgmt Costs by Log-Storage %||Log-Mgmt Costs by Read/Write %|
Other Accounts provide services that are shared across all teams.