Virtual machines were a step in this direction. For this to happen, local development environments need to be identical (or as close as possible) to the production environments the code runs on. Doing this allows teams to deploy code with confidence. Today, development teams expect to be able to test code in production-like environments. (SSH means Secure Shell, and it’s a way to operate network services on an unsecured network.) Of course, there was very little experience and guidance in terms of good testing and good build pipelines for PHP then. In the dim and distant past, when a developer wanted to make a change to production code, they may have SSHed onto the server and changed the code manually.