| Tell me about it. It's laziness if you ask me (not that anyone is, and that might be a good thing.) I would have rather we (as an industry) focused on the developing better languages and frameworks to write our software with. Look at Go for example... With Go I can create a single binary, produce a DEB or RPM and deploy it using Ansible. If I need to update the software I make a change and push it through the CI/CD stack, resulting in another binary, then another DEB/RPM, then an updated set of servers. I then restart a service... so hard /s If I need to run micro services, then, you know, just run them? They're all statically linked, singular binaries on disk. If I need to run 500 of them, then I just run them. Each gets whatever port it can find and registers its self with (something like) Consul and just like that, I'm DNS query or an API call away from knowing what services I have, where they are and what port to talk to them on. I believe we should be focusing on making those processes better, not just adding more complex layers on top of simple solutions. I know K8s has its benefits, but I believe the same benefits can be realised easily enough without the complexities that K8s brings. Obviously I can't outline them here in a comment on HN, but I am working on providing a POC in the near future. EDIT: and to those down voting me: that's also lazy. Cognitive laziness. Prove me wrong. Also, I don't care about Internet Points, I care about the truth and finding what's true. I wish you the best of luck though. |
What's so hard about sticking the binary in a container? That way you don't need to worry about installing it or generating debs/rpms, everything it needs is in the image.
> If I need to run micro services, then, you know, just run them? They're all statically linked, singular binaries on disk. If I need to run 500 of them, then I just run them. Each gets whatever port it can find and registers its self with (something like) Consul and just like that, I'm DNS query or an API call away from knowing what services I have, where they are and what port to talk to them on.
So finding a free port and registering itself with Consul would need to be built into every service you run. Just run them in containers and let k8s handle the service discovery.
I see what you are saying, but k8s really makes the pattern you are describing easier. It also standardizes it so every company is not managing home-grown ansible and consul mash-ups.