liveBook · Manning

Software release lifecycle

As explained in Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform

A release process is a sequence of checks and distribution steps that certifies a software change for consumer use.

A release process certifies a software change before distributing it to consumers. For a module update, test the change away from development and production workloads, then publish only when the tests pass. section 5.3

A practical module release follows these steps:

  • Update the module and push the change to version control. section 5.3
  • Ask a consumer team to test the module in a separate environment. section 5.3
  • Tag the tested change, update documentation, and distribute it through a package manager, artifact repository, or storage bucket. section 5.3

Database module version 2.0.0

After adding secret-manager password storage, the infrastructure team asks the Fruits team to test the database module. Once confirmed, the team tags version 2.0.0 and updates the secrets-manager documentation. section 5.3

Figure 5.11 When you make module updates, ensure that you include a testing stage before releasing the module and updating its documentation.

Use the release flow as a checklist: module updates pass through testing before release and documentation updates. section 5.3

How Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform covers it

How deep it goes
Details testing, isolation, version tagging, documentation, and packaging, while deferring continuous-delivery implementation to a separate listing.
Examples
Uses a database module storing passwords in a secrets manager, tested by another team and tagged v2.0.0.
What it assumes
Assumes familiarity with module updates and version control while defining release distribution and testing from first principles.
What you can do after
Operate/configure a module release by testing changes, tagging versions, updating documentation, and publishing artifacts.
How it connects
Connects module testing, version control, secrets management, documentation, package managers, and artifact repositories.

Also explained in

Compare how 2 books explain software release lifecycle →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform. The section links point to the parts of the book it draws on.