6 ms·
My favourite tin-foil hat conspiracy theory is that Kubernetes, microservices etc are promoted by big tech to lure potentially disruptive small teams into adopt
by danjac 4y ago
My favourite tin-foil hat conspiracy theory is that Kubernetes, microservices etc are promoted by big tech to lure potentially disruptive small teams into adopting momentum-killing rabbit-hole solutions because they are "best practice"...
This also holds for project management practices such as Scrum.
- gloosx 4y agoActually used k8s for the first time ever to set-up a new product from scratch. I would call it essentially an Autobahn whereas everything else was a dirt road. Our team is just 3 people, and it took me just 1 week and 1 youtube video to setup a 100% availability load-balanced production env cluster with 5 node.js microservices, and it is working like a charm, rollout deployment takes 30-60 seconds and i can monitor it all at glance without leaving my terminal. UPD: I was into your theory too before:)
- concordDance 4y agoWhat was the video?
- gloosx 4y agoHappy to share! This guy just made it a breeze for me. https://www.youtube.com/watch?v=heQbbrSu8LM https://www.youtube.com/watch?v=heQbbrSu8LM
- lmarcos 4y agoThis is the equivalent of "My cousin can build me a website in a weekend. Why are you charging me so much Mr. software engineer?"
- deleted 4y ago[deleted]
- TeMPOraL 4y agoAt this point it could be simply that enough bodies were thrown at k8s and related tooling that, though oceans of sweat, blood and tears, rough edges were filed down or at least marked as dangerous, and enough iterations of guides and tutorials were made that, finally, you can set up a production cluster with one week and one YouTube video and no human sacrifice.
- danjac 4y agoGetting something up and running and managing something long-term are two different things. I'm sure - even though I'm not particularly smart - I could get a simple k8s solution up and running in a week with the help of a YouTube video. What happens six months in when I hit some critical k8s related issue and I lack the basic understanding of where to even begin to debug and fix it? For example I may introduce a serious security issue in a CI pipeline or whatever just due to inexperience and unfamiliarity. I'm not saying Kubernetes (or for that matter, microservices) is the wrong pick for a small 3-person team. You know your own business better than I or anyone else and I'm sure you made the right choice. But personally I would be cautious about adopting a core production technology where my experience consists of one week and a YouTube tutorial.
- steveBK123 4y agoYes. As long as your k8s is some self contained island of code needing no R/W access to resources on k8s, maybe I'll believe it's easy to setup AND to support. Additionally if you are in some type of small shop environment where you have basically unfettered permissions in AWS console to do what you need, doubly so. Now try to get access to/from RDS, S3, EFS, Netapp NFS, some HTTP endpoint on-prem, some other HTTP endpoint on EC2, non-MSK Kafka, cross account, etc? Pain. Oh you need to submit a ticket to your Linux sysadmins, Infra team, CloudOps, DevOps, Networking or Infosec for each of the above permissions? And sometimes need 2-3 of those teams to coordinate to make it happen? Death.
- thegginthesky 4y agoI've worked on 2 companies where I was in a team of 4/5 devs + 1 SRE in charge of the infra. In both cases, once the SRE guy created the appropriate terraform modules and CI template, he had to move on to a new team because there was literally no work left for him to do. Once things are infra as a code and the happy path is defined and implemented as a process, we rarely lost time thinking about infrastructure. Or anything. The system needs permission for AWS S3? Here is the component. Does it need to setup secrets? Here is the component. Does it needs to be in the same VPC as a Redshift cluster, or whatnot? There's a component for that. Do you need a SQS/RDS/Redis service? You get it. K8s, terraform and Atlantis have been such huge enablers I cannot overstate. Everything is so nimble and cheaply setup that our current infra bill is about 500USD/month to generate over 100k MRR for the company. And better yet, we rarely ever think of our infra unless we want to do something brand new (such as testing Sagemaker), or there's unexpected traffic above our current scaling limits (about once a year). Plus, if we need to fix anything infra related there's an internal cookbook for that. I also feel I have acquired useful skills by learning all of this.
- tored 4y agoThus you wasted 1 week, you can build a prototype for a new product in that time.
- pammf 4y agoI don’t understand all the blame that k8s get as well. Using the defaults, it can be as simple as you’ve made it; a reverse proxy load balancing multiple instances of a containerized application. I wonder what other simpler tools/solutions could be used to address scalability and high availability requirements.
- kasey_junk 4y agoThe “old fashioned” way of doing that would be to just have some base images and init scripts running on vms with a load balancer. That will scale a small number of containerized services just as readily as kubernetes and will have a lot less moving parts. Where a more robust container orchestration system shines is when you have many disparate teams deploying disparate workloads and need to encode conventions around things like networking, service discovery and security policies.
- danjac 4y agoOr use a PAAS (Fly.io, Render, maybe even Heroku I guess) if you just want to get your MVP out there while you focus on your product and business.
- pammf 4y agoI think that the level of complexity to set it up is not far below and you would miss some features that you get out of the box with k8s: - Proper monitoring of the health of the instances (simple load balancer health probes rely only on ports listening, which is quite brittle) - Dynamic resource management I.e. does this vm have enough cores/memory to host this number of application instances - Centralized/automatic port mapping. If your app listens on port 5678 for example, to be able to run more than one instance in a single vm you need to map it to different host ports and keep your load balancer configuration up to date with that.
- kasey_junk 4y agoYou will definitely add complexity if you want to run multiple app instances per node. I do not view that as particularly compelling for any runtime that supports concurrency out of the box in a virtualization environment. As for health probes, I worked with load balancers in the late 90s that could use endpoint health checks so I’m not sure what you mean.
- nine_k 4y agoWould you save a week if you just ran it from 2 boxes behind a HAProxy / ELB? Would it save more if you did not choose microservices, but wrote a monolith (for purposes of deployment) neatly divided into modules (for purposes of architecture and splitting the work)? I'm not assuming positive answers. But I know that current hardware is absurdly performant, and you can serve a surprising number of real users from a $60/mo instance, plus some database. (Managing monoliths via k8s is a thing though, and it works reasonably well.)
- gloosx 4y agoYeah, I mean my prior level was - spin up a single EC2 instance and do all the dirty stuff there, or just throw everything at vercel interfaces. In a short timespan I was able to learn how to spin up some kind of alien future technology servers. I don't need AWS Elite Certificate now to be able to navigate their bulky GUIs. I don't even need the GUIs or some hefty cli multiliners, just some very clean and declarative .yaml configs in the dark vasts of my vim, and it spins up. Next level stuff.