The previous patterns, up until this point, either help to mitigate encountered problems or give unique solutions to possible problems. We have not discussed a lot of patterns that help to test our infrastructure.
Perhaps our system consists of a web server and a database server, as is often the case. Upgrading these can be done incrementally with zero downtime, as we've shown in previous patterns, but we have only discussed ways to do a full upgrade.
Let us suppose that some code changes are pending deployment on the web instance that requires a migration on the database instance. This is a hefty change that might cause a lot of headaches if it is not tested thoroughly before being released into a production environment. While testing it in a staging system is quite common and is a great way to uncover issues, both from usage and from a deployment standpoint, it may not catch everything.
The weighted transition pattern is one of the many patterns that exist for...