Blue-green deployment is a methodology of rolling out new services with less risk, greater efficiency, and less downtime. Blue and green denotes two different software production environments you have hosted using Amazon Web Services. Blue is your main production environment currently in use as a core function of your business. Green is what starts as an identical test environment where you make changes, alterations, and proposed improvements to what was the Blue environment. Any mistake can easily be undone as you leave Blue running and keep Green as an idle test environment until all edits prove successful and bug-free. Once you are happy with the changes developed in Green, that version becomes the new main production environment—and now your new Blue state.
Trianz has the experience and expertise to deploy this sort of DevOps methodology, an improvement over stagnant and manual technologies which produced greater disruption to business workflow. In particular, our organization utilizes Kubernetes clusters in orchestration of this type of infrastructure, relying on master/slave server nodes for seamless and highly available resource allocation. This setup lends to the ability to perform agile software development allowing your projects to become much more fast-paced, collaborative, and malleable as needs change.
According to Amazon's blue-green deployment white paper, best practices for this deployment include having a hands-free approach in terms of AWS administration and using a valid email address. Other experts would comment more on the nitty gritty of operations including using load balancing over DNS switching, deploying rolling updates, properly monitoring both environments, automating processes, and designing forward and backward compatible code.
Amazon would prefer that one does not alter resources allocated by AWS for blue-green deployment, as they claim it's been adjusted for highest availability and security. Especially, don't edit resources while the pipeline is running. A valid email address is important as it is required in the approval stage of the pipelines, in which URL's are swapped and deployments performed.
Load balancing is more responsive than editing DNS records as you funnel your users from the old to new environment. Skipping over that mechanism means DNS always points to the load balancer for optimal routing.
A rolling update avoids environment migration happening all at once—the transition is "rolled out," so to speak, where individual servers come online slowly over a period of time. This allows for as little downtime as possible due to lack of server availability.
Monitoring is just as important for the non-production environment as the blue environment. Set-up alerts for both so you avoid any possibility of failure in deployment. Automation brings quicker and safer transitions in your environment, and also allows authorized users to help themselves with the click of a button. Automated processes are much easier to handle than manual procedures.
You need to make sure your code works in both the green and blue environments. Test changes made to see what happens when design terms change and don't stay consistent. It can create a major bottleneck when transitioning.
Some other notable best practices include relying on the same Elastic Load Balancing product between two sets of servers, not performing any other migrations or tasks in the middle of a blue-green migration, and to utilize all useful AWS tools and resources at your disposal.
As your Cloud Strategy Consulting Service, Trianz will integrate your blue-green workflow to the cloud with expert precision. The virtualization of these machines will allow for even greater scalability and flexibility. As a managed service, your AWS cloud implementation will be in the right hands as we implement best practices for your software production.