September 8th, 2024

Reclaim the Stack

A team at mynewsdesk.com developed a Kubernetes-based platform to replace Heroku, achieving 90% cost reduction and 30% performance improvement, while enhancing developer experience and open-sourcing the entire stack.

Read original articleLink Icon
SkepticismConfusionCaution
Reclaim the Stack

A team at mynewsdesk.com has developed a Kubernetes-based platform intended to replace Heroku for their SaaS product. This initiative took seven months and resulted in a 90% reduction in costs and a 30% enhancement in performance. Additionally, the project improved the developer experience by decreasing deployment times and providing faster, more accessible tools. The entire stack has now been open-sourced, allowing others to replicate these results in a matter of days rather than months. The initiative is branded as "Reclaim the Stack," and resources such as documentation and a Discord server are available for those interested.

- The new platform offers a 90% cost reduction and 30% performance improvement.

- Developer experience has been enhanced with faster deployment and better tools.

- The entire stack has been open-sourced for public use.

- The initiative aims to help others achieve similar results in a shorter timeframe.

- Resources for support and collaboration are available through documentation and a Discord server.

AI: What people are saying
The discussion surrounding the Kubernetes-based platform developed by mynewsdesk.com reveals several concerns and insights from commenters.
  • Many commenters question the long-term maintenance and complexity of managing a Kubernetes setup compared to Heroku, emphasizing the need for dedicated resources.
  • Several users share negative experiences with Kubernetes, citing issues with upgrades and operational challenges that can lead to downtime.
  • There is skepticism about the claimed cost reductions and performance improvements, with some suggesting that the comparison to Heroku is not straightforward.
  • Some commenters advocate for simpler alternatives to Kubernetes, arguing that many startups may not need such a complex solution.
  • Others express interest in the open-source aspect of the project and its potential benefits for those familiar with Kubernetes.
Link Icon 38 comments
By @ksajadi - 4 months
I’ve been building and deploying thousands of stacks on first Docker, then Mesos, then Swarm and now k8s. If I have learned one thing from it, it’s this: it’s all about the second day.

There are so many tools that make it easy to build and deploy apps to your servers (with or without containers) and all of them showcase how easy it is to go from a cloud account to a fully deploy app.

While their claims are true, what they don’t talk about is how to maintain the stack, after “reclaiming” it. Version changes, breaking changes, dependency changes and missing dependencies, disaster recovery plans, backups and restores, major shifts in requirements all add up to a large portion of your time.

If you have that kind of team, budget or problem that deserves those, then more power to you.

By @jusomg - 4 months
Of course you reduced 90% of the cost. Most of these costs don't come from the software, but from the people and automation maintaining it.

With that cost reduction you also removed monitoring of the platform, people oncall to fix issues that appear, upgrades, continuous improvements, etc. Who/What is going to be doing that on this new platform and how much does that cost?

Now you need to maintain k8s, postgresql, elasticsearch, redis, secret managements, OSs, storage... These are complex systems that require people understanding how they internally work, how they scale and common pitfalls.

Who is going to upgrade kubernetes when they release a new version that has breaking changes? What happens when Elasticsearch decides to splitbrain and your search stops working? When the DB goes down or you need to set up replication? What is monitoring replication lag? Or even simply things like disks being close to full? What is acting on that?

I don't mean to say Heroku is fairly priced (I honestly have no idea) but this comparison is not apples to apples. You could have your team focused on your product before. Now you need people dedicated to work on this stuff.

By @rglover - 4 months
I made the mistake of falling for the k8s hype a few years back for running all of my indie hacker businesses.

Big mistake. Overnight, the cluster config files I used were no longer supported by the k8s version DigitalOcean auto upgraded my cluster to and _boom_. Every single business was offline.

Made the switch to some simple bash scripts for bootstrapping/monitoring/scaling and systemd for starting/restarting apps (nodejs). I'll never look back.

By @subarctic - 4 months
I wish _I_ had a business that was successful enough to justify multiple engineers working 7 months on porting our infrastructure from heroku to kubernetes
By @fourseventy - 4 months
In my experience you can get pretty far with just a handful of vms and some bash scripts. At least double digit million ARR. Less is more when it comes to devops tooling imo.
By @strzibny - 4 months
It's good to see new projects. However most people shouldn't start with Kubernetes at all. If you don't need autoscaling, give Kamal[0] a go. It's the tool 37signals made to leave Kubernetes and cloud. Works super well with simple VMs. I also wrote a handbook[1] to get people started.

[0] https://kamal-deploy.org [1] https://kamalmanual.com/handbook/

