Remix.run Logo
Deutschlandds 6 hours 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 6 hours 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 5 hours 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 5 hours 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