<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=521127644762074&amp;ev=PageView&amp;noscript=1">
Back to all phases

Preparation

Where do I start, who do I trust, and how do I prove value?

See next phase
Introduction

In adopting Kubernetes, the first stage is preparation. Here it is vital to understand, and be able to articulate, why cloud native and Kubernetes is important to an organization. Some core concepts include understanding the value and impact of cloud native computing, containers and Kubernetes. At a high level, here we define each.

Cloud Native 

Empowers organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, microservices, immutable infrastructure, declarative APIs and service meshes exemplify this approach.

These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. Source: CNCF definition.

Benefits of cloud native computing include faster release pace, ease of management, reduced cost through containerization and cloud standards, ability to build more reliable systems, avoidance of vendor lock-in and improved customer application experiences.

Container

A standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. Source: Docker

In Kubernetes, each container that you run is repeatable; the standardization from having dependencies included means that you get the same behavior wherever you run it. Containers decouple applications from underlying host infrastructure. This makes deployment easier in different cloud or OS environments. Source: CNCF concepts.

Kubernetes

A portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available. Kubernetes provides you with a framework to run distributed systems resiliently. It takes care of scaling and failover for your application, provides deployment patterns, and more. Source: CNCF What is Kubernetes.

Infrastructure as code (IAC) 

The ability to provision and manage infrastructure using a configuration language. IAC brings the repeatability, transparency, and testing of modern software development to the management of infrastructure such as networks, load balancers, virtual machines, Kubernetes clusters, and monitoring. A primary goal of IAC is to reduce error and configuration drift, while allowing engineers to spend time on higher value tasks. IAC defines what the end state of your infrastructure looks like, instead of defining a series of steps to be executed - IAC tools like Terraform can be run multiple times against your infrastructure, producing the same desired result.

Using a cloud user-interface to create a managed Kubernetes cluster is a relatively straightforward process, however using infrastructure as code helps standardize cluster configuration and manage add-ons like network policy, maintenance windows, and Identity and Access Management (IAM) for cluster nodes and workloads.

Cultural and business change

The adoption of cloud native practices, containers and Kubernetes can contribute to strategic business objectives including helping to maximize capacity to save cost, adapt to demand, reduce and distribute risk with the right functionality in place. 

It also represents a cultural change across your organization. As you prepare for transformation, you need to get buy-in from your team, leadership and your entire organization as it will require different skill sets, new team structures and the willingness to change.

Challenges

During the preparation phase, you are likely to be challenged with: 

  1. Uncertainty over where to start or who to trust and listen to
  2. Unsure if your use case is viable or translatable into cloud native/Kubernetes world
  3. The need to prove the business value/cost to leadership
Outcomes
  • Your technical plan is paired with business/leadership buy-in for success
  • You accept and communicate cultural and cross functional workflow changes
  • You accept that this journey will require heavy investment and trust in new technologies
  • You understand the role and power of Open Source Software (OSS) in the cloud native ecosystem
  • You have considered and defined the value you hope to obtain
  • You know your business priorities 
  • You understand your requirements around security, efficiency and reliability

How Mature Is your Kubernetes Deployment? Get the eBook

Download Maturity Model