Tuesday, 3 May 2016

word usage - What is the difference between "deployment" and "release"?


What is the difference between "deployment" and "release"? (This question asks a general difference in a technical context but to be more specific, it can be related to a "code change".)




"Releasing" means "identifying a version which people are allowed to deploy".



"Deploying" means "preparing to use a release, e.g. by installing it on the production hardware."



"Releasing" is a multi-stage process and has slightly different meanings for each person or at each stage:



  • A developer might "release" (a.k.a. "commit") their change into the central repository

  • The integration server might "release" a sanity-checked build to the QA team

  • The QA team might "release" the build to alpha and/or beta testers

  • Eventually you have a "gold" release that's suitable for actual deployment


Can we use these words interchangeably? For example, Can we use both
sentences below and can they have the same meaning?



  • I will release the change to production.

  • I will deploy the change to production.



They're slightly different.



  • "I will release the change to production" means "I give permission to the production team to allow them to deploy the change." (and I give the change to the production team, or give them permission to get the change for themselves from the repository)


  • "I will deploy the change to production" means "I myself will interact with the production system to install the change on the production hardware".



So, is "release" used as a noun mainly in this context?




It's a noun and a verb and an adjective.



  • "I release this version"

  • "This version is a release"

  • "This is a release version" (or "released version")


Are releases always deployed?




No: not if you have no customer, for example.



Also if you're doing 'continuous integration' then in theory, to some extent, you're continually creating "releases", e.g. they're "released" to the QA machine, but they're not always "deployed", e.g. "deployed" to the customer/production machine.



So, see also the different meanings of "release": e.g. an "alpha release" is released to "alpha testers" but not "deployed" to the "production" machine.




And for some humour:



Klingon Software Quality Assurance




What is this talk of 'release'? Klingons do not make software 'releases'. Our software escapes, leaving a bloody trail of designers and quality assurance people in its wake!


No comments:

Post a Comment