With three days to go until Drupal 8's end of life (on November 2, 2021), now is a good time to take stock of your Drupal 8 sites' modules. Use Upgrade Status to check for environment and module compatibility with Drupal 9.
Unless you are on Drupal 8.8.x or Drupal 8.9.x, Upgrade Status will tell you to move to that version first, before you can upgrade to Drupal 9. (At this point it should really tell you that 8.9.x is the only acceptable version to upgrade to). Why is that?
While Drupal 8's end of life in three days may sound too soon, it could easily happen that you are on Drupal 8 and are already on an end of life version. With the introduction of semantic versioning in Drupal 8.0.0, Drupal core went on a path of feature updates in minor versions (8.1, 8.2, etc) and bug and security fixes in patch versions (8.0.1, 8.1.3, etc.). However, bugfixes and security fixes are only released for older minor versions for a limited time. For bugfixes, that is 6 months, and for security fixes that is 12 months after release of the minor series. This one year support window started with 8.5.0, the end of life dates of prior minor versions of Drupal 8 were even sooner after their release.
What does this practically mean? Let's say your site is on some version of Drupal 8.5.x, that release series started with Drupal 8.5.0 in March, 2018. It then received bugfixes until 8.6.0 was released in September, 2018. Finally, it continued to receive security fixes only until 8.7.0 was released, that is March, 2019. In other words, Drupal 8.5.x has been end of life since March, 2019. It did not receive security fixes since then. So if your site is on Drupal 8.5.x, then you are already on end of life software and the end of life of 8.9.x will not materially change your situation.
When Drupal 9 was released at the same time as Drupal 8.9, the only supported versions that remained of Drupal 8 were Drupal 8.8.x (security) and 8.9.x (bugfix and security). No more releases were made to 8.7.x and before. So in case there were some critical issue to fix for the upgrade path, that would not have been possible to fix in earlier versions. Also, by limiting the upgrade potential to these two release series, we could limit the potential upgrade bugs that could happen with unsupported earlier versions. However, to support the upgrade to Drupal 9, and thanks to the early release of Drupal 9, we also made Drupal 8.9.x a long term supported release, which is why it will go end of life an additional five months later, after a total support of 17 months.
At this time we are supporting Drupal 7.x (bug and security fixes), Drupal 8.9.x (security fixes), Drupal 9.1.x (security fixes), Drupal 9.2.x (bug and security fixes), preparing to release 9.3.0 in December, already opened 9.4.x for development and will very soon open Drupal 10.0.x for development and eventual release next year. That is a lot of versions of Drupal to support! While we do everything we can to make the transitions between these easier, it does depend on you too to keep your Drupal sites up to date.