Cluster cost optimization
Compute costs is a significant expenditure for many companies, whether they are in the cloud or on-premise. Managing these costs is an important function for many companies, frequently with dedicated employees to do so.
There are two main goals:
- Driving increases in efficiency, to save money
- Attribute costs to individual projects, then groups
GitLab is well positioned to provide a comprehensive solution here:
- We know the performance characteristics of each pod and node through our Prometheus integration.
- We know the resources requested by each pod
- We know which pods correspond to which projects. This is important for shared clusters, which offer the greatest opportunities for efficiency gains due to scale.
- We can even track changes in usage to individual deploys.
There are a few iterations we could go through here:
- Flag deployments/projects that overprovisioned resource requests, wasting resources
- Recommend node changes to increase efficiency (use larger nodes, nodes with more RAM, etc.)
- Estimate costs utilized by each project
- Automatically implement the changes to right-size pod resource requests
This feature could pay for the GitLab Ultimate license by itself pretty quickly, if we do it well, for companies at certain scale.