Hacker News new | ask | show | jobs
by ksbrooksjr 1435 days ago
I definitely get where you're coming from, but I think developers tend to overestimate the complexity of managing servers, and underestimate the complexity of managing a Kubernetes cluster. The last time I looked into Kubernetes even the most minimal setups required 500MB of memory on each machine, and that's assuming you're using a lightweight implementation like k3s or k0s. If you're using a managed service like EKS or GKE you're going to require even more memory and cpu resources. Kubernetes is ostensibly supposed to help you autoscale, but you only end up needing to autoscale because of the memory and cpu that Kubernetes is itself consuming. Most webapps can scrape by with just a single vm. Hacker News itself runs on a single machine [1]. Also if you reserve a vm for long term usage most cloud providers will give you a pretty steep discount [2]. If you need the ability to burst during periods of high traffic, you can just use a burstable instance, which all of the three big cloud providers support (i.e. Azure, GCP, and AWS).

I used to think managing servers introduced unnecessary complexity until I tried it, and realized it's really not as difficult as I thought. With kernel live-patching and unattended upgrades, I never have to manually update anything. Blue-green deployment is as simple as rsyncing files to the server, starting the updated app on a different port, and then updating your reverse proxy's config to point to the new version of the app. Any decent reverse proxy like Caddy or Nginx will support zero downtime config updates. You don't have to build containers, store them in a registry, or update any yaml manifests. Kubernetes manifests have gotten so complex that developers are inventing programming languages like Jsonett and Dhall to generate configuration files.

Also, the skills you learn from managing servers are incredibly portable. Some of the Unix skills that I've gained from playing around with EC2 instances have actually helped me manage my personal Mac (which is of course a member of the BSD family of Unix operating systems). When you learn Cloudformation those skills don't even translate to other cloud providers. The skills that you learn from managing a server are also incredibly stable and stand the test of time. Bash is older than Docker, the programming language (Golang) that Docker was written in, and likely many of the developers using it.

[1] https://news.ycombinator.com/item?id=16076041

[2] https://instances.vantage.sh/?cost_duration=monthly