By @notpushkin - 4 months
It looks like a nice Kubernetes setup! But I don’t see how this is comparable to something like Heroku – the complexity is way higher from what I see.

If you’re looking for something simpler, try https://dokku.com/ (the OG self-hosted Heroku) or https://lunni.dev/ (which I’ve been working on for a while, with a docker-compose based workflow instead). (I've also heard good things about coolify.io!)

By @aliasxneo - 4 months
Since there are so many mixed comments here, I'll share my experience. Our startup started on day one with Kubernetes. It took me about six weeks to write the respective Terraform and manifests and combine them into a homogenous system. It's been smooth sailing for almost two years now.

I'm starting to suspect the wide range of experiences has to do with engineering decisions. Nowadays, it's almost trivial to over-engineer a Kubernetes setup. In fact, with platform engineering becoming all the rage these days, I can't help but notice how over-engineered most reference architectures are for your average mid-sized company. Of course, that's probably by design (Humanitec sure enjoys the money), but it's all completely optional. I intentionally started with a dead-simple EKS setup: flat VPC with no crazy networking, simple EBS volumes for persistence, an ALB on the edge to cover ingress, and External Secrets to sync from AWS Secrets Manager. No service mesh, no fancy BPF shenanigans, just a cluster so simple that replicating to multiple environments was trivial.

The great part is that because we've had such excellent stability, I've been able to slowly build out a custom platform that abstracts what little complexity there was (mostly around writing manifests). I'm not suggesting Kubernetes is for everyone, but the hate it tends to get on HN still continues to make me scratch my head to this day.

By @thetopher - 4 months
“Our basic philosophy when it comes to security is that we can trust our developers and that we can trust the private network within the cluster.”

This is not my area of expertise. Does it add a significant amount of complexity to configure this kind of system in a way that doesn’t require trusting the network? Where are the pain points?

By @airstrike - 4 months
> We spent 7 months building a Kubernetes based platform to replace Heroku for our SaaS product at mynewsdesk.com. The results were a 90% reduction in costs and a 30% improvement in performance.

I don't mean to sound dismissive, but maybe the problem is just that Heroku is/was slow and expensive? Meaning this isn't necessarily the right or quote-unquote "best" approach to reclaiming the stack

By @AbuAssar - 4 months
How does this compare to dokku (https://dokku.com/)?
By @appplication - 4 months
This sounds great, I’ll be building our prod infra stack and deploying to cloud for the first time here in the next few weeks, so this is timely.

It’s nice seeing some OSS-based tooling around k8s. I know it’s a favorite refrain that “k8s is unnecessary/too complex, you don’t need it” for many folks getting started with their deployments, but I already know and use it in my day job, so it feels like a pretty natural choice.

By @Summerbud - 4 months
> The results were a 90% reduction in costs and a 30% improvement in performance.

I am in a company with dedicated infra team and my CEO is a infra enthusiastic. He use terraform and k8s to build the company's infra. But the results are.

- Every deployment take days, in my experience, I need to woke for 24 hr streak to make it work. - The infra is complicated to a level that quite hard to adjust

And benefits wise, I can't even think about it. We don't have many users so the claimed scalability is not even there.

I will strongly argue startup should not touch k8s until you have fair user base and retention.

It's a nightmare to work with.

By @deisteve - 4 months
i got excited until i saw this was kubernetes. you most certainly do not need to add that layer of complexity.

If I can serve 3 million users / month on a $40/month VPS with just Coolify, Postgres, Nginx, Django Gunicorn without Redis, RabbitMQ why should I use Kubernetes?

By @mikeortman - 4 months
I'm glad we are starting to lean into cloud-agnostic or building back the on-prem/dedicated systems again.
By @sph - 4 months
"Join the Discord server"? Who's the audience of this project?
By @zug_zug - 4 months
Seems like a cool premise. Though I guess people building things always want to convince you they are worth-it (sort of a conflict-of-interest), would like to read an unbiased 7-day migration to this.
By @noop_joe - 4 months
Heroku and Reclaim are far from the only two options available. The appropriate choice depends entirely on the team's available expertise and the demands of the applications under development.

There's a lot of disagreements pitting one solution against another. Even if one hosting solution were better than another, the problem is there are SO MANY solutions that exist on so many axis of tradeoffs, it's determine an appropriate solution (heroku, reclaim, etc) without consideration to its application and context of use.

Heroku has all sorts of issues: super expensive, limited functionality, but if it happens to be what a developer team knows and works for their needs, heroku could save them lots of money even considering the high cost.

The same is true for reclaim. _If_ you're familiar with all of the tooling, you could host an application with more functionality for less money than heroku.

By @chrisweekly - 4 months
This looks great! Thank you for sharing, @dustedcodes. I might set up a playground to gain more hands-on experience w/ the relevant significant parts (k8s, argocd, talos) all of which have been on my radar for some time... Also, the docs look great. I love the Architecture Decision Records (bullet-point pros/cons/context)...
By @Retr0id - 4 months
Based on the title alone, I thought this was going to be people up in arms about -fomit-frame-pointer being used by distros
By @evantahler - 4 months
Porter (https://www.porter.run/) is a great product in the same vein (e.g. turn K8s into a dev-friendly Heroku-like PASS). How does this compare?
By @sciurus - 4 months
> Replicas are used for high availability only, not load balancing

(From https://reclaim-the-stack.com/docs/platform-components/ingre...)

An I reading this right that they built a k8s-based platform where by default they can't horizontally scale applications?

This seems like a lot of complexity to develop and maintain if they're running applications that don't even need that.

By @hintymad - 4 months
A trajectory question: Is there an acceptable solution to federate k8s clusters, or is there a such need? One thing that EC2 was really powerful is that a company can practically create as many clusters (ASGs) of as many nodes as needed, while k8s by default has this scale limit of 5000 nodes or so. I guess 5000 nodes will far from being enough for a large company that offers a single compute platform to its employees.
By @b_shulha - 4 months
Who are your target audience? There are so many components in this system, so it would require a dev-ops team member just to keep it healthy.

What are the advantages over the (free) managed k8s provided by DigitalOcean?

---

Gosh, I'm so happy I was able to jump of the k8s hype train. This is not something SMBs should be using. Now I happily manage my fleet of services without large infra overhead via my own paas over Docker Swarm. :)

By @jonstewart - 4 months
> Having started with Heroku, we have maintained a similar level of security

Remember 2022? https://www.bleepingcomputer.com/news/security/heroku-admits...

By @Havoc - 4 months
Toying with self hosted k8s at home has taught me that it it’s the infra equivalent of happy path coding.

Works grand until it blows up in your face for non obvious reasons

That’s definitely mostly a skill issue on my end but still would make me very wary betting a startup on it

By @kh_hk - 4 months
> We spent 7 months building a Kubernetes based platform to replace Heroku for our SaaS product at mynewsdesk.com.

I thought this was either a joke I was missing, or a rant about Kubernetes. It turned out it was neither, and now I am confused.

By @thesurlydev - 4 months
I was excited about this title until I read it's just another thing on top of Kubernetes. To me, Kubernetes is part of the problem. Can we reduce the complexity that Kubernetes brings and still have nice things?
By @est - 4 months
> We spent 7 months building a Kubernetes based platform to replace Heroku for our SaaS product

And heroku is based on LXC containers. I'd say it's almost the same thing.

By @PaulHoule - 4 months
What about “the rest of us” who don’t have time for Kube?
By @pton_xd - 4 months
"The results were a 90% reduction in costs and a 30% improvement in performance."

What's the scale of this service? How many machines are we talking here?

By @mvkel - 4 months
> 90% reduction in costs

Curious what accounts are being attributed to said costs.

Many new maintenance-related lines will be added, with only one (subscription) removed.

By @pwmtr - 4 months
Definitely interesting material. I realized, especially in last few years, there is an increased interest on moving away from propriety clouds/PaaS to K8s or even to bare metal, primarily driven by high prices and also interest of having more control.

At Ubicloud, we are attacking the same problem, though from a different angle. We are building an open-source alternative to AWS. You can host it yourself or use our managed services (which are 3x-10x more affordable than comparable services). We already built some primitives such as VMs, PostgreSQL, private networking, load balancers and also working on K8s.

I have a question to HN crowd; which primitives are required to run your workloads? It seems the OP's list consists of Postgres, Redis, Elasticsearch, Secret Manager, Logging/Monitoring, Ingress and Service Mesh. I wonder if this is representative of typical requirements to run HN crowd's workloads.

By @seungwoolee518 - 4 months
Most of the software should work Out-Of-The-Box, but the real problem is coming from hardware.
By @andrewstuart - 4 months
How can a NewsDesk application need kubernetes?

Wouldn't a single machine and a backup machine do the job?

By @thih9 - 4 months
> fully open source stack*. *) Except for Cloudflare

Are there plans to address that too long term?

By @fragmede - 4 months
having your tool be a single letter, k, seems rather presumptuous.
By @GaryNumanVevo - 4 months
Potential irony, this site isn't loading for me