2 ms·
Nice to see another one man company avoiding k8s. I've been planning zero-downtime upgrades for my Elixir app (https://bernard.app https://bernard.app) which m
by sph 3y ago
Nice to see another one man company avoiding k8s.
I've been planning zero-downtime upgrades for my Elixir app (https://bernard.app https://bernard.app) which makes heavy use of live views and long running background processes and zero downtime is not something which is super easy to do with bare podman, and I didn't want to reimplement half of k8s in bash.
Long story short, after one week of research, I have changed my mind and decided that writing a custom, half-baked crappy solution with Caddy, podman, a bash script and effort is still a couple orders of magnitude easier than buying into the k8s circus.
In fact, I like the k8s philosophy, it does make sense to someone that has managed services for almost 2 decades. K8s is wide because the problem is complex. What makes no sense whatsoever is the bullshit that lives around and outside it: Helm, YAML, templating systems which feels as flexible as COBOL, Argo, Flux, certificate rotation, etcd, k3s, k0s, RKE2, and I could go on for half an hour.
Yeah, bash script, podman and systemd it is for this one man business. I just wish I could throw Ansible into the flaming sun.
- pton_xd 3y ago> I just wish I could throw Ansible into the flaming sun. What's wrong with Ansible? I've successfully operated a few services at scale (~20 VMs) with it and it's always been the most dependable part of my setup. I basically use it as a "better bash" for configuring machines. I do ignore their recommended project structure that results in an explosion of YAML files for roles, vars, etc and just define a set of simple playbooks, one for each component of the infrastructure. Everything is hooked together with a few python scripts that generate a dynamic inventory and hook up other vars that are passed to the playbooks. Works great and does what you expect.
- sph 3y ago> What's wrong with Ansible? The abomination built upon YAML and Jinja because they wanted a declarative system (programming is scary!), and later tried to make it Turing-complete. Jinja filters for variable means you need to learn a third language: not only you need to know YAML and Python, now you need to learn all the idiosyncrasies of Jinja's syntax and filters. Add that with the terrible documentation, which explains everything by example, but there is no single, for example, reference page that lists all supported filters and functions.