What is deployment and release
When we mention the word “release”, what comes to mind is a fruit that falls from a tree when it ripens. Similarly, software deployment is the same as releasing software and it happens not just once but many times. For example, when you install or reinstall windows on your computer, or when you install or update any application on your computer, or even when you play a new game. The successive releases of every software that is being continuously developed are responsible for the smooth functioning of our systems. Deployment software makes this process easier.
Deployment technology is at the core of almost all changes in a company. Deployment and release are very similar, but they are different things. The deployment process is technical, while release is business oriented. When we talk about releases, we all talk about how the changes happen, but rarely do we think about what happens during the deployment process.

How to decouple them for better results
To reduce these problems, we must decouple deployment from release and that’s where the concept of “deployment pipeline” comes into play. It is a process in which the code is built, unit test runs are performed, etc., following certain steps or “roles”. By implementing this approach it is possible to have a fast feedback loop and to minimise delays between developing, testing and deploying. Some open source tools like Jenkins, TeamCity and CruiseControl.NET are widely used for automating this process and to make it work at a fast pace.
This article explains how to use this approach and how the benefits can be achieved. If you are new to the topic, please read the preface.
What is Deployment Pipeline? (Source) [Wikipedia]
http://en.wikipedia.org/wiki/Deployment_pipeline
The deployment pipeline defines a process for continuous delivery and automated deployment of software projects, that embed the following objectives:

Benefits of doing so
One of the benefits is that the length of the feedback loop will be shortened, as it will go from weeks to minutes. It will even take less than a minute for the code to be deployed and reach its destination. The development and production teams will be able to collaborate effectively and simultaneously, making product development more efficient.
In essence, the production team can run automated tests on their deployed code as soon as it is available. The QA team can also take advantage of continuous integration to check the quality of the product even before it has been deployed.
The ability to deploy code automatically has many benefits that help with software development and testing:
* Precisely defined release criteria and a focused time-box during which the release is allowed to proceed are necessary for effective deployment.
* The time and cost of deployment tend to grow with the size of a system, so automated deployment can be a more efficient use of IT resources.
* Automated deployment can help to avoid deployments that are done haphazardly.
* Automated deployment can alert developers when their code changes produce problems for an already deployed system, so they can make adjustments before it reaches production. It also allows developers to work in a more predictable environment, which should make them more productive and increase their quality of output.
* Automated deployment can help to avoid deployments that are done haphazardly.
* Automated deployment allows organizations to create better release documentation, because the documentation can be created automatically when the software is deployed.
