  The microservice architecture for cloud-based systems is extended to not only
require each loosely coupled component to be independently deployable, but also
to provide independent routing for each component. This supports canary
deployments, green/blue deployments and roll-back. Both ad hoc and system
integration test traffic can be directed to components before they are released
to production traffic. Front-end code is included in this architecture by using
server-side rendering of JS bundles. Environments for integration testing are
created with preproduction deploys side by side with production deploys using
appropriate levels of isolation. After a successful integration test run,
preproduction components are known to work with production precisely as it is.
For isolation, test traffic uses staging databases that are copied daily from
the production databases, omitting sensitive data. Safety and security concerns
are dealt with in a targeted fashion, not monolithically. This architecture
scales well with organization size; is more effective for integration testing;
and is better aligned with agile business practices than traditional
approaches.
