Settings

Theme

Ask HN: Kubernetes Worth It?

8 points by ozmaverick72 3 years ago · 6 comments · 1 min read

Reader

To paraphrase Phil Greenspan’s famous LISP quote: “Does any sufficiently complicated micro service architecture contain an ad hoc, informally specified, bug ridden, slow implementation of half of kubernetes?” Thought that might be an interesting way of saying is it worth bitting the bullet and spending the effort to understand and use kubernetes.

yuppie_scum 3 years ago

It’s wonderful software but it is expensive as hell to hire people for. You may be better off hiring junior and sending them for CKA/CKAD certifications.

  • cratermoon 3 years ago

    The OP was asking if it's worth spending the time and effort to understand and use Kubernetes, nothing about hiring for it. In other words, from the programmer/sysops side, it's very much worth learning. Learn Go while you're at it, if you don't already know it. Nearly everything in the k8s ecosystem is written in Go, and there are lots of conventions in the space that make more sense if you know Go conventions.

    • dev_0 3 years ago

      Any benefits of learning Golang?

      • cratermoon 3 years ago

        Anyone that can wrap their mind around the model of Communicating Sequential Processes[1] implemented using channels in Go will improve their programming. See also Concurrency is not Parallelism by Rob Pike: https://www.youtube.com/watch?v=oV9rvDllKEg

        After I figured it out, I spent a good month writing personal projects to play with channels and concurrency and get the "these are cool I'm going to use them everywhere" urge out of my system.

        1 http://www.usingcsp.com/

        • verdverm 3 years ago

          Interfaces and the Go way of using them is arguably more important than CSP, as the former can apply to all code while the latter is only needed for concurrent code. The Go talks have many great gems, GopherCon talks too

          • cratermoon 3 years ago

            Interfaces are great, and easier to understand than Go's concurrency. Maybe the hardest part is getting the idea that neither interface nor implementing code need to know anything about the other.

            Here's a fun experiment: dig through your codebase and find all the public methods, then look at the signatures and find the top 3-5 most common constructs. Now define an interface using those. Perhaps not very useful, but interesting to see. I bet a comprehensive audit of Go code in the wild (not including the standard libraries) would find a lot of types implementing something like this this:

                type StringHandler interface {
                    Handle(string)
                    Parse(string)
                    Count() int
                }

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection