Chapter 7. The application lifecycle: Accounting for constant change

 

This chapter covers

  • Zero-downtime upgrades: blue/green and rolling
  • Canaries
  • Credential rotation patterns
  • App lifecycle and troubleshooting
  • Application health checks

The application lifecycle seems pretty basic: an app gets deployed, is started, is running for a bit, and is eventually shut down. Aside from the chaos that ensues when that “shutting down” part happens unexpectedly, this lifecycle is generally boring (or so we hope). Why, then, have an entire chapter dedicated to the topic?

Before I answer that question, let me first be clear on my definition of application lifecycle. The application lifecycle I cover here is distinctly different from the software development lifecycle (SDLC) that I’ve already talked about a great deal. The latter is about the phases your software goes through in the development and delivery of software—from design, to being under development, to first passing unit tests and then integration tests, to delivering it to production.

7.1. Having empathy for operations

7.2. Single-app lifecycle, multiple-instance lifecycles

7.3. Coordinating across different app lifecycles

7.4. Let’s see this in action: Credential rotation and app lifecycle

7.5. Dealing with ephemeral runtime environments

7.6. Visibility of app lifecycle state

7.7. Serverless

Summary