Amazon logo

Amazon DevOps Engineer System Design Questions

40 practice questions for Amazon DevOps Engineer interviews

Amazon DevOps engineer interviews cover CI/CD pipelines, infrastructure as code, container orchestration, monitoring, and incident response procedures.

All Roles Software Engineer Backend Engineer Frontend Engineer Full Stack Engineer Mobile Engineer Data Engineer Data Scientist ML Engineer DevOps Engineer DevOps Engineer Product Manager SRE Security Engineer Engineering Manager Data Analyst UX/UI Designer QA Engineer

No verified questions yet for Amazon.

system design Senior api design #1

1. [OA] Design a Service Health Monitor — Real-time performance tracking of microservices

In Amazon, ensuring the health and performance of microservices is vital for maintaining the user experience. You are tasked with designing a ServiceHealthMonitor class that keeps track of the health status of various services.
Class: ServiceHealthMonitor
- Method: report_health(service_name: str, status: bool) -> None — Updates the health status for the given service.
- Method: get_health(service_name: str) -> bool — Returns the current health status of the specified service.
Example 1:
Input: service_name="serviceA", status=true
Output: None
Explanation: Successfully reported serviceA as healthy.
Example 2:
Input: service_name="serviceA"
Output: true
Explanation: The current health status of serviceA is healthy.
Constraints:
- The service_name can be up to 50 characters long.
- Health statuses are updated at most every minute.
system design Senior distributed systems #2

2. [OA] Design a Distributed Config Manager — Centralized configuration for hundreds of microservices

In Amazon, managing configurations for numerous services is a challenge that must be handled efficiently. This design involves creating a class for a DistributedConfigManager that allows various services to fetch their configurations dynamically.
Class: DistributedConfigManager
- Method: get_config(service_name: str) -> Dict[str, Any] — Fetches the configuration for the given service.
- Method: set_config(service_name: str, config: Dict[str, Any]) -> bool — Sets the configuration for the specified service and returns success status.
Example 1:
Input: service_name="serviceA"
Output: { "timeout": 30, "retry": 5 }
Explanation: The configuration for serviceA is fetched successfully from the centralized manager.
Example 2:
Input: service_name="serviceB"
Output: True
Explanation: The configuration for serviceB has been set successfully.
Constraints:
- The service_name length must be ≤ 50 characters.
- Config values can be any valid JSON structure up to a depth of 10.

Related Amazon DevOps Engineer interview prep

Start practicing Amazon questions

Sign up for free to access walkthroughs, AI-generated questions, and more.

Get Started Free