Home › Forums › AWS › AWS Certified Developer Associate › Immediate change? › Reply To: Immediate change?
-
Hi Klimok,
Thank you for sharing your thoughts on this scenario. Both Carlo and I have passed the actual AWS Certified Developer Associate exam, and other AWS certifications and I have seen a lot of ambiguous questions throughout different AWS exams.
Keywords are quite important to distinguish the most suitable answer here. However, I disagree that this question is ambiguous at all.
Let’s take a closer look:
The keywords are:
– deploy the applications’ new version to all instances simultaneously
– LEAST amount of time
The official AWS documentation says:
All at once – Deploy the new version to all instances simultaneously. All instances in your environment are out of service for a short time while the deployment occurs.
Immutable – Deploy the new version to a fresh group of instances by performing an immutable update.
Reference:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
The provided answer and the official AWS documentation are exactly the same for this key phrase: “new version to all instances simultaneously.” – It’s written verbatim and this is also cited in our provided explanation.
Let’s now look at the second keyword: “LEAST amount of time”
The official AWS documentation has a table of the Deployment Methods available in Elastic Beanstalk, which contains the Deploy Time for each type. Apparently, the All-at-once option provides the LEAST amount of time among all other options.
The Immutable option fails to meet those 2 important keywords. If you use this option, Elastic Beanstalk creates a second, temporary Auto Scaling group behind your environment’s load balancer. The process of launching another Auto Scaling group takes time.
I do understand that there is a certain gray area here about availability. Of course, it is recommended that there won’t be any downtime for any type of deployment. However, in the real world, there are certain cases where it is better to have a short 1-minute downtime in order to quickly resolve an issue — instead of waiting 15 minutes or so to deploy an urgent fix.
For example, if there was an incorrect business logic that was deployed in production that is corrupting user data. The more time the current version is processing the requests, the higher rate of corrupted data will pile up.
In my over 10 years in the industry, I’ve worked with different banks and financial institutions where we suspended certain operations for a short period of time. I understand it’s not ideal but there are more things to consider here than mere application availability. You have to consider compliance, regulations, and the integrity of your data. The best course of action at times is to briefly suspend live production traffic in order to quickly resolve the issue.
Expect to see this kind of nuance in the actual AWS exam. They will deliberately leave out details like this and will put more weight on the keywords present in the scenario.
Thank you again for your suggestion but this scenario does not warrant any revision.
Regards,
Jon Bonso