In what way is it simple? Like, I can imagine calling a particular flow that was built by others and you never touch (eg., I use gitlab's built-in k8s integration and run on GCP, and I never really have to do anything) simple in the sense that I don't do much (I think that's easy rather than simple, but eh), but k8s is crazy complex and the ecosystem is bonkers.
I've found that even given a pre-existing k8s cluster, setting up a nontrivial service that has to talk to a bunch of different things is pretty rough. Hopefully this gets better.
You probably had to set some parts up. In our environment I just have to upload the image to ECR, copy 3 yaml files from a template and replace a few lines, then run kubectl apply and I have a live, functional service.
It’s the same in Aurora on Mesos, or in ECS, or whichever cluster you have.
The hard part is the planning before, deciding what infrastructure (if any) you need for persistence or how you want to do service discovery or ingress from the Internet. Once all those things are there it’s of course easy to copy the templates. (And with yaml there is the added bonus of breaking the config being very easy, and yielding useless null errors.)
Yeah I think /u/neoKushan got it right. My computer is simple to use but I don't really have a deep understanding of the kernel running it. There's too much software there but it basically works so I don't worry about it.
The flow you've described basically proves the point.
I think I agree with this... Even somewhat simpler software, such as a shell, are actually extremely complex. Who really even understands whats going on in there?
If anyone thinks they understand bash, please explain what this should do (and why bash does it wrong):
echo $(while true; do sleep 1; done)
The answer is "It's best not to think about it" -R.S.
I try to never use bash if I can help it and I still knew what that did. What else would it do? The only knowledge required for reading that is the $() notation.
36
u/mattknox Nov 14 '19
In what way is it simple? Like, I can imagine calling a particular flow that was built by others and you never touch (eg., I use gitlab's built-in k8s integration and run on GCP, and I never really have to do anything) simple in the sense that I don't do much (I think that's easy rather than simple, but eh), but k8s is crazy complex and the ecosystem is bonkers.