When I first got to Deis, I worked on the PaaS. It’s now called Deis Worflow, but at that point it was just Deis. It was basically trying to be a Heroku for Kubernetes – open source, you can go and install it on Kubernetes. Then right before I got there, Helm had kind of become a thing, but it looked super different from what it looks like now. It was just kind of like, “How do we get people to easily install the PaaS?” Because at that time there were seven or eight different components, and you could use most of those components on their own too, if you wanted to.
So it was kind of like this plug-and-play thing where if you wanna use your own logging you can, but we’ll also ship you components that can do most of the logging stuff that you’ll need. Then there is the router, the routing mesh – you could use that on your own, and it would fit into the PaaS.
Helm popped up because we wanted to give that flexibility to people without writing a thousand page document with specifications for each module, and having sample manifest and all that stuff. So Go came into play big time with the PaaS, because we had to do things like watch the Kubernetes event stream, see when a pod comes up and see the status of the pod.
When you’re watching an even stream that screams concurrency, once it screams concurrency, then I just pick up Go. It’s just the easiest thing for me, by far. Before we picked up Go there was some Python… Actually, there was some Go before I came to Deis, and then there was some shell script. The shell script component was what I first worked on. That was the thing that we had to watch the event stream in. We started with a four-loop in a shell script.