ETExamTower
Q38Infrastructure and Automation

An organization operates a large cloud-deployed application that uses a microservices architecture. No significant downtime occurs because the application's services are redundantly deployed across three or more data-center regions. However, reports of application slowness are received several times each week. Container-orchestration logs show faults in various containers that cause them to fail and then start new instances. Which action must be taken to improve the application's resiliency design while maintaining the current scale?

← → navigate · a answer
Community votes
D
80% (4)
A
20% (1)
B
0% (0)
C
0% (0)
Discussion · 14
9
I’d go with 'D'
4
The correct answer is A.
A 4
Selected Answer: A The question says "container orchestration logs show faults". The faults make the containers fail. The application is not failing, but it may try to use resources that are not available in the containers. The most likely fix is to update the containers' base image, answer A.
D 4
Selected Answer: D I believe D is right. The issue above is not with availability, but with the app's performance. Changing the base image of the containers, changing the cloud services platform, or simply increasing the number of containers may not address the root cause. Adding proper "try/catch(exception)" clauses lets the application handle exceptions gracefully, which can prevent a full container crash and reduce performance issues caused by the overhead of spinning up new containers.
3
I go with D. B and C are wrong for sure; the doubt is on A. Why it is wrong for me, a container is made of layers, a base image and the changes that we put on top. We update the base if we detect vulnerabilities or something related to the image itself, my understanding is that the container is crashing from an application error. So I'll go with adding error control to the app - Answer D
D 3
Selected Answer: D Something is wrong at aplication. What made the conteiner fail. Main reason is unknown. So to troubleshoot the issue you need to use exception handling. For example, "try" in python or "catch" at C++
2
The containers are immutable...all consistent. If there are random issues, your only recourse is to collect more information, which gives us D. Also improving monitoring improves the resiliency design. (My 2 bits)
2
A. Most Dockerfiles start from a parent image. If you need to completely control the contents of your image, you might need to create a base image instead. https://docs.docker.com/glossary/#base_image B. Another cloud platform will not solve the problem if the container is not stable. C. If you increase the number of containers, the probability of individual container failures will stay the same - it will not improve resiliency. D. The task doesn't say that the application is written in Python, but D is Python-specific. Thus, D doesn't look correct.
2
I'd go with A. The question says it´s a large cloud-deployed app employing microservices architecture. Based on https://www.appdynamics.com/topics/benefits-of-microservices - ... Each service can be developed, deployed, and managed independently, and can utilize different programming languages... ("D" option would imply all services of the app are written in Python) - ... the risk of downtime is reduced since developers can roll back an update or make changes to a module without redeploying the entire application.
1
Why A please ?
1
Correction: D is language specific In Python it would be try/except
D 1
Selected Answer: D The question says "container orchestration logs show faults". Those faults cause the containers to fail. The application itself is not failing, but it can try to use resources that are not available inside the containers. The most likely fix is to update the containers' base image, answer A.
1
Please also check q 7
1
try/catch is also Java or C++ for example, afaik, so the question is not focused on a single language and should be understood that way (unless you want every single language mentioned there)