Live data from Hacker News

You might not need Kubernetes

blog.jessfraz.com

101–110 of 319 posts

Re: You might not need Kubernetes

#101

Some day I would like a powwow with all you hackers about whether 99% of apps need more than a $5 droplet from Digital Ocean, set up the old-fashioned way, LAMP --- though feel free to switch out the letters: BSD instead of Linux, Nginx instead of Apache, PostgreSQL instead of MySQL, Ruby or Python instead of PHP. I manage dozens of apps for thousands of users. The apps are all on one server, its load average around…

Well, I don't know where you work, I guess at the company that makes little bespoke apps that all run on a single point of failure, but I actually do work somewhere that runs at the scale of the sort of companies you mention. So it's good to know about techniques and tools that are useful in that context.

Hacker News is great and all, but it ain't a business. And if it goes down, well, surf another website for a while. Many of us work in situations that are significantly more... constrained than that. We aren't able to say, "Hey, we're down at the moment so just use one of our competitors for a while, is that chill?" So it's maybe not the best example of what we apparently should all be doing.

I don't know this mythical person is, who's always talking about "webscale" and overengineering the shit out of everything. Kind of a tired strawman imo

Re: You might not need Kubernetes

#102

Earlier quoted context omitted.

but what if? Imagine.

I imagine if you have an ops team, they're going to continue to pray every time you have to upgrade k8s or a supporting underlying service and the expectation is that everything will continue to function without dropping an inbound request. I imagine they are going to be less than impressed being on call for something that is essentially still in beta. And if you have no ops and your devs are responsible for it, god…

on a Kubernetes managed service

Using GKE I am horrified by how many times I have to type

    gcloud beta ...

Re: You might not need Kubernetes

#103
post #13

Depends on the scale. If I only have 10 containers to manage I'd throw them on a m4 and let it be. Benefit of using k8s kicks in when your use case gets complicated.

even m4/m5's are already on the expensive side compared to something like hetzner especially if you don't need crazy peak scaling.

Re: You might not need Kubernetes

#104
post #33

I am interested in people's opinion on the "break even point" between using Kubernetes and not using Kubernetes. Let's pretend that the only options are Kubernetes and something substantially less powerful. What is the simplest/easiest personal project where using Kubernetes might be justified? I am a junior software engineer trying to figure out how to contextualize all of these container/container management system…

This is a little bit negotiable, but it's where I'd start considering Kubernetes:

1. at least six independent twelve-factor-app services with their own datastores and a need for high availability across all of them and a near-complete understanding of the high-availability interactions between instances of your services

2. an inability to predict ahead of time where your system's hot spots are, necessitating rapid scaling of different parts of the application

3. a willingness to overspend on capacity to be able to respond to scaling events or deploys in seconds rather than minutes

4. an code-focused ops team (as opposed to a mouse-driven ops team) with extremely strong diagnostic skills and the bandwidth to babysit a service with a potential pain-in-the-ass ceiling around that of a Cassandra cluster

Without #1, you don't have enough variation in systems to benefit; just stick a monolithic application in an autoscaling group. (Most people should do this.) Without #2, you can lean into the hot spots of your application by scaling them horizontally--bear in mind that you'll be paying for capacity you don't use with k8s in order to get that environmental reactivity, so you could just spend that on making your hot spots faster. Without #3...well, that one's pretty obvious when you look at things like EC2 instances, which are more easily partitioned, can be spun up in smaller/cheaper groupings, and their primary downside is that it takes longer than deploying a container. And without #4, you're gonna go off the cliff.

Reasonable people can nibble at the edges. But to answer the thrust of your question: it's probably never reasonable to design a personal project around k8s unless the point of the project is to be done on k8s.

Re: You might not need Kubernetes

#105
post #74

Earlier quoted context omitted.

IMO, Kubernetes is one of those things where if you have to ask, you don't need it. It's only really "justified" if you're actually using features like: - High availability services (more than one copy running at once). - Service discovery (services talking to each other in a resilient way). - Ability to automate operational tasks. - Rolling deployments of services. Very few personal projects will tick those boxes --…

If you need high availability, you get into the second order effects: consider the risk from the complexity of the HA setup, your lack of experience with its failure modes, and lack of low level access to the managed kubernetes service? If you are not a seasoned SRE, there are a lot of "unknown unknowns" for you waiting around the corner.

Yeah, great point. Kubernetes done right can help with these things, but done wrong, it can cause more problems than it solves. Of course, for a personal project, hitting those "unknown unknowns" is all part of the growing process, but in a business context I would be even more hesitant to adopt K8s unless you already have an ops team that's ready to support it.

Re: You might not need Kubernetes

#106
post #16

Yeah, you probably don't. And not only that, but it probably makes your life harder. I've interviewed for a tech lead position at a company working with freelancers and I'm pretty sure the reason they ended up rejecting me was that I mentioned the technical interviewer that I think containers, container infrastructures (like Kubernetes) and even cloud infrastructure is being overused/used without giving too much thou…

I once got an interview from a company in the container space because one of their exec read an article I published talking about the trouble with container systems[1]. (Really good talk/interview, but I ended up not moving forward because I didn't want to move back to the west coast). I've been in smaller shops that wasted a lot of time on K8s stuff and fell behind on their timeline. If you want to run k8s, DC/OS, e…

My friend is trying his luck with his own start up, they have yet to launch a 1.0 of product but the CTO implemented K8s citing scalability. I legit laughed at that statement.

Re: You might not need Kubernetes

#107

Earlier quoted context omitted.

Does hacker news really run on one server? What if server goes down? I've always though high availability was the more important reason for multiple servers, rather than performance. Even if you have only two paying customers, they are probably paying for the right to hit your website / service 24/7.

One application server, yes. HN is fronted by Cloudflare for CDN + DDoS protection, which of course is a lot more than one server. That's why if you get a particularly long thread (1k+ comments), admins will beg people to log out so that the responses can be served from the CDN cache. Example: American 2016 presidential election https://news.ycombinator.com/item?id=12909752 (1,700 comments)

HN hasn't been fronted by Cloudflare since July.

Re: You might not need Kubernetes

#108
post #97

Maybe someone here can help me figure out what I need, since the world of containers is growing faster than I can understand. I have one code base that I run on multiple servers/containers independently of each other. Think Wordpress style. I used to run it on Heroku but I switched to Dokku because it's substantially cheaper and I don't mind taking care of the infrastructure. I like Dokku but I do worry about being t…

Kubernetes isn't the only thing around. Kubernetes and Mesos are kinda the heavyweight solutions, but there are smaller things around like Hashicorps Nomad and Swarm, and probably a lot more I don't know. We're currently evaluating nomad, and it's surprisingly pleasant. Nomad doesn't solve every problem every application in every situation might have. Nomad schedules containers, VMs or whatever else on hosts. This re…

Just came here to second this. We evaluated both Kubernetes as well as Nomad for a relatively small cluster of some worker nodes and web services. In the end, the ease of standing up a Nomad cluster and the whole feel of the thing won us over.

Nomad is a single golang binary that you can run on your laptop and have a fully working working Nomad client and server, along with a builtin UI and command line tools (same binary). The story for production is the same: Throw the binary on your server, setup a systemd unit to run it and you have another Nomad node.

If you're evaluating container schedulers and are not sure what you need, take an afternoon or so and just run it locally and play with it. If there aren't any specific features about Kubernetes you could point to that Nomad does not meet my suggestion would be to get started with it first.

Re: You might not need Kubernetes

#109

Most organizations don't need to manage servers or Ansible playbooks either. The reason Kubernetes became so popular is because the API was largely application-centric, as opposed to server-centric. Instead of conflating the patching and configuration of ssh and kernels with the configuration of an application, you had clearly separate objects meant to solve different application needs. The problem with Kubernetes is…

Ansible isn’t just ssh though. In principle you could have a k8s_deployment role for example.

Most playbooks are host oriented but one write k8s playbooks that are cluster oriented

Re: You might not need Kubernetes

#110

Earlier quoted context omitted.

Does hacker news really run on one server? What if server goes down? I've always though high availability was the more important reason for multiple servers, rather than performance. Even if you have only two paying customers, they are probably paying for the right to hit your website / service 24/7.

One application server, yes. HN is fronted by Cloudflare for CDN + DDoS protection, which of course is a lot more than one server. That's why if you get a particularly long thread (1k+ comments), admins will beg people to log out so that the responses can be served from the CDN cache. Example: American 2016 presidential election https://news.ycombinator.com/item?id=12909752 (1,700 comments)

Not Cloudflare anymore. Traffic goes to somewhere in San Diego from Europe, which it wouldn't if it was Cloudflare (different IP range too)
Post reply on HN