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:

  1. Driving increases in efficiency, to save money
  2. Attribute costs to individual projects, then groups

GitLab is well positioned to provide a comprehensive solution here:

  1. We know the performance characteristics of each pod and node through our Prometheus integration.
  2. We know the resources requested by each pod
  3. 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.
  4. We can even track changes in usage to individual deploys.

There are a few iterations we could go through here:

  1. Flag deployments/projects that overprovisioned resource requests, wasting resources
  2. Recommend node changes to increase efficiency (use larger nodes, nodes with more RAM, etc.)
  3. Estimate costs utilized by each project
  4. 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.

Edited Oct 31, 2018 by silv
Assignee Loading
Time tracking Loading