Can you explain that more? Aren’t most of the complex modern tools specifically designed to automate provisioning servers and deploying code?
All of the pieces have complex and emergent behaviors as they interact with each other. Many (most?) are hosted, not even fully in control of the team using them. Recreating this environment in a hermetic way for testing is either actually impossible, or so cost prohibitive as to be practically infeasible.