2,359 karma · joined June 26, 2012
(also curious if they'd call going hard on crypto / options "gambling" or not :P, which might be more about how hard it is to get ahead in todays economy than playing games as a kid, but that point is a very hard digression from what we're talking about here).
I suppose that's true in one sense - in that I'm using EKS heavily, and don't maintain cluster health myself (other than all the creative ways I find to fuck up a node). And perhaps in another sense: It'll try its hardest to run some containers so matter how many times I make it OOMkill itself.
Buttttttttt Kubernetes is almost pure maintenance in reality. Don't get me wrong, it's amazing to just submit some yaml and get my software out into the world. But the trade off is pure maintenance.
The workflows to setup a cluster, decide which chicken-egg trade-off you want to get ArgoCD running, register other clusters if you're doing a hub-and-spoke model ... is just, like, one single act in the circus.
Then there's installing all the operators of choice from https://landscape.cncf.io/. I mean that page is a meme, but how many of us run k8s clusters without at least 30 pods running "ancillary" tooling? (Is "ancillary" the right word? It's stuff we need, but it's not our primary workloads).
A repeat circus is spending hours figuring out just the right values.yaml (or, more likely, hours templating it, since we're ArgoCD'ing it all, right?)
> As an side, I once spent HORUS figuring out to (incorrectly) pass boolean values around from a Secrets Manager Secret, to a k8s secret - via External Secrets, another operator! - to an ArgoCD ApplicationSet definition, to another values.yaml file.
And then you have to operationalize updating your clusters - and all the operators you installed/painstakingly configured. Given the pace of releases, this is literally, pure maintenance that is always present.
Finally, if you're autoscaling (Karpenter in our case), there's a whole other act in the circus (wait, am I still using that analogy?) of replacing your nodes "often" without downtime, which gets fun in a myriad of interesting ways (running apps with state is fun in kubernetes!)
So anyway, there's my rant. Low fucking maintenance!
And if you like "garfield minus garfield" then perhaps I can also introduce you to Chief O'Brien at Work https://chiefobrienatwork.com/
(the term they use is “authenticated origin pull”)
Basically I’m just using the API to spin up machines, which do some work and shut down. There’s some extra machines per build job, like database containers or a headless browser for testing. Pretty smooth in my experience.
I think the only occasional issue I hit is the internal DNS being a few seconds behind reality.
Now they're both in early-years of school. Attendance is kinda interesting!
We parents EXTREMELY want the kids to go to school as it's the much-needed break to get our own work done - both in basic upkeep of our lives/household, and in our careers. We need the school hours to be long. Longer than they are, in fact. (As a side note, my kindergartener only gets like 20 minutes of recess? wtf? Have you met children before?)
On the other hand, life is expensive. Being restricted to only travel during the most expensive times to travel (around school holidays) isn't ideal. We can work with our kids to make up lost school time.
I also just don't like this third party entity whose value seems to go down every year to control our lives!?
Teaching (from the teachers point of view) increasingly is geared towards meeting metrics that are divorced from the needs of the kids. The teachers incentives are being misaligned with ours.
Additionally, I think we've (royal we) grown distrustful of public school in general. Not in a "big government" sort of way, just that we need to acknowledge that US public schools are designed for conformity. Being different (e.g. having ADHD, or being "on the spectrum") is not tolerated well - you might find your kid in a special needs bucket that effectively segregates them into programs that might not fit their needs at all.
At the same time, private school costs are huge and often the ones closest to you come not only in an extreme monetary cost a culture cost - being overly religious, or not religious enough (YMMV).
So, yeah, it's hard to really want or care to "be a model citizen" to the public schools that are increasingly putting up the pressure on parents (that's a whole other topic, why aren't grandparents capable of being helpful any more? where did our support networks go?) while standards that might be outside of the school's control are lowering their ability to give quality education.
(Also, pay the f*&king teachers, maybe!?)
It also took learning other languages to understand how PHP is so unique in how tied to HTTP it is (rebuilding its entire universe every request).
(these learnings happened when moving beyond the PHP-based CMS style of development - agency style work on my case - to make more custom software).
gpu-friendly base images tend to be larger (1-3g+) so that takes time (30s - 2m range) to create a new Machine (vm).
Then there’s “spin up time” of your software - downloading model files adds as long as it takes to download GB of model files.
Models (and pip dependencies!) can generally be “cached” if you (re)use volumes.
Attaching volumes to gpu machines dynamically created via the API takes a bit of management on your end (in that you’d need to keep track of your volumes, what region they’re in, and what to do if you need more volumes than you have)
I absolutely do not want my TV to get louder when one of my kids is shrieking. Just adds stress on top of stress
I think the deployment story for for React apps is monopolized by all the at-the-edge startups, and they don't run containers(?). Even Fly.io doesn't run containers (you make a Docker image as your "deployment artifact", and Fly creates a Firecracker-friendly VM from it).
Are there go-specific reasons for that? The edge case of "you might register HTTP routes in a bunch of places and it's harder to find that if multiple routes match" seems like something that be worked around with tooling.
I've (ab)used the behavior of "first to be matched wins" a ton in my career - there's been a bunch of "business case" times when I've needed like `/foo/bar` to be one registered route, and `/foo/{id}` to be another.