3 Inner Loop: Containers & Kubernetes

 

This chapter covers

  • Introducing Kubernetes in the inner-loop
  • Containerizing cloud native applications
  • Designing an effective development workflow on Kubernetes

In chapter 2, we purposely focused on how to create reproducible environments and we excluded Kubernetes from that discussion. In this chapter, we will focus on understanding the pros and cons of “shifting left,” which brings Kubernetes closer to developers.

3.1 Do you need Kubernetes in the inner loop?

This is a tricky question to answer. If you are reading this book, you may already be fully committed to Kubernetes. However, instead of answering this question for yourself, you need to consider the perspective of large organizations that manage multiple teams of developers, which requires training to understand and utilize tools like Kubernetes. There is no doubt that learning Kubernetes is a significant yet valuable investment for developers looking to design and architect cloud native applications. However, when this is considered for large organizations with large development teams, the equation changes. In this chapter, we will look at the main factors that push companies to bring Kubernetes closer to developers, the challenges, and some tools that help teams move faster.

3.1.1 What’s the point of adding Kubernetes to the inner loop?

3.1.2 Leverage Kubernetes without the pain

3.2 From Source Code to Container Images Without the Friction

3.2.1 The Challenges of Building Container Images

3.2.2 Developer Experience Pattern: Source-to-Image

3.2.3 Cloud Native Buildpacks

3.2.4 ko

3.3 Effective Inner Loop on Kubernetes

3.3.1 Setting Up a Local Kubernetes Cluster

3.3.2 The Challenges of Using Kubernetes in the Inner Loop

3.3.3 Defining Kubernetes Manifests for Your Applications

3.3.4 Developer Experience Pattern: Application Live-Sync (Cluster)

3.3.5 Skaffold

3.4 What we learned

3.5 Summary