3 ms·
I disagree with most of the claims presented here as facts. I believe that they are true experience reports for some companies, but I don’t think they generaliz
by theptip 4y ago
I disagree with most of the claims presented here as facts. I believe that they are true experience reports for some companies, but I don’t think they generalize as strongly as claimed.
No, k8s doesn’t double the number of machines you need. You don’t need pods running more than what would be on a dedicated node.
No, you don’t need a full time engineer to run your cluster.
No, k8s isn’t unstable, I have used it in prod since v1.5 and have only seen a small handful of issues. Recent releases are boring.
I moved my startup onto k8s about 10 months in, and was our only infra engineer through series B raise @10 engineers. It took a small fraction of one expert’s time. This was widely regarded as a great idea by everyone who came later.
Maybe if you don’t have a clue how k8s works it’s going to cost that much time.
And there is the key advice where I probably agree with the author on most situational recommendations (while disagreeing on the generalization): don’t learn k8s to deploy at an early stage company. But, if you know it well already, it’s a fine choice that is unlikely to hurt short-term and might help a lot later.
Things you get: infra-as-code, with a (subjectively) way nicer API than Terraform, that you can plausibly run and test on your local machine. Easy scaling setup for unexpected growth spikes. Review apps within reach if you need them. Ditto GitOps. Managed infra because you are using GKE or EKS like a sane person (rarely need to think about patching your nodes; GKE patched the Spectre/Meltdown vulnerable for me weeks before the public announcement). Flexibility to easily run any new service (say, you want to spin up a Jupyter Hub cluster).
There are so many infra options that work for small companies that don’t have real infra challenges; if you don’t know one well already, just use Fly/App Engine until that gets too expensive. Or a single VM running a docker container; that gets you surprisingly far.
Meta: for a startup particularly pre-PMF, you should minimize the amount of learning you are doing and just iterate as fast as possible with the stack you know best. Even post-PMF this holds for quite some time until you start to hit cost/scale pain.