Design for self healing - Azure Application Architecture Guide | Microsoft Learn
some objective questions...
### 1. What is the first step in designing a self-healing application?
A) Respond to failures gracefully
B) Detect failures
C) Log and monitor failures
D) Perform load leveling
**Answer:** B) Detect failures
**Explanation:** Detecting failures is the first step to ensure an application can respond and recover appropriately.
### 2. Why is it important to respond to failures gracefully in a self-healing application?
A) To avoid user frustration
B) To reduce costs
C) To maintain availability and minimize service disruption
D) To comply with security standards
**Answer:** C) To maintain availability and minimize service disruption
**Explanation:** Graceful failure responses help in maintaining application availability and reducing the impact on end-users.
### 3. How does the Retry pattern help in handling transient failures?
A) By encrypting data
B) By retrying failed operations to overcome momentary issues
C) By automatically logging all errors
D) By isolating critical resources
**Answer:** B) By retrying failed operations to overcome momentary issues
**Explanation:** The Retry pattern allows the system to handle transient failures by attempting the failed operation again.
### 4. What is the purpose of the Circuit Breaker pattern in a self-healing application?
A) To isolate critical resources
B) To fail fast and avoid cascading failures
C) To log failures
D) To perform load leveling
**Answer:** B) To fail fast and avoid cascading failures
**Explanation:** The Circuit Breaker pattern prevents the system from repeatedly trying to call a failing service, thus avoiding further issues.
### 5. Which pattern is used to partition a system into isolated groups to prevent resource exhaustion?
A) Retry pattern
B) Bulkhead pattern
C) Circuit Breaker pattern
D) Throttling pattern
**Answer:** B) Bulkhead pattern
**Explanation:** The Bulkhead pattern isolates critical resources to prevent failures in one part of the system from affecting others.
### 6. What is the primary benefit of using the Queue-Based Load Leveling pattern?
A) It ensures data consistency
B) It smooths out traffic peaks by queuing work items
C) It improves data encryption
D) It isolates critical resources
**Answer:** B) It smooths out traffic peaks by queuing work items
**Explanation:** The Queue-Based Load Leveling pattern helps to manage sudden spikes in traffic, ensuring backend services are not overwhelmed.
### 7. How does failover contribute to self-healing in stateless services like web servers?
A) By encrypting data
B) By using multiple instances behind a load balancer
C) By retrying failed operations
D) By logging all requests
**Answer:** B) By using multiple instances behind a load balancer
**Explanation:** Failover for stateless services is achieved by having multiple instances managed by a load balancer to ensure availability.
### 8. What is the recommended approach to handle long-running transactions in a self-healing system?
A) Retry the entire transaction upon failure
B) Use compensating transactions
C) Use checkpoints to save state information periodically
D) Encrypt transaction data
**Answer:** C) Use checkpoints to save state information periodically
**Explanation:** Checkpoints allow a long-running transaction to resume from the last saved state, improving resilience.
### 9. How should applications handle situations where they can't retrieve critical resources but can still provide some functionality?
A) Fail fast and notify users
B) Show placeholder content and degrade gracefully
C) Log the failure and continue silently
D) Retry indefinitely until the resource is available
**Answer:** B) Show placeholder content and degrade gracefully
**Explanation:** Degrading gracefully allows the application to continue providing useful functionality even when some resources are unavailable.
### 10. What is the purpose of throttling clients in a self-healing application?
A) To improve data security
B) To reduce excessive load from a small number of users
C) To isolate critical resourcesD) To perform load leveling
**Answer:** B) To reduce excessive load from a small number of users
**Explanation:** Throttling helps to maintain application availability by controlling the load created by a few high-usage clients.
### 11. How can a system handle a client that consistently exceeds their service quota and behaves badly?
A) Encrypt their data
B) Throttle them temporarily
C) Permanently block them
D) Block them and define a process to request unblocking
**Answer:** D) Block them and define a process to request unblocking
**Explanation:** Persistent bad behavior should be addressed by blocking the client with a defined process for them to request unblocking.
### 12. What is the benefit of using the Leader Election pattern in a distributed system?
A) It improves data encryption
B) It ensures there is a coordinator for tasks without a single point of failure
C) It enhances data consistency
D) It provides load balancing
**Answer:** B) It ensures there is a coordinator for tasks without a single point of failure
**Explanation:** Leader Election helps in coordinating tasks by selecting a leader, which avoids having a single point of failure.
### 13. Why is fault injection testing important in a self-healing application?
A) To enhance security
B) To test the system's resiliency to failures
C) To improve performance
D) To reduce costs
**Answer:** B) To test the system's resiliency to failures
**Explanation:** Fault injection tests how well the system handles failures, ensuring robustness and reliability.
### 14. How does chaos engineering extend fault injection testing?
A) By improving data encryption
B) By injecting random failures into production environments
C) By isolating critical resources
D) By optimizing load balancing
**Answer:** B) By injecting random failures into production environments
**Explanation:** Chaos engineering involves introducing random failures to identify weaknesses and improve system resilience.
### 15. What are availability zones in Azure, and why are they important?
A) They are storage solutions for data encryption
B) They are isolated data centers within a region to enhance availability
C) They are backup solutions
D) They are security protocols
**Answer:** B) They are isolated data centers within a region to enhance availability
**Explanation:** Availability zones provide redundancy within a region, ensuring high availability and resilience against data center failures.
### 16. What is the primary goal of using the Compensating Transactions pattern?
A) To encrypt data
B) To undo steps of a failed distributed transaction
C) To isolate critical resources
D) To throttle clients
**Answer:** B) To undo steps of a failed distributed transaction
**Explanation:** Compensating Transactions provide a way to revert changes made by a failed transaction, ensuring data integrity.
### 17. Why should you avoid distributed transactions in favor of smaller individual transactions?
A) To reduce costs
B) To simplify the coordination across services and resources
C) To enhance security
D) To improve data consistency
**Answer:** B) To simplify the coordination across services and resources
**Explanation:** Smaller individual transactions are easier to manage and coordinate, reducing the complexity of distributed transactions.
### 18. What is the purpose of logging and monitoring failures in a self-healing system?
A) To improve performance
B) To provide operational insight and aid in troubleshooting
C) To enhance security
D) To reduce costs
**Answer:** B) To provide operational insight and aid in troubleshooting
**Explanation:** Logging and monitoring help understand the system's behavior and identify issues for quick resolution.
### 19. How does the Bulkhead pattern prevent resource exhaustion in a distributed system?
A) By retrying failed operations
B) By isolating resources into separate partitions
C) By encrypting data
D) By performing load leveling
**Answer:** B) By isolating resources into separate partitions
**Explanation:** The Bulkhead pattern ensures that failures in one part of the system do not deplete resources for other parts.
### 20. What is a checkpoint in the context of long-running transactions?
A) A point where data is encrypted
B) A mechanism to save state information periodically
C) A retry logic implementation
D) A load balancing technique
**Answer:** B) A mechanism to save state information periodically
**Explanation:** Checkpoints allow long-running transactions to resume from the last saved state after a failure.
### 21. Why is it recommended to focus on handling local, short-lived failures in addition to planning for big events like regional outages?
A) Local failures are more frequent and can still impact availability
B) Big events are unlikely and can be ignored
C) Local failures do not affect users
D) Planning for big events is too costly
**Answer:** A) Local failures are more frequent and can still impact availability
**Explanation:** Local, short-lived failures occur more often and can significantly affect system performance and availability if not handled properly.
### 22. What is the main advantage of using a load balancer with stateless services?
A) It encrypts data
B) It provides failover capabilities
C) It logs failures
D) It performs retry operations
**Answer:** B) It provides failover capabilities
**Explanation:** Load balancers distribute traffic across multiple instances, ensuring availability even if one instance fails.
### 23. Why is it important to design applications to handle transient failures?
A) To reduce costs
B) To ensure high availability despite momentary issues
C) To enhance security
D) To simplify application logic
**Answer:** B) To ensure high availability despite momentary issues
**Explanation:** Handling transient failures ensures that the application remains available and functional even when brief issues occur.
### 24. How does the Throttling pattern help maintain application availability?
A) By encrypting data
B) By retry
ing failed operations
C) By controlling the load from high-usage clients
D) By isolating critical resources
**Answer:** C) By controlling the load from high-usage clients
**Explanation:** Throttling ensures that excessive load from a few users does not degrade the application's performance for others.
### 25. What role does the Queue-Based Load Leveling pattern play in managing traffic spikes?
A) It encrypts queued data
B) It balances the load by queuing requests for asynchronous processing
C) It isolates critical resources
D) It retries failed operations
**Answer:** B) It balances the load by queuing requests for asynchronous processing
**Explanation:** Queue-Based Load Leveling helps manage traffic spikes by queuing work items, preventing backend services from being overwhelmed.
### 26. How can compensating transactions be used effectively in a self-healing system?
A) By retrying the entire transaction
B) By undoing completed steps of a failed operation
C) By encrypting transaction data
D) By isolating critical resources
**Answer:** B) By undoing completed steps of a failed operation
**Explanation:** Compensating transactions help maintain data consistency by undoing steps of a transaction that failed midway.
### 27. What is the benefit of using availability zones for deploying Azure services?
A) Enhanced security
B) Reduced latency and increased redundancy
C) Simplified management
D) Lower costs
**Answer:** B) Reduced latency and increased redundancy
**Explanation:** Availability zones provide high availability and redundancy by isolating services within different data centers in a region.
### 28. Why should you test with fault injection in a production environment?
A) To enhance security
B) To ensure the system can handle failures in real-world scenarios
C) To reduce costs
D) To improve performance
**Answer:** B) To ensure the system can handle failures in real-world scenarios
**Explanation:** Fault injection testing helps validate the system's resilience and recovery mechanisms in actual production conditions.
### 29. How does the Leader Election pattern contribute to self-healing in distributed systems?
A) By encrypting data
B) By ensuring a single point of coordination with failover capabilities
C) By isolating critical resources
D) By balancing the load
**Answer:** B) By ensuring a single point of coordination with failover capabilities
**Explanation:** Leader Election ensures that a task coordinator can be replaced if it fails, maintaining system coordination without a single point of failure.
### 30. Why is it crucial to have a process for unblocking clients who were throttled or blocked due to excessive load?
A) To reduce costs
B) To maintain user satisfaction and fairness
C) To enhance security
D) To simplify application logic
**Answer:** B) To maintain user satisfaction and fairness
**Explanation:** Having a process for unblocking ensures that clients can recover from being throttled or blocked, maintaining user trust and satisfaction.