Kubernetes is hard! Lessons learned taking our apps to Kubernetes

A presentation at Dev Dialogue Meetup May 2019 in in New York, NY, USA by Baruch Sadogursky

Today, Kubernetes is the defacto standard if you want to run container workloads in a production environment, though that wasn’t always the case. We had/have a fair amount of monolithic code for our products and to make sure we could build GoCenter in a way that would be easier to manage at the scale we needed to make changes. For us, that meant changes to the way we write code (more Go), how we build apps (using Docker and Kubernetes), and how we deploy (using Helm). We had to figure out a whole bunch of things as we looked at building proper microservices that we could deploy to Kubernetes. During the session, we will pay special attention to things like logging, persistence, limits, and probes because containerizing an app is not simply putting your existing app into a docker container. As we’re looking at containers, knowing exactly what is in the container in terms of licenses, packages, and vulnerabilities was, and is, incredibly important to us to keep our cluster and data secure.