Deployment patterns

From Freephile Wiki

Classical deployment pattern

Dev -> Test -> Staging -> Production

In a classical development and deployment environment, (monolithic) software moves in stages between environments culminating in a release like a dump truck delivering a load of dirt. If you're delivering software this way, it's a complete misnomer to call this a feature release. Instead, it is a new "version", with a whole bunch of new features, bug-fixes and changes bundled together.

Dump truck in Acre, Brazil

Modern deployment patterns

In a Continuous Delivery environment, where testing is encouraged in Production, changes are not delivered in a "big bang" or by the truck-load. It's possible to deploy features without exposing them to all users and to deploy them as discreet enhancements.

Modern deployment patterns in a Continuous Delivery environment include:

  •    Blue-green deployments
  •    Canary releases
  •    Dark launching
  •    A/B testing
  •    Progressive exposure or ring-based deployment
  •    Feature toggles