Migrating to Kubernetes: A Manager's Guide to Effective Transition (Part 1)

For teams that are looking to build out a Kubernetes cluster and migrate their applications, my first reaction is always the same, no matter the skill-level and capability of the team. Here's something of how the conversation goes:

First, let's identify your Kubernetes administrators and let them begin building out your clusters (a minimum of two – one for lower environments, one for upper environments, and double that if you need fault-tolerance behaviors such as fail-overs).

Then, let's identify your developers who will lead the containerization and CI/CD efforts and determine how they can begin preparing their applications to be Cloud- and/or cluster-ready. Give your Kubernetes admins some extra time and space to build in GitOps and Infrastructure as Code to manage their clusters and the surrounding infrastructure. In the end, this will make all the difference when maintaining your clusters – the time saved and reduction in manually-introduced errors or divergence will be well worth the extra effort up front.

Building the clusters is the top priority. If your cluster doesn't work, you can't begin migrations. You can't even push and test applications to validate they work. So front-load your efforts on the cluster. Then, as soon as your first cluster is ready, have your developers finish up the CI/CD pipelines to push their workloads to the cluster via a fully automated pipeline. Do not allow any manual deployments, or you will be guaranteed to carry over bad habits. Pipelines are THE way to build and deploy.

At this point, you could possibly have a very solid dev environment. Or maybe not. Either way, you've at least made it to Dev at this point, and you did so in a way that was logical, reproducable, and effective. Now that it's time to start considering what your production environment will look like, there are a LOT more considerations to be made. In a future post, I'll share as many considerations as I possibly can so that you can begin bullet-proofing your applications and clusters in your Dev environment.

Happy Kuberneting!