Kubernetes Maturity Phase 3: Deployment

In our previous articles, we introduced the Kubernetes Maturity Model, discussed how to prepare for Kubernetes and explored the transformation phase. Now you’re ready to think about deploying Kubernetes; phase three of the Kubernetes Maturity Model.

At this point, your team has the basics covered. You identified what applications are best for Kubernetes in phase two, and now you understand Kubernetes fundamentals, strengths and weaknesses. You have completed a successful Kubernetes proof-of-concept, so you can decide how, or if, you want to proceed with Kubernetes. Your team has some workloads in pre-production and has established Git workflows, CI/CD pipelines and testing processes. Now you’re ready for the next step.

Implementing Build and Deploy Processes

This is an important phase, in part because it helps you get comfortable with all of the Kubernetes fundamentals you developed in phase two. Now is the right time to put structured build and deployment processes in place, based on the qualities that cloud and container-native CI/CD systems use.

Phase three of the maturity model helps your team create a functional and tested workflow for building and deploying applications. This takes some tweaking and practice, so expect it to take a little bit of time to reliably deliver code to working and production environments.

Your team can now also manage deployments via Git branches and tags, and can tell whether a build and deploy was successful or not. Automated regression, performance and other tests are part of the CI/CD process, helping you detect issues earlier in the development and deployment process.

Empower Your Developers and Operators

Kubernetes allows your developers to focus on building the application, and helps them create CI/CD pipelines quickly to deploy application updates. During phase three, your team needs to develop an understanding of the workflow from source control management (scm) to deployment. They’ll also need access to merge/tag commits in scm to trigger deployments, plus perform basic debugging of the CI/CD process. In addition, the developers need to have kubectl access to Kubernetes resource definitions or Helm charts.

It’s not just your developers who need to be empowered. Your operators also need access to the Kubernetes API, so that they understand where workloads reside and how to view their state. Without this access, your operations team will not be able to debug simple errors or have a clear understanding of any blockers they might face within Kubernetes. There’s a technology learning curve for both developers and operators, so make sure that you spend the time during phase three to train and empower both teams. The learning they do now will help ensure that your Kubernetes deployment is successful.

This is also when your team will learn about and perform Kubernetes operator fundamentals, such as connecting an operator to the Kubernetes API, understanding how to list and view resources and performing basic actions.

Fundamental Tools

Once your developers and operators have started to learn Kubernetes operator fundamentals, they’re also ready to start incorporating monitoring and observability into their workloads. There are a lot of monitoring and observability options available using popular open source tools, including Prometheus (automating collection and storage of observability data), Jaeger (distributed systems tracing with Kubernetes), and Grafana (visualizing observability data), among others, and proprietary tools that can offer cloud monitoring as-a-service. This phase is the perfect time to play with these tools so you can start to have limited monitoring and observability for your clusters. This information will help you understand more about your workloads and infrastructure, and you’ll get a sense of what areas need closer attention or where you might want more insight.

As you reach the end of this phase, it’s time to find tools that help you further mature your Kubernetes environments. In addition to monitoring and observability, you’ll need open source tooling that helps you identify security and workload misconfigurations, enforce policies and compliance regulations and suggest resource requests and limits. Read more detailed information about the tools in phase three here. Look for software vendors who work closely with the open source community to help you if you run into challenges during this phase.

Challenges and Outcomes

If you’ve found phase three challenging, don’t be discouraged — there’s a lot to learn! It may seem incredibly complex; there are a lot of open source tools to choose from, and your internal team might be new to all of them. It’s ok if you’re struggling with new concepts and skills, but you’re well on your way to becoming more comfortable with Kubernetes. And while some problems may be frustrating, both the Kubernetes ecosystem and Kubernetes experts are available to help.

Any new technology can be challenging, but remember, at this point, you’ve already built a solid foundation for your Kubernetes workloads and you’re ready to deploy Kubernetes across your organization. Your hard work is paying off. While in phase three, you implemented build processes and empowered your developers and operators while introducing new tools. You’re ready to move to phase four of the Maturity Model, where you will build confidence in your core competencies. Soon you’ll be ready to deploy and ship features successfully.