The cloud promises you pay only for what you use. In practice almost every company pays far more than necessary — not from obvious waste, but from architectural choices made once and never revisited. The good news: cost is an engineering lever, not a fate.
1. Size on data, not on fears
Most resources are over-provisioned “just to be safe”. Measure real CPU and memory usage for two weeks and resize: you can almost always drop one or two sizes. With Kubernetes, set realistic requests and let the autoscaler do the rest.
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
spec:
minReplicas: 2
maxReplicas: 20
metrics:
- type: Resource
resource: { name: cpu, target: { type: Utilization, averageUtilization: 70 } }2. Turn off what you do not need
Test and dev environments left on 24/7 are money burned at night and on weekends. A scheduler that shuts them down out of hours can halve their cost. The same goes for batch jobs and queues: pay for capacity when you use it.
3. Pick the right service, not the trendy one
A managed database, a serverless function or a managed queue cost more per unit but remove operational work: often worth it. Other times a long-term reserved VM (with a spend commitment) cuts the bill by 40%. The rule is to measure and decide case by case.
Optimising cost does not mean cutting quality: it means stopping paying for what you do not use. It is one of the fastest-return improvements you can make.
Have a cloud or AI project to take to production? I would be glad to talk.


Leave a Reply