Minimize the total number of deployed environments
Description
In a given application, there may be a need to utilize multiple environments in the application workflow. Typically, a development environment is used for regular updates, while staging or testing environments are used to make sure there are no issues before code reaches a production environment where users may have access.
Each added environment has an increasing energy impact, which in turn creates more emissions. As such, it is important to understand the necessity of each environment and it's environmental impact.
Solution
From an energy-efficiency perspective, it's better to minimize the amount of deployed environments for an application so that less resources are provisioned and less energy is required.
SCI Impact
SCI = (E * I) + M per R
Software Carbon Intensity Spec
Reducing the amount of deployed environments will impact SCI as follows:
E
: We reduce the total electricity required by reducing provisioned resources.M
: By reducing the amount of nodes running on underlying machines, the total embodied carbon is lower.
Assumptions
Suppose we choose to remove a deployed performance environment for an application. Another existing environment like QA
could be repurposed for both quality assurance and performance testing to save and optimize existing resources.
Considerations
It may reduce cloud bills because minimising the total amount of provisioned resources will cost less. It may also create a bottleneck in the application life cycle, losing an environment created for the sole purpose of performance or QA testing.