Sometimes people confuse continuous delivery and continuous deployment, but as Jez Humble points out, they are actually different. We agree that they are different, but have a slightly modified explanation.

The difference between the two is business considerations – continuous deployment doesn’t care about the business aspects only technical considerations around deployment into a new environment. On the other hand continuous delivery takes into account business considerations around deployment, and uses them as a gate for deployment decisions.

Most business decisions take place in the UAT (User Acceptance Test) environment where the business decides whether the application can be promoted to staging, which means that it has passed the needed tests and gates for business deploy-ability to production.

Staging is a technical environment used to test integration, technical deploy-ability to production, performance and testing.