The servers were already built, locked, and deployed. There was no going back without burning the whole thing down. That is the reality of integration testing in immutable infrastructure.
Immutable infrastructure changes the way testing works. You never update a running instance; you replace it. Every build is a fresh system. This means integration testing must happen before the image is marked golden and shipped to production. If a flaw slips through, the fix is a new build, not a patch.
Integration testing for immutable systems focuses on the complete, assembled environment. Unit tests on code are not enough. You need to test the final infrastructure image, including configuration, services, and network behavior. The goal is to ensure that every artifact leaving the CI/CD pipeline is fully functional and production-ready.
The process starts with building the infrastructure image in a controlled environment. Tools like Packer or Docker create consistent, reproducible builds. Automated integration tests then spin up the image in an ephemeral environment that mirrors production. This is where you test API endpoints, database connections, message queues, and security rules as a whole system.