3 ms·
Why do developers find Kubernetes so hard?
- metaloha 4y agoI don't know that Kubernetes and Docker are intrinsically difficult, but it's a lot to learn in addition to everything else a developer needs to know these days. The barrier to entry is consistently getting higher and specializing in one of the three disciplines is often discouraged. ----- As a front-end coder, the delivery mechanisms aren't important to me. I have requirements that need to be met (geographic dispersal, session stickiness, etc.), but my job does not include setting up servers. As a back-end coder, the container mechanisms aren't important to me. I need to know how to reach the database and 3rd-party APIs, and I have security requirements that need to be met, but my job does not include setting up servers. As an operations engineer, the development languages aren't important to me. I know how to setup the right servers and containers and security and communication channels between everything, how to get the DNS to round-robin (or whatever solution for load-balancing I use), and I have security and performance requirements that I need to meet. ----- Many of us are generalists in this sense. Developers very often know enough about web servers (Apache, nginx, etc.) and database servers (MySQL, PostgreSQL, Redis, MongoDB, etc.) to set them up reasonably well, and enough about TCP/IP to get everything running on a hosted server or two somewhere with working DNS. When VMs became popular as a way to ensure consistency between a bunch of different developer machines, we still didn't really need to worry about containers on the server. Then when containers became the next big thing, the tech wasn't quite ready for Joe Developer, but it was pretty well setup for Jane Devop. And that's the crux of the problem - Kubernetes isn't necessarily hard for dev ops engineers since it's completely within their purview. It's asking developers to also be accomplished dev ops engineers that's creating difficulty. It's like requiring your mechanic to also be a professional race driver. It's like expecting your pilot to know how to rebuild a jet engine. Yes, there are some who can do it, but most of us are just barely making it work because we _have_ to and concentrating on the development instead. If we want containers to be easy, then there should be a CLI that asks me a few questions (what host, what server-side language, what front-end requirements, what external services, etc.) and it spits out all the configuration I need to deploy to my host of choice with a single command. Better yet, build this into a build plugin for my IDE. As a developer, I don't really want to know what all that stuff in an Apache or nginx config file does, but I need to. I shouldn't have to edit more than two or three lines in a PHP ini file to handle memory limits, but I need to. And I definitely shouldn't be deeply versed in two or three different deployment container technologies in order to get a job as a front-end developer.
- thunky 4y agoKubernetes is so complex that we now have all kinds of tools that exist to try to make it usable. Isn't that a sign that something is wrong? When k8s still breaks in glorious ways, these tools will just be in the way as another layer of complexity on top of endless complexity. And for what? Is this complex machine really making things better, or does it just give us a sense of accomplishment that we can solve problems we don't even have? At what point do we take a step back and realize that maybe we made a huge mistake?
- peanut_worm 4y agoYou can probably say the same for a lot of recently popular technologies, like React and Rust. They all have their uses but they don’t need to be shoehorned into every project.
- thunky 4y agoTotally agree. I think we're starting to see the beginning of a reversal away from SPA madness (maybe I'm just being optimistic). I believe the same will happen with Kubernetes eventually, but it probably needs to do a lot more damage first.