Chapter 2. The System of Truth

A complex system that works is invariably found to have evolved from a simple system that worked.

John Gall (Gall’s law)

To have an effective DevOps pipeline, it is important to have a single system of truth to understand what bits and bytes are being deployed into production. Typically, this starts with a source code management system that contains all of the source code that gets compiled and built into the production deployment. By tracing a production deployment back to a specific revision in source control, you can do root cause analysis of bugs, security holes, and performance issues.

Source code management solves several key roles in the software delivery lifecycle:

Collaboration

Large teams working on a single codebase would constantly get blocked by one another without effective source code management, reducing productivity as the team size grows.

Versioning

Source code systems let you track versions of the code to identify what is being deployed into production or released to a customer.

History

By keeping a chronological record of all versions of software as it is developed, it is possible to revert to an older version of the code or identify the specific change that caused a regression.

Attribution

Knowing who made the changes in a particular file allows you to identify ownership, assess domain expertise, and assess risk when making changes.

Dependencies

Source code has become the canonical source for other key ...

Get DevOps Tools for Java Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.