Difference between revisions of "Deployment patterns"

From Freephile Wiki
Jump to navigation Jump to search
(first draft)
 
m (minor rewording)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
== Classical deployment pattern ==
+
==Classical deployment pattern==
 
[[File:Classic-deployment-pattern.png|600px|right|Dev -> Test -> Staging -> Production]]
 
[[File:Classic-deployment-pattern.png|600px|right|Dev -> Test -> Staging -> Production]]
In a classical development and deployment environment, (monolithic) software moves in stages between environments culminating in a "feature release" like a dump truck delivering a load of dirt.
+
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.
 
[[File:Dump truck in Acre, Brazil (cropped).jpg||600px|right|Dump truck in Acre, Brazil]]
 
[[File:Dump truck in Acre, Brazil (cropped).jpg||600px|right|Dump truck in Acre, Brazil]]
  
== Modern deployment patterns ==
+
==Modern deployment patterns==
In a Continuous Delivery environment, where testing is encouraged in "Production", changes are not delivered in a "big bang". It's possible to deploy features without exposing them to all users.
+
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.
  
For example:
+
Modern deployment patterns in a Continuous Delivery environment include:
  
*    Blue-green deployments
+
*   Blue-green deployments
*    Canary releases
+
*   Canary releases
*    Dark launching
+
*   Dark launching
*    A/B testing
+
*   A/B testing
*    Progressive exposure or ring-based deployment
+
*   Progressive exposure or ring-based deployment
*    Feature toggles
+
*   Feature toggles
  
[[Category:Continuous Deployment]]
+
[[Category:Continuous Delivery]]

Latest revision as of 12:15, 31 January 2024

Classical deployment pattern[edit | edit source]

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[edit | edit source]

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