Kubernetes is quickly becoming the industry standard for server operations. New software projects today are typically designed to be cloud-native. However, much of the software still running in the wild predates Kubernetes and containerization. This talk is a practical discussion with real-life examples of deciding whether to port a legacy application to Kubernetes and how to avoid common pitfalls once you’ve decided to do it.
Early in my career I was working for a tech firm that had recently grown from a tiny startup to a company with a few hundred employees. One day the CEO gave a company-wide address in which he explained, “Startups produce code more efficiently than large companies — therefore we will continue to run this company like a startup!”
Unfortunately, in practice, this essentially amounted to free soft-drinks and everyone being expected to work unpaid overtime every day.
I remember at the time thinking, “That’s not how it works. There are reasons a big company can’t function like a startup.” And if you figure in all of startups that fail, it’s not even clear that startups produce more code-in-production per developer than larger companies.
In retrospect, I view that boss’s silly speech as a gift. It has inspired me, as I’ve worked at different companies over the years, to observe carefully the ways that “startup mode” differs from scalable practices — and to think about the best strategies for getting from one to the other.