Hacker News new | ask | show | jobs
by ProblemExplorer 820 days ago
> All those things you (a developer) could mostly clone, slightly customize and ship both to a development k8s cluster and to a prod k8s cluster (with all the safety nets already in place).

How did/does the devs create, test new code and debug issues? Can they do that locally on their local laptop? If so, how?

2 comments

>> How did/does the devs create, test new code and debug issues? Can they do that locally on their local laptop? If so, how?

I used to buy the idea of this when there were monoliths.

Then I had the joy of running a shop with dozens of web properties.

Local dev became untenable. My systems admin was an early adopter of Xen. That shop ran like a dream... devs could come in and have a new environment update in place and just start to work. Staying in sync with prod was never a problem.

By making systems guys keep devs fed, by making devs work closely with systems folks you get better software. Containers just hid developers shitty decision making in a wrapper that Systems folks can tolerate.

And how DO you debug... cause what you do to figure a problem out locally is not how you trouble shoot when the shit hits the fan in prod. These tools should be the same, sane and well used and loved by everyone. Local debugging is part of the problem, even more so if your service based app that lives and dies on the wire.

> How did/does the devs create, test new code and debug issues? Can they do that locally on their local laptop? If so, how?

All those questions are irrelevant to how software gets deployed. Do whatever you want on your laptop.

Then I assume you have a custom Kubernetes LB that can handle non-HTTP TCP and UDP traffic because you choosing Kubernetes and the design restrictions that comes with it does not affect how the dev solves problems?

The underlying orchestrator definitely affects how the software needs to behave and is definitely not irrelevant.

> Then I assume you have a custom Kubernetes LB that can handle non-HTTP TCP and UDP traffic because you choosing Kubernetes and the design restrictions that comes with it does not affect how the dev solves problems?

nginx-ingress-controller does that. no custom stuff required.

https://kubernetes.github.io/ingress-nginx/user-guide/exposi...

Follow the signposts laid out by https://12factor.net.

Think about how to apply those ideas to containerized applications.

Consider that such applications can be run in the same way locally, on a server, or in an autoscaled cluster.

Not sure why TCP/UDP load balancing complicates matters.

Which LB doesn't support non-http flows?