How many servers does your website have? How many servers do you think you need? The answer depends on several factors, but the short answer is that any professional website should have no fewer than two: a testing environment, and a production environment. (Some sites have up to unlimited servers, but that’s a separate topic entirely.)
So you’re about to upgrade your site from Drupal 7 to Drupal 8? You’ll need to (temporarily) double the number of servers you have. We’ll discuss why you need multiple servers, and how long you need them for.
The first reason why has to do with minimum requirements. As of the end of 2019 the system requirements for Drupal 7 and Drupal 8 are similar enough that you could run both on the same server. I’m sure you’ve kept up with all your server system updates, right? If not, don’t feel bad. You are not at all alone in that. Rather than hurry server system updates and run the risk of incompatibility with modules and themes, a safer course of action is to start your Drupal 8 servers with the current requirements.
The second but most important issue is vulnerability without updates. One of the great things about the Drupal community is the security advisories and updates. These security updates give you the ability to easily keep your website up-to-date and safe. When a major vulnerability is identified it becomes imperative to update your site as quickly as possible, or risk a site breach. This is where having two servers becomes necessary. If during the time that you (or your developers) are actively upgrading your site from Drupal 7 to Drupal 8 an important security update for Drupal 7 is released, you will need to update your Drupal 7 site, without interfering with your Drupal 8 installation.
Let’s take a quick look at how that might be done. One server will host your Drupal 7 installation, while another hosts the Drupal 8 installation. For example you might have a team of developers working on your Drupal 8 installation migrating the site. This work simply continues unaffected. Your Drupal 7 server will be where you deploy the emergency updates. Using local DNS you can point custom subdomains to the individual servers. For example one site might be testd7.yoursite.com while the other is testd8.yoursite.com.
The complexity of your website and how long it will take to test will be the largest factors determining how long you will need to have multiple environments. You will certainly need a second development server for as long as it takes to develop your new Drupal 8 site. A second testing server could be used for as long as the development is going on, or for as long as your testing team needs to fully test the new site before production. If a nearly zero down production status is important to your site, such as shopping sites, then a pre-production staging environment is advisable. This is the last chance to identify issues before production.
Even after a successful production deployment, it’s a good idea to keep the production Drupal 7 server available for at least a day or two. If anything site-breaking is discovered, pointing DNS back to the old server is an easy fallback position. After a few days, it is advisable to make backup copies of both the old files and database for your records. After this point, any errors or issues that need to be fixed should fall forward with patches or hotfixes to the Drupal 8 site rather than backward reverts. You can delete all lower Drupal 7 server environments only after retiring your Drupal 7 production server.