A company has developed a Ruby on Rails content management platform.
Currently, OpsWorks has several stacks for dev, staging, and production to deploy and manage the application.
Now the company wants to start using Python instead of Ruby and needs a smoother transition without any interruption.
The company needs to cut over from the existing Ruby code to the Python code.
How should the company manage the new deployment? Choose the correct answer from the options below.
Click on the arrows to vote for the correct answer
A. B. C. D.Answer - B.
Blue/green deployment is a technique for releasing applications by shifting traffic between two identical environments running different versions of the application.
Blue/green deployments can mitigate common risks associated with deploying software, such as downtime and rollback capability.
Please find the below link on a white paper for blue-green deployments.
https://d0.awsstatic.com/whitepapers/AWS_Blue_Green_Deployments.pdfOptions A, C and D are INCORRECT because the company needs to cut over from the existing Ruby code to the Python code, and these options do not mention the scenario for cutover.
The best approach for the company to transition from Ruby to Python without any interruption is to create a new stack that contains the Python application code and manage separate deployments of the application via the secondary stack using the deploy lifecycle action to implement the application code.
Option A is not a viable solution as it involves updating the existing stack with Python code, which may lead to compatibility issues and downtime during the deployment.
Option B suggests creating a new stack that contains a new layer with the Python code and using Blue/Green deployment to cut over to the new stack. This option can be a viable solution but requires additional resources to maintain and may be complicated to set up.
Option C is the recommended approach as it involves creating a new stack that contains the Python application code and managing separate deployments of the application via the secondary stack using the deploy lifecycle action to implement the application code. This approach allows the company to test the new stack without affecting the existing production environment.
Option D is similar to option C, but it does not consider the need to manage separate deployments of the application via the secondary stack using the deploy lifecycle action. Without this approach, the company may encounter issues such as application conflicts, data inconsistency, or data loss.
In conclusion, the recommended approach is to create a new stack that contains the Python application code and manage separate deployments of the application via the secondary stack using the deploy lifecycle action to implement the application code.