4 ms·
Great critique! Reminds me a bit of Back to the '70s with Serverless (2020) http://evrl.com/devops/cloud/2020/12/18/serverless.html http://evrl.com/devops/clo
by chubot 4y ago
Great critique! Reminds me a bit of
Back to the '70s with Serverless (2020) http://evrl.com/devops/cloud/2020/12/18/serverless.html http://evrl.com/devops/cloud/2020/12/18/serverless.html (2020)
which I linked from
Summer Blog Backlog: Distributed Systems https://www.oilshell.org/blog/2021/07/blog-backlog-2.html https://www.oilshell.org/blog/2021/07/blog-backlog-2.html (Kubernetes is our generation's Multics)
I'd say the key issue is that the cloud "abstractions" are leaky, and they don't compose. This leads to combinatorial explosions of code and frameworks.
- brabel 4y agoI've had to embed a distributed cache into our product, which is a server customers run themselves... I got it working pretty quickly, then spent lots of time testing everything on Docker containers to make sure the distributed part of it was working. Finally, I started testing it on Kubernetes because a lot of customers seem to use that in production. That forced me to work on the following things (after I had to learn details of how the cache works and how to configure it correctly, use its API, design a good integration for it into our product etc.): - Kubernetes basics, like what a pod, service, deployment etc. is. - Helm charts for configuring everything (lots of YAML). - Terraform to kick off the infrastructure in the "cloud". - Minikube to run things locally. - Using Docker K8s as Minikube didn't work well on my Mac M1 for some "reason". - Installing Lens, a UI to make sense of the hundreds of pieces I was now juggling. - Configuring the cloud environment with the right permissions for devs to be able to use it. - Network configuration so nodes can "talk" to each other, without exposing things on the Internet for no reason. And probably a few dozen more little things that ate up all the time I had. Designing and writing the code to make things work locally and in a Docker container (running Docker compose) was pretty easy and took me a couple of weeks, including a lot of testing.... but once I started with the k8s, cloud stuff... I've been on it for a few months now :( and things are still not working reliably in "certain cases" (everything that changes seems to break something). It's a real nightmare and took all the fun out of the project for me. Really makes "programming" something else entirely that I would be very happy to leave to a good sysadmin to handle.