Tensbai and I discussed this on chat already posting this here mainly to record the decision.

The tag uses the following definition of 'deployment':

Use this tag for questions about deployment, which is about all the activities to make (part of) a system available for use in some target environment.

I feel that this is the non-DevOps definition of deployment, to this end I have added the following to the tag wiki:

It is worth noting the DevOps Practice of Continuous Deployment seeks to separate release from deployment:

For most organisations releasing and deploying are the same thing while in fact, these are 2 separate things:

  • Deployment: A technical handling where a new version of the software is deployed to a specific environment
  • Release: A business handling where the customers are informed that a new version of the software is available and can be used

Shout out if you feel we should take a different route.

| |
  • 1
    My 2 cents: using deploy-ed to define deploy-ment doesn't seem right. About "Release": IMO there is so much more to releasing, apart from explaing/teaching the customer about it (that sounds like release notes), while "can be used" is not always the case (i.e. when it "must be used", since prior ones are out of support, no longer accessable, etc). – Pierre.Vriens Apr 17 '17 at 11:50
  • @Pierre when it concern internal releases, it is ok. I do think usage of a term in a multiple parties context should be worded as such because it's not the major usage . In brief, if the meaning is slightly different because it is not internal it should be said to avoid misunderstanding, not the other way around. (my 2cts) – Tensibai Apr 17 '17 at 19:01

Shouldn't this be a non-meta question?

I did write an answer that provides the distinction between deployment and release as it related to the DevOps nomenclature.


| |

What about infrastructure?

Most of these answers focus on code but one key value-add of DevOps is the idea of IasC (Infrastructure As Code) and CasC (Configuration as Code) where servers are cattle. If I "deploy" a new virtual machine instance and configure it - perhaps even as a blank instance, is this not also a deployment? What about the spooling up of compute resources? How do they fit into this tag?

| |

Quoting from your question to be the devil's advocate to some extend:

deployment, which is about all the activities to make (part of) a system available for use in some target environment.


Deployment: A technical handling where a new version of the software is deployed to a specific environment

From your question:

I feel that this is the non-DevOps definition of deployment

I fail to see how they differ, it sounds literally the same thing for me.

While I agree adding a word about separating deployment and release, I don't think the definition of deployment really differ.

| |
  • 1
    The difference is "available for use" the second quote from your answer doesn't make any reference to use. I agree it's subtle but important. – Richard Slater Apr 18 '17 at 7:46
  • @RichardSlater at this point I'd argue for pedantry :) remove for use and you get the exact same meaning, it's more a way of wording it than an important point of the definition. And I'd argue that a deployed software not available for use is not really deployed, maybe delivered ? – Tensibai Apr 18 '17 at 7:54
  • I think you just reinforced my point, you can do a deployment with the new functionality disabled, via a feature flag, then later release the functionality for use by toggling the feature flag. – Richard Slater Apr 18 '17 at 9:20
  • @RichardSlater I'd call that a delivery into the target environment and not a deployment, well probably it's probably my English level which is in cause :) – Tensibai Apr 18 '17 at 9:28
  • 1
    Delivery is subtlety different again, in the Agile vernacular delivery is simply the end result of a work effort. To be clear these are not my words they are the words used in blog posts, conferences and by clients; when we talk about separating Deployment from Release we are talking about the technical act of pushing code vein separated from the business decision to make features available for release. – Richard Slater Apr 18 '17 at 11:50

What about these definitions? https://en.wikipedia.org/wiki/Software_deployment

Sometimes I hear colleagues talking about "deploying artefacts to Nexus" which is kind of "deploying to specific environment" but in fact Nexus is something else then "environment" - need to talk what the definition of "environment" is..?

| |
  • This doesn't seem to answer the question... – Tensibai May 18 '17 at 10:12
  • Hi, Tensibai, maybe the proper question would be "what ARE definitions of deployment" because I consider even in the DevOps domain there are different contexts where this word is applied. WordNet Dictionary Noun 1. deployment - the distribution of forces in preparation for battle or work en.wikipedia.org/wiki/Software_deployment – Peter Muryshkin May 18 '17 at 11:44
  • 1
    You're side scope with the question itself and the answer doesn't address the points at all... The question is specially in a devops environment , etymology while interesting has no place at all. Answers are not there to ask another question as in a traditional discussion forum (as you can't "reply" to a specific answer), they should try to bring a position with arguments where people can agree or disagree with by voting (agreement on meta, on main its usefulness of the answer) – Tensibai May 18 '17 at 12:03

Generally I think of deployment as being the process of making build artifacts "useful" - that is, getting them running in some sort of shared system that people use. I'm not sure how to boil that down into a terse but understandable definition, though.

| |

Releasing software, I think, is to make a deployment available to specific consumers and is business decision made at a particular stage in the developed software (included features, amount of testing). What a release entails is defined by the business releasing the software. Does it contain tech docs, user guides. A release may also be either a single exe, or an entire system.

On the other hand, I feel a deployment may, or may not, be part of the release process. A deployment, I find, is just the placement of a single piece of software in an environment. It is a process, not particularly a product or goal.

To summarize, I define as the following:

A release is defined by the business. It can be comprised of items other than software (documents) and, a single or multiple deployments that occur once the software package(s) has reached a certain stage in development (defined by the business).

A deployment consists of a single software package to a particular operating environment, defined by the development team, for purposes agreed upon by both the business and the development team.

| |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .