Getting Started With DevOps Through Release Workflows

Release Branch Strategies

Est Reading Time: 3 min

Devon Bleibtrey

Apr 10, 2020

We help a lot of teams with their development pipelines and have seen everything from mailing code updates around in emails to advanced gitflow strategies enabling automatic semantic versioning. Wanted to share some of the most common deployments we see and link up to some more indepth documentation for those of you that might need to optimize your flow for your current team. There are a few things to recommend before diving into the strategies:

  • Use a version-control system (We recommend git), stop using email, it's 2020...
  • Build on the work of others, take a look at what some of the top platforms suggest on workflows (Suggest GitHub & Atlassian)
  • Take a look at forking vs branching and how you can use them to suppliment eachother.

Single Branch

Single Branch Workflow

Common On Strengths Weaknesses
  • Open Source
  • Muses
  • Startups & Small Teams
  • Lightweight and easy to deploy
  • No complex workflows to learn or teach
  • Quick to get up and running
  • Limited Ability for Long-Lived Feature Development
  • Limited Validation Capability

Overview

Making all pull requests against a single “master” branch is an excellent strategy to quickly get up and running while reducing the cognitive overhead for developers and managers. This ease of use makes a single branch release strategy popular among open source developers and projects who have simple deployment needs.

This release strategy centers around a single master branch where all of the edits from the contributors is staged. Forks, branches, and direct commits all funnel into this primary branch and then the maintainers determine when to cut a new release and push it out to their end-users.

Staging & Deployment Branch Strategy

Staging & Production Branch Workflow

Common On Strengths Weaknesses
Small to Medium Teams
  • Lightweight
  • Enables easy linkage of one branch to a staging environment and another to production
  • Minimal validation capabilities
Limited Capability for Hotfixes

Overview

This strategy requires a minimum of a staging branch and a production branch. The staging branch acts as an area where all the upcoming changes in the next release are aggregated. Often times the changes loaded into staging are validated and shipped out to a production like environment where the team can manually test fixes and new features prior to deploying them to production.

Multi-Branch GitFlow Branch Strategy

GitFlow Workflow

Common On Strengths Weaknesses
Medium to Large Organizations
  • Maximum Validation Capabilities
  • Support for numerous environments
  • Support for Hotfixes
  • Complex workflow requiring learning and teaching
  • Increased overhead

Overview

There are multiple strategies that teams use when they move into multi-environment deployments. The most common, standardized workflow is the Gitflow Workflow which was first published by Vincent Driessen at nvie. This is one git workflow that is designed to be a release strategy and provides the most flexibility in validating updates that are meant for production while still enabling hotfixes to go directly out if there is a large enough issue.

Additional Information

If you're looking for more branching strategies or deeper dives on the above workflows check these articles out:

Automatic Release Notes. Zero Effort.

Sign up today with instant, no-hassle setup. No credit card required!

Sign Up Now

© 2020 Next Release, LLC. All rights reserved. Made with ❤ in Michigan.