In the previous section, we've talked about being able to reverse individual steps during a deployment, but which steps exactly are we talking about. Let's take a look at some activities that are typical of deploying or upgrading an application. Later in the chapter, we will work on actually implementing these tasks and automating them as much as possible.
The following sequence diagram illustrates the steps of deploying an application or website. Certainly, depending on your application, there are steps that you can add or ignore, but these steps should present a good starting point for most deployments and can be tweaked as necessary.
Before looking at each of these steps in detail, let's consider the big picture represented by the previous diagram. We start by checking the whole project out of our version control system. To accommodate the environment in which the application will be deployed, some of the files, primarily configuration files, will have to be...