For many of our sites unless you self host or have specific hosting requirements, the setup of your website platform would look like the below:
The Drupal system has three specifically different sections of the architecture. Code - Database - Files.
Each of the above environments has all of these three because Drupal can't run without it. Code will be developed on the DEV environment and pushed up to staging, and then production as updates come and releases are done.
Once a site is "Active" meaning has site visitors and authors, it can start slowing the progress down quite a bit because the configuration and adjustments to the Drupal system may require architecture changes and once there's live action many customers prefer to not have long periods of downtime on websites. This means changes need to be packaged up and even sometimes manually adjusted on the production host once it's done.
Notably that's the most difficult part of updating the site is getting it all into production, then syncing back the dev and staging environments and starting a new release again.