3 Configurations and Revisions

 

This chapter covers

  • A brief history of deployments
  • The anatomy of Configurations
  • The anatomy of Revisions

My focus in this chapter is to provide a guided tour of Serving’s dynamic duo, Configuration and Revision. This separation into two concepts isn’t for the mere joy of complexity. To explain the motivation, I’ll first give a fictionalized account of the history of software deployment, starting somewhere in the late Triassic period up to the current, slightly more advanced era of Thought Leadership.

After the history lesson, I’ll start with Configurations. These are the main way you describe your software and your intentions to Knative Serving. The coverage of Configurations is necessarily brief because Configurations mostly exist to stamp out Revisions.

My discussion of Revisions will be substantially longer, as there is a lot of ground to cover. We will be looking at containers, container images, commands and environments, volumes, consumption limits, ports and probes, concurrency, and timeouts. The style is narrative, but you can skip things you don’t care about right now and refer to these later when you need to.

3.1 Those who cannot remember the past are condemned to redeploy it

3.2 The bedtime story version of the history of deployment as a concept

3.2.1 The Blue/Green deployment

3.2.2 The Canary deployment

3.2.3 Progressive deployment

3.2.4 Back to the future

3.3 The anatomy of Configurations

3.3.1 Configuration status

3.3.2 Taking it all in with kubectl describe

3.4 The anatomy of Revisions

3.4.1 Revision basics

3.4.2 Container basics

3.4.3 Container images

3.4.4 The command

3.4.5 The environment, directly

3.4.6 The environment, indirectly