4

I'm looking for a term that unambiguously describes the process of promoting a "deployment bundle" (for lack of a more accurate/technical term) from one deployment environment to another, from Development towards Production (or whatever environments there might be in between). I am talking specifically about the context of release management, where each environment has its own dedicated purpose (development, integration testing, user acceptance testing, staging, production, etc.), and which succeed each other in a defined, usually the same, order (of importance or quality).

I had previously thought this process was called staging (since I heard the term in this exact context, in multiple projects and teams), before research - especially this discussion: What is, or could be the formal and/or officially established definion of a "stage"? - proved me wrong.

My guess is that I might end up using the term deployment itself, but I'd like to further differentiate between the processes of deploying source code to a server and moving to a different environment in accordance with some specific process (e.g. end-to-end test successful, reviewed by release manager, etc.), especially since there might be a different(ly implemented) process for each.

More broadly speaking, I'd like to clear some ambiguity in DevOps terminology, so please also correct any wrong assumptions I might have made in my question.

Patrick Nemenz
  • 143
  • 1
  • 6

1 Answers1

6

I don't think there is a generic term for promoting to production. I can tell you that within the devops community, terms are frequently interchanged. As long as the point being addressed is well thought out and made clear, the point can be understood. Some of the terms that are used when referring to the movement between environments are deploy, propagate, move, promote, and release. I will say though, whenever I hear the term stage, I usually associate it with a pre-production environment. I think most others would assume the same.

Within your organization/groups, I think it is important to try to be consistent with your terminology. This eliminates any confusion and assumptions people can make. An example would be, in my organization, we use the term deploy whenever we are referencing moving between environments except when referring to the production environment which we use the term release. This is to emphasize that it is the final movement in the pipeline/process.

Preston Martin
  • 3,288
  • 4
  • 18
  • 39