3 Things Every CTO Should Know About Kubernetes
Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications.
Whilst Kubernetes boasts a range of useful technical features, as always, tooling is never used in isolation and is dependent on the underlying infrastructure, the team using it and so on.
Here are my top three things every CTO should have in place before using Kubernetes in production (if they want to be successful!).
1. You Need a Rock-Solid Foundation
The number one issue most organizations face when implementing kubernetes is with the platform running underneath it. It doesn’t matter if it’s a private cloud based on VMware or a public cloud like AWS, your platform needs to have been running stably for some time and be well-equipped with the following infrastructure basics:
- Provisioning: creating VMs on demand, using golden images with HashiCorp’s Packer
- Networking: DNS, load balancing, VPCs/VLans, firewalls/security groups
- Storage: NFS/EFS/EBS provisioned through APIs
If these infrastructural building blocks aren’t in place, you will struggle with numerous issues when trying to deploy and operate a Kubernetes cluster.
As a rule of thumb we usually recommend to our clients that they start with a public cloud provider like AWS and equip themselves with some of the Hashicorp tools like Terraform and Packer to achieve a rock-solid infrastructure foundation.
2. You Need to Build a Strong Team
It’s a challenge to get container orchestration right and takes some time to put all the pieces in place.
Crucial is a well-rounded team, including some members with very strong Ops background that can get their hands dirty debugging the low-level stuff, some automation engineers that will take care of the day-to-day tasks of setting up and managing the cluster and more development-minded people who will ensure the CI/CD pipeline is running smoothly and that developers have a nice experience.
Here are some tips on building a team:
- Find teams that are already experimenting with containers, maybe they have Docker Swarm or Rancher running somewhere in your organization. They are probably already hungry for Kubernetes and will be more than willing to work on implementing it.
- Upskill your current dev and ops teams on containers and container orchestration.
- Hire new talent. In some cases you might find that the best option is to build an entirely new team that isn’t bogged down by the current processes and can demonstrate to other teams what the future looks like and get their buy in. Remember though: it is a buyer’s market and this might not be an option if you can’t offer remote working or a central London location.
3. It Is All About the Community
The main reason why Kubernetes is the number one container orchestration system of choice is the community that supports it.
Kubernetes is originally based on Google’s Borg cluster manager and has a very rich feature set and is by now a mature framework - which are enormous pros - but the main reason for its success is the active and supportive community that has built up around it.
Here are some tips on how you can get involved:
- Join the Kubernetes slack channel which currently has over 21,000 people on it http://slack.k8s.io/
- Participate in one of many SIGs (Special Interest Groups) that range from running K8S on AWS to managing a big data cluster.
- Join a meetup https://www.meetup.com/topics/kubernetes/ or if you are in London come over to https://www.meetup.com/Kubernetes-London/
- Keep an eye on the #kubernetes https://twitter.com/hashtag/kubernetes and make sure to follow the main evangelist, the one and only Kelsey Hightower https://twitter.com/kelseyhightower.
Success with Kubernetes
With a rock-solid platform, a skilled and diverse team and a growing relationship with the Kubernetes community behind you, you will have the resources to deal with any teething issues or growing pains.