Take the 2-minute tour ×
English Language & Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts. It's 100% free, no registration required.

In work environment, we frequently encounter the words "deployment" and "release" in technical context. I often hear them used interchangeably also. It is mainly related to "Release and Deployment Management".

For example, Information Technology Infrastructure Library (ITIL) defines the aim of Release and Deployment Management as:

ITIL Release and Deployment Management aims to plan, schedule and control the movement of releases to test and live environments. The primary goal of Release Management and Deployment Management is to ensure that the integrity of the live environment is protected and that the correct components are released.

Source: http://wiki.en.it-processmaps.com/index.php/Release_and_Deployment_Management

Additionally, I found the below technical definitions but these are not the only usages:

release:
1. Making a version of software available to the public.
2. A software version which has been made available to the public.
Source: http://www.computeruser.com/dictionary

deploy: To install, test and implement a computer system or application.
Source: http://www.webopedia.com/

Wikipedia's "software deployment" article mentions below but it looks like the below definitions can not be applied to all kind of deployments in an IT environment:

Software deployment is all of the activities that make a software system available for use.

The release activity follows from the completed development process. It includes all the operations to prepare a system for assembly and transfer to the customer site. Therefore, it must determine the resources required to operate at the customer site and collect information for carrying out subsequent activities of deployment process.


Questions:

  • 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".)

  • 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.

  • ITIL also defines one of the Role/Sub-Process as Release Deployment.

    So, is "release" used as a noun mainly in this context?
    Are releases always deployed?
    Can we release a release?

Note: I would like to get answers from real life experiences about the usage of these terminologies in work environments and release management processes.

Note2: Great subjective questions invite sharing experiences over opinions. Certainly experiences inform opinions, but the best subjective questions unabashedly and unashamedly prioritize sharing actual experiences over random opinions.
Source: http://blog.stackoverflow.com/2010/09/good-subjective-bad-subjective/

share|improve this question
4  
You deploy a release. You don't release a release or deploy a deployment. They are distinguished for clarity. –  KitFox Jul 7 at 18:21
3  
You answer your own question in the definitions you state. Release = make available, deploy = install. In some environments the two steps blur into one and the words get used interchangeably. –  Mr. Shiny and New 安宇 Jul 7 at 18:22
    
I'm looking to get answers from real life experiences. –  ermanen Jul 7 at 22:13
    
Up-voted all. Thanks for the answers. –  ermanen Nov 12 at 22:06

10 Answers 10

up vote 8 down vote accepted

There is no universal definition for these terms, so their use will vary among teams. The most common usage in my experience is:

release (noun): A version of software intended for use outside the development team. A release need not be customer-centric. Some teams, for instance, differentiate between internal release (e.g. for software QA or demo activities) and external release (e.g. for customers or production). Ideally a release is associated with a checkpoint in the version control system and generated through a well-defined, repeatable process. ("I'm creating the 1.2 release now.")

release (verb): The act of making a release version available to a wider audience. ("We're going to release 1.2 to QA tomorrow.")

deploy (verb): The act of installing and configuring a version of software onto a target system. The version need not be a release; in some environments you can most certainly deploy development versions. ("I'm deploying 1.2 to the public website.")

So to answer your specific questions:

  • Within a given team, these words should not be used interchangeably, but due to people drawing from varied experiences and definitions, there will often be confusion.

  • You can release a release.

  • You do not always necessarily "deploy" a release.
    (1) You can deploy things that are not releases, primarily for development purposes.
    (2) Embedded software goes through a different production process that is not generally called "deploying".
    (3) Consumer "deployments" are often simply called "installations" - one does not typically refer to a customer "deploying" Windows 8 on their home computer.

share|improve this answer
1  
Excellent answer. –  outis nihil Nov 5 at 18:06
    
Nice answer. Do add a few lines in today's context of SaaS i.e. actors in release and deploy verbs. For example, when Microsoft releases a new version of Windows, the deployment is done by the purchaser. When Google release a new version of Gmail, deployment is done by Google itself. –  Jangid Nov 11 at 7:00

This is really a technical question, but since I can't think of a better place to answer it I'll do so here.

To release something (in a sales or product sense) is to make it available, usually for purchase.

To deploy something is to make it active, or start it working.

For example:

I release software by making it available for customers to purchase. Those customers then purchase it, take delivery, and deploy it to their websites.

For a concrete example, my new model of umbrella is released when it is put on shelves for people to buy. It is deployed for the first time when the first customer puts it up.

It can be a little more complicated. A website owner might deploy software they have purchased to their website, but since it is not used until one of their customers actually runs it, they sometimes talk about releasing it to their customers.

share|improve this answer
    
for the sake of additional context here: in the software development world (my world), a computer which is specifically purposed for compiling code into an executable application for the purpose of testing functionality is called a "deployer". that is to say, when i'm writing code, and i want to execute it to see if it works (but not necessarily make it available for general users), i send it to the deployer; e.g., i "deploy" it. –  Woodrow Barlow Nov 10 at 17:09

In software terms, a release is a version of an application that is published. As the program is worked on, lots of versions of the source code will exist as people hack on it. A release is a polished, tested version that is published, typically with a version number one greater than the last release.

To deploy means to push a new release to one or more machines, updating the current version. In web development, this means updating the version hosted on the production servers. It can also mean pushing a release to a set of managed machines over a network, as a software update. A lot of modern tools automate this process, which can be quite complicated. Either way, this process is called deployment.

share|improve this answer

When reading your Release and Deployment article, it's clear that release is used principally to mean that thing (software, in this case) that is moved to the test or live environment. Deployment is used principally to describe the process of moving that thing to the to the test or live environment.

These words obviously have verb counterparts, and they would have corresponding meanings. To release (verb) something would be to cause a release to exist. To deploy (verb) something would be to execute the process of deployment.

share|improve this answer
    
I understand this, I'm not simply asking definition differences. They are also used interchangeably in work environments. When do they become same? Is this an incorrect usage or did it become an accepted usage in time? I'm trying to get answers from experiences. –  ermanen Jul 14 at 16:28

**To Release is to "Let go" "make available" **

To Deploy is to "send forward" or "use" an action

Hence, for employment :

A number of people were "released" (made redundant), whilst a number were re"deployed" (sent elsewhere for further action

In software:

the latest "release" ("Available" version) may be deployed ("sent forward" or "actioned") through updates, when "actioned" they would be the latest "deployments"

Release is passive do with it what you will , deployment is aggressive, actionable.

share|improve this answer

I download new releases of software constantly. I also positively affirm/authorize updates to be deployed within my networks I manage.

They cannot be used interchangeably for the people who understand the difference between release and deploy.

On a noun basis, release = available version. Full stop. Deployment is who is in the process of or has completed installation of software.

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.

No. You cannot release to production.

ITIL also defines one of the Role/Sub-Process as Release Deployment.

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

It's a noun as adjective.

Are releases always deployed?

No. Some releases are skipped or a superseded release is deployed. A release that is testing is not yet deployed to production.

Can we release a release?

No. You release a version.

share|improve this answer

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!

share|improve this answer

The distinction between release and deploy, when those terms are used in the discourse community of software developers, is quite strong when you are talking about a desktop application which is installed by the user, and rather soft when you are talking about a web application. For a desktop application or mobile app, "release" is the action of making the software available for installation by customers, whether that means posting a new release branch to a public VCS repository, putting downloads up for sale on an app store, or shipping CDs to a store. For a desktop application or mobile app, "deployment" is the action of actually installing the app on the user's desktop or mobile device. If the IT shop in a large corporation develops a mobile app for use by their employees, "release" is the process of preparing a final installation package, and "deployment" is the process of getting the app installed on the employee's mobile devices.

For a web application, "release" is either of two events - the designation of a particular build as the final build to be deployed, OR making the deployed code available to public users outside the organization. For a web application, "deployment" is the process of installing an application on the production server(s) and making sure that it will work.

So depending on who's using the terms and the exact nature of the project, "release" can occur either before or after "deployment."

share|improve this answer

Release is to make the product/build available for testing before deployment, usually sent from the development team.

In-between release and deployment is usually the testing and verification process. After that cycle is done, we move on to...

Deployment is to send the build out (usually Gold/Master) for either updates or installation, usually handled by whomever is in charge of the deployment process.

share|improve this answer

Deployment of a software or system is not simply installing and using them.

Deployment has a connotation of "to use something effectively". That's why deployment is a process and involves some more activities.

As mentioned here, "release" is one of the initial activities necessary for deployment - namely for effective use

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.