$ cat post/kubernetes-maturity-check-in:-where-we-were-in-2017.md

Kubernetes Maturity Check-in: Where We Were in 2017


November 20, 2017. A year ago today, I was part of the early majority of people trying to understand and adopt Kubernetes at scale. Today, it feels like a completely different world.

When I first dove into Kubernetes back in 2016, it felt like we were on an exciting rollercoaster ride with no clear end in sight. Now, as we hit late 2017, things are starting to settle down. The container wars have been won by Kubernetes, but the heavy lifting of building and managing a production cluster is still very much in its infancy.

Back then, every day was filled with excitement, frustration, and constant learning. I remember the first time we hit an issue where a pod wasn’t getting scheduled properly because the cluster didn’t know about all the nodes. It’s funny to think that back then, these were real problems.

We started out with a single development cluster running in our office. As soon as we could, we needed to start splitting responsibilities for operations and development. But in 2017, even simple tasks like setting up a proper monitoring system seemed daunting.

At the time, Prometheus was just starting to gain traction over older solutions like Nagios. Grafana was quickly becoming the go-to dashboard solution, but it still required some elbow grease to get everything wired up correctly. We had to cobble together various scripts and tools just to make sure we could keep an eye on our cluster.

One of my biggest takeaways from that period was understanding the importance of GitOps. At first, I thought “Why not just use Jenkins for deployments?” but as more time passed, it became clear that using GitOps principles would save us a lot of headaches in the long run. We started to embrace tools like Argo CD and Spinnaker, even though they were still in their early stages.

Around this time, Helm was starting to come into its own as well. I remember the first time we used it; it felt like magic compared to trying to manage a bunch of YAML files manually. But as with everything Kubernetes-related, there was always room for improvement and learning new commands and flags every day.

Speaking of learning, one of the biggest challenges during this period was navigating the rapidly evolving landscape of Kubernetes ecosystem tools. Istio was starting to gain some traction, but it still felt more like an alpha project than a production-ready solution. Envoy, on the other hand, seemed to be gaining ground as a service mesh option.

In 2017, I also started learning about serverless architectures and how they might fit into our strategy. The idea of “serverless” was intriguing, but the reality of building it with something like AWS Lambda felt very different from what we were doing with containers. It seemed to require a completely different mindset.

One of my favorite moments from this period was when I managed to set up a full-scale staging cluster using Terraform for our development team. At the time, Terraform 0.x still had some quirks and limitations, but it was powerful enough to let us create and destroy clusters at will without too much hassle. We spent countless hours fine-tuning our Terraform scripts to get everything just right.

Looking back, those were definitely exciting times. We faced challenges every day, but the sense of progress and continuous improvement kept pushing us forward. Today, as we approach 2018, I can see how far we’ve come with Kubernetes. While there’s still a lot to learn and improve, the journey has been worth it.

The macOS High Sierra news about the root login with an empty password was a stark reminder that security is always something we need to be vigilant about—especially in infrastructure roles. And the debate around net neutrality and the increasing hostility towards free internet access is a topic that hits close to home for many of us who rely on open and accessible web technologies.

As I reflect on 2017, it’s clear that Kubernetes has come a long way since its inception. From my personal experience, the journey from novice to seasoned Kubernetes user has been both challenging and rewarding. The tech landscape may have moved on, but the lessons learned and tools used back then continue to shape how we approach modern infrastructure today.

Stay tuned for more updates as we move into 2018—there’s always something new around the corner!