This article is geared towards developers with some experience in Kubernetes or general systems administration although, hopefully, anyone can take something away from these practices.

Kubernetes “K8s” evolved to be the standard way to deploy your services to the cloud. And rightly so! Using a container orchestration engine like K8s provides many niceties including but not limited to:

  • Scalability: never outgrow your infrastructure
  • Modularity: adapt K8s to your needs without patching upstream source code
  • Self-healing: restart failed containers
  • Simple service discovery
  • Standardisation of infrastructure abstractions
  • Crisp atomicity of deployments

Having evolved into an industry standard, K8s allows teams to have a common denominator to reason about in regards to deployment strategies. Even though it did not reinvent general concepts of software architecture & deployment strategies, the methodologies have been made easier to grasp than ever before thanks to the declarative nature of K8s resources. This standardisation is critical as it strongly decouples ones expertise from a company’s potential legacy infrastructure and allows for more rapid iteration and innovation.

Though K8s has its flaws in terms of complexity and overhead when used in production, these issues rarely outweigh the benefits it provides. Thus, I will provide a concise overview of development workflows that I am fond of for developing on K8s. This includes:

  • (bootstrapping a project)
  • the inner loop: local development
  • the outer loop: deployment strategies & configuration management

#devops #ci-cd-pipeline #gitops #kubernetes

Developing on Kubernetes: The Inner & Outer Loop
1.15 GEEK