3 min read

New school thinking and cost optimisation

New school thinking and cost optimisation

Now, here’s the thing: a few years ago, if you wanted to set up a proper racked server, you’d be looking at shelling out around $60,000. Yes, you heard that right. Enough to buy a decent car or two. But then came the cloud, like a knight in shining armor, offering the same service for a paltry $500 a month. The cloud handles all the day-to-day nonsense, spreading the cost over five years. Include staff salaries and instant high availability, and it was a no-brainer back then.

Fast forward to today, and we’ve got a startup shelling out about $9,000 a month to AWS. That’s 15% of their $60,000 monthly revenue – it’s like AWS is a greedy shareholder you can’t get rid of.

So, I rolled up my sleeves and took a look. Some solutions architect had spun up services for a proof of concept, then wandered off, leaving them running. By shutting down these zombie services, we dropped the bill to $8,000. Easy peasy.

Next, we stumbled upon a half-baked migration. Finished it off, and bam, down to $7,000. Then we got serious about optimization: replaced multiple ELBs with one NLB, switched from GP2 to GP3 volumes (because cheaper is better), and stopped hoarding daily backups like a squirrel with acorns. We scaled down idle services and brought the bill to $6,000.

But I wasn’t done. Oh no. We slapped on a savings plan for stateful nodes, cutting costs by 60% over three years. For the stateless ones, we went with SPOT instances, which are cheaper but a bit risky – like buying a car from a bloke in a pub. To manage this, we applied node affinity, making sure stateless services would hitch a ride on the same node as stateful ones if needed. Also, we had read-intensive applications read from the secondary replica of the database, cutting down on the need for monstrous RAM and CPU. And just like that, we were under $4,000.

Now, here’s the kicker. Remember that $60,000 server rack? Turns out you can now use single-board computers that support SSDs, run Kubernetes, and cost about $200 each. For $1,000, you get three nodes with 24 CPU cores, 48GB of RAM, and a 24-hour battery backup. Sure, there are performance differences and the odd hiccup if the internet goes down, but developers won’t even notice. Out of the $4,000 a month, around $1,000 goes to the dev environment. For one month’s spend, you can build your own physical infrastructure. Just don’t go crazy with load testing.

One could also consider moving certain non-core assets that doesn't require the 9.99 availability back to on-prem like the reporting server or log collections if it can handle the volume.

What’s brilliant is that with tools like sync waves, infrastructure as code, GitOps, and DataOps, you can lift and shift your whole environment seamlessly between your bargain-basement on-prem server and the fancy cloud, only paying for the time spent while loadtesting etc.

Although the project isn't finished we should be able to get montly server spend down from $ 9000 a month to around $ 3000 thats 75% reduction assuming the startup made around $ 6 000 a month after all expenses paid it will now shoot up to $ 12 000 increasing profits by around 100% by thinking slightly differently.