The time taken to provision and update environments continues to be a significant bottleneck on many software projects. Phoenix Environments can help with this delay by extending the idea of Phoenix Servers to cover entire environments. We feel this is such a valuable and time-saving technique that you should consider trialing this approach. Using automation, we can create whole environments - including network configuration, load balancing and firewall ports - for example by using CloudFormation in AWS. We can then prove that the process works by tearing the environments down and recreating them from scratch on a regular basis. Phoenix Environments can support provisioning new environments for testing, development, UAT and disaster recovery. As with Phoenix Servers, this pattern is not always applicable, and we need to think carefully about things like state and dependencies. Treating the whole environment as a blue/green deployment can be one approach when environment reconfiguration needs to be done.
The idea of phoenix servers is now well established and has brought many benefits when applied to the right kinds of problems, but what about the environment we deploy these servers into? The concept of Phoenix Environments can help. We can use automation to allow us to create whole environments, including network configuration, load balancing and firewall ports, for example by using CloudFormation in AWS. We can then prove that the process works, by tearing the environments down and recreating them from scratch on a regular basis. Phoenix Environments can support provisioning new environments for testing, development, UAT and so on. They can also simplify the provision of a disaster recovery environment. As with Phoenix Servers this pattern is not always applicable and we need to think about carefully about things like state and dependencies. Treating the whole environment as a green/blue deployment can be one approach when environment reconfiguration needs to be done.