Environment Strategy
Environment Tiers
Summary
Environment tiers support development, testing, production-like validation, and production workloads; environments represent relevant production characteristics, reduce cost while not in use, and are decommissioned when no longer needed.
Standards
std-plat-environment-tiers-01Environment tiers SHOULD include a tier for early development work, such asdev.std-plat-environment-tiers-02Environment tiers SHOULD include one or more tiers for functional and integration testing, such astst,int,sit, orqa.std-plat-environment-tiers-03Environment tiers SHOULD include a production-like tier for final validation before deployment to production, such asuat.std-plat-environment-tiers-04Where production workloads are operated, an environment tier for them MUST be defined, such asprod.std-plat-environment-tiers-05Environment tiers SHOULD include a production-like tier for reproducing or verifying a fix against a production issue without affecting production itself, such asprod-support.std-plat-environment-tiers-06An environment used for production-like validation MUST represent the production characteristics relevant to that validation, such as topology, configuration, or scale.std-plat-environment-tiers-07A team SHOULD NOT maintain more environment tiers than are genuinely necessary, so cost is not incurred for a tier it does not need.std-plat-environment-tiers-08A non-production environment in a tier not required continuously, such asdev, SHOULD incur reduced or no cost outside business hours, such as by being scaled down or torn down and provisioned again on demand.std-plat-environment-tiers-09An environment instance no longer needed SHOULD be decommissioned.
Implements These Principles
Environment Provisioning
Summary
Every environment is provisioned through established infrastructure-as-code tooling and can be rebuilt from its code definition.
Standards
std-plat-environment-provisioning-01An environment, whether persistent or ephemeral, MUST be provisioned and configured through the organisation's established infrastructure-as-code definitions and tooling.std-plat-environment-provisioning-02An environment's ability to be rebuilt from its code definition SHOULD be periodically exercised to verify its reproducibility.
Related Standards
Implements These Principles
Production Isolation
Summary
Production access is separately authorised, and experimentation uses a non-production environment where it can be performed safely.
Standards
std-plat-production-isolation-01Access granted to a non-production environment MUST NOT extend to production by default.std-plat-production-isolation-02Access to production MUST be separately authorised and independently controlled.std-plat-production-isolation-03Production SHOULD NOT be used for experimentation or ad hoc testing that can be performed safely in a non-production environment.
Related Standards
Implements These Principles
Ephemeral Environments
Summary
An environment created for a bounded purpose provisions and tears down automatically, within a defined maximum lifetime.
Standards
std-plat-ephemeral-environments-01An environment created for a bounded purpose, such as a performance test, SHOULD be provisioned on demand and torn down once that purpose concludes.std-plat-ephemeral-environments-02Provisioning and tear-down of an ephemeral environment MUST be automated, so creating one does not depend on a manual setup step or coordination with another team.std-plat-ephemeral-environments-03An ephemeral environment MUST have a maximum lifetime after which it is automatically terminated, so an environment left running past its purpose does not accumulate cost silently.