OPS05-BP01 Use version control - AWS Well-Architected Framework (2023-04-10)

OPS05-BP01 Use version control

Use version control to activate tracking of changes and releases.

Many AWS services offer version control capabilities. Use a revision or source control system such as AWS CodeCommit to manage code and other artifacts, such as version-controlled AWS CloudFormation templates of your infrastructure.

Common anti-patterns:

  • You have been developing and storing your code on your workstation. You have had an unrecoverable storage failure on the workstation your code is lost.

  • After overwriting the existing code with your changes, you restart your application and it is no longer operable. You are unable to revert to the change.

  • You have a write lock on a report file that someone else needs to edit. They contact you asking that you stop work on it so that they can complete their tasks.

  • Your research team has been working on a detailed analysis that will shape your future work. Someone has accidentally saved their shopping list over the final report. You are unable to revert the change and will have to recreate the report.

Benefits of establishing this best practice: By using version control capabilities you can easily revert to known good states, previous versions, and limit the risk of assets being lost.

Level of risk exposed if this best practice is not established: High

Implementation guidance

  • Use version control: Maintain assets in version controlled repositories. Doing so supports tracking changes, deploying new versions, detecting changes to existing versions, and reverting to prior versions (for example, rolling back to a known good state in the event of a failure). Integrate the version control capabilities of your configuration management systems into your procedures.

Resources

Related documents:

Related videos: