DevOps Cloud & DevOps Practices 2 — Questions and Answers
Question 1: What is a 'microservices' architecture?
- An architectural style that structures an application as a collection of small, independently deployable services (Correct answer)
- A design pattern for breaking monolithic databases into smaller shards
- A cloud infrastructure pattern using many small virtual machines
- A development methodology focusing on building minimal viable features
Correct answer: An architectural style that structures an application as a collection of small, independently deployable services
Microservices architecture organizes an application as loosely coupled, independently deployable services each responsible for a specific business capability.
Question 2: What is a 'service mesh' in a microservices environment?
- An infrastructure layer that handles service-to-service communication, observability, and security (Correct answer)
- A container orchestration system for managing microservices at scale
- A network configuration for connecting microservices across cloud regions
- A monitoring tool for tracking inter-service API call latency
Correct answer: An infrastructure layer that handles service-to-service communication, observability, and security
A service mesh (like Istio or Linkerd) uses sidecar proxies to handle load balancing, mTLS encryption, circuit breaking, and distributed tracing between microservices.
Question 3: What is AWS Auto Scaling?
- A service that automatically adjusts compute capacity based on defined scaling policies and metrics (Correct answer)
- A tool for automatically deploying new EC2 instance types when they become available
- An AWS service for automatically patching and updating EC2 instances
- A feature that automatically migrates workloads to cheaper AWS regions
Correct answer: A service that automatically adjusts compute capacity based on defined scaling policies and metrics
AWS Auto Scaling monitors application metrics (CPU, requests) and automatically adds or removes EC2 instances, ECS tasks, or other resources to meet demand.
Question 4: What is 'trunk-based development'?
- All developers commit directly to a single main branch, keeping it always releasable (Correct answer)
- Development work is organized on multiple long-lived feature branches
- The main branch (trunk) is never directly committed to — only PRs are merged
- Development follows a tree structure with release branches forked from trunk
Correct answer: All developers commit directly to a single main branch, keeping it always releasable
Trunk-based development requires developers to integrate code into the main branch at least once per day using small, incremental commits and feature flags.
Question 5: What is a 'sidecar container' pattern in Kubernetes?
- An additional container in a Pod that provides supporting functionality to the main application container (Correct answer)
- A backup container that starts when the primary container fails
- A container that runs security scans against the main application container
- A lightweight proxy container that manages Pod network traffic
Correct answer: An additional container in a Pod that provides supporting functionality to the main application container
The sidecar pattern adds a helper container alongside the main application container in a Pod, extending its functionality (log shipping, proxying, secret injection) without modifying the app.
Question 6: What does 'immutable infrastructure' mean in practice?
- Servers are never modified after deployment — changes require replacing with new instances built from updated images (Correct answer)
- Infrastructure configuration files cannot be modified without version control approval
- Cloud resources are locked to prevent accidental deletion
- Server AMIs are built once and reused across all environments without changes
Correct answer: Servers are never modified after deployment — changes require replacing with new instances built from updated images
Immutable infrastructure means never patching or updating running servers — instead, a new server image is built, deployed, and the old one is terminated.
What is a 'microservices' architecture?