Remix.run Logo
Deutschlandds 3 months ago

I find it always interesting and weird to read so dimetrical points to kubernetes.

1. Cloud for me is a lot better than what we had before: Before i had to create a ticket for our internal it department, have huge cross-charges (like 500$ for a server, instead of 50), had to wait for a few weeks and than get lectured that installing basic default tools on that suse based server would take a week and add additional cross-charges onto it.

Their reasoning? Oh we do backup and upgrades...

With cloud, i click a server in a Minute for less money, i upgrade it myself and have snapshots as a basic backup workflow which actually is reliable and works.

Then k8s came along and let me be clear: my k8s setup is big, so its definitly worth it but tx to my experience with a bigger k8s setup, my very small ones are also working very very well. I get, out of the box, HA, network policies, snapshotting through my selected storage setup, Infrastructure as code etc.

Instead of having shitty shell scripts, ansible setup and co, i only write a little bit of yaml, check it into my git system and roll it out with ansible. Absolut no brainer.

And the auto healing solved real issues: Out of memroy? just restart the pod. Out of disk? Just recreate it. Logging and metrics just works out of the box thanks to the prometheus based monitoring stack.

Starting with one server, yeah why not but you know you are not doing it right if you are the only one who can set it up and recover it. But if you don't have anyone with expertise, i would also not just start with k8s.

If my startup is a pure application + db thingy, i would go with any app platform out there. But we have real servers because we do stuff with data and need sometimes performance, performance is expensive if you run it in the cloud.

gizzlon 3 months ago | parent [-]

> shitty shell scripts, ansible setup and co, i only write a little bit of yaml

Why are the shell scripts shity but the yaml not? When I look at those yaml files I always throw up just a little :P

Also, have you tried Cloud Run?

Deutschlandds 3 months ago | parent [-]

Yaml is declarative, you tell k8s what you want and how it looks.

For shell scripts, try proper error handling. You start doing some catch hooks, you have issues cehcking error codes of different tools, debugging is hard too.

In one infra project we swtiched from shell scripts to golang just to have a lot more control/stability of our scripts.

gizzlon 3 months ago | parent [-]

YAML is not declarative, it's a format. Well, according to Wikipedia it's a "data serialization language". IMO It's also bad choice for this, and those files become unreadable and hard to work with.

Agree that shell scripts are also hard to work with, especially if you did not write them yourselves. I guess it's a combo of the language features of, say bash, and that no one who writes them really know bash. I mean, at all. Including me.

Declarative is nice, but also have pros and cons. And, it's of course many ways to achieve this if that's a priority.

Usually, what you really want is: Low time to replicate AND no data loss if a server blows up. But this also have to extend to, say, the k8 cluster. And, again, many ways to achieve this.

The article does not call for Ansible setups and shell scripts though.

Cloud Run uses YAML btw. One of the things I personally don't like about it

Deutschlandds 3 months ago | parent [-]

Yes sry i was not precise but k8s is declaritive and in that particular case, i find it very fitting. I dont love it, but its direct.

What i like with that declaritive setup: The other side, the executer, can be actually something reasonable to build and be reused. This strategy or architecture, feels a lot better than the classical approach especially because its so so often always the same thing.