Trong các buổi phỏng vấn DevOps, nhà tuyển dụng ít khi hỏi về cách cài đặt công cụ, mà thường tập trung vào tư duy giải quyết bài toán vận hành và thiết kế hệ thống. Dưới đây là những trụ cột kiến thức bạn cần nắm vững để chứng minh tư duy kỹ thuật tầm Senior.
Chiến lược triển khai (Deployment Strategies)
Đừng chỉ dừng lại ở việc biết làm CI/CD pipeline. Nhà tuyển dụng sẽ hỏi bạn làm thế nào để giảm thiểu rủi ro (downtime) khi deploy code mới. Bạn cần hiểu rõ và so sánh được các mô hình triển khai.
Đây là phần kiểm tra tư duy chịu lỗi (fault tolerance) và khả năng quản lý traffic trong hệ thống Production.
- Blue-Green Deployment: Chạy hai môi trường song song. Rủi ro thấp, rollback cực nhanh, nhưng chi phí hạ tầng gấp đôi.
- Canary Deployment: Chỉ chuyển một lượng nhỏ traffic sang version mới để test thực tế. Giúp phát hiện lỗi sớm mà không ảnh hưởng toàn bộ người dùng.
- Rolling Update: Cập nhật dần dần trên từng server/instance. Phổ biến trong Kubernetes.
Infrastructure as Code (IaC) và khái niệm Idempotency
Khi nói về Terraform hoặc Ansible, đừng chỉ kể tên câu lệnh. Hãy nhấn mạnh vào tính chất 'Idempotency' (tính lũy đẳng). Đây là chìa khóa để phân biệt một DevOps engineer có kinh nghiệm và người chỉ biết làm theo hướng dẫn.
Nhà tuyển dụng muốn biết bạn xử lý thế nào khi cấu hình bị thay đổi trái phép (drift) hoặc khi quá trình deploy bị ngắt quãng giữa chừng.
- Idempotency: Dù chạy script bao nhiêu lần đi nữa, trạng thái cuối cùng của hệ thống vẫn không đổi. Nếu đã chạy thành công, chạy lại không gây lỗi hoặc thay đổi thừa.
- State Management: Cách quản lý file state (như trong Terraform) để biết được trạng thái thực tế của hạ tầng so với file cấu hình.
Container Orchestration: Tại sao là Kubernetes?
Nếu ứng tuyển vị trí chuyên sâu, Kubernetes là bắt buộc. Tuy nhiên, thay vì học thuộc các lệnh kubectl, hãy hiểu tư duy của K8s: Declarative vs Imperative.
Hãy giải thích được tại sao K8s lại cần thiết cho kiến trúc microservices và nó giải quyết vấn đề quản lý trạng thái (state) phức tạp như thế nào.
- Declarative Model: Bạn khai báo trạng thái mong muốn (desired state), K8s tự động đưa hệ thống về đúng trạng thái đó.
- Self-healing: Cơ chế Liveness probe và Readiness probe giúp hệ thống tự động restart các container lỗi mà không cần can thiệp thủ công.
- Service Discovery: Cách các pod tìm thấy nhau trong môi trường dynamic IP thay đổi liên tục.
Observability: Không chỉ là Monitoring
Nhiều ứng viên nhầm lẫn giữa Monitoring (giám sát) và Observability (khả năng quan sát). Monitoring cho bạn biết hệ thống có đang 'chết' không, còn Observability cho bạn biết 'tại sao' nó chết.
Đây là câu hỏi kinh điển để kiểm tra tư duy debug hệ thống phân tán (distributed systems).
- Metrics: Dữ liệu định lượng (CPU, Memory, Request rate) giúp biết khi nào có vấn đề.
- Logging: Dữ liệu sự kiện (log file) giúp biết chi tiết chuyện gì đã xảy ra.
- Tracing: Dữ liệu đường đi của một request xuyên suốt các microservices, cực kỳ quan trọng để debug độ trễ (latency).
Cloud Security & Identity (IAM)
Dù ở AWS, Azure hay GCP, quản lý quyền truy cập luôn là nỗi đau đầu lớn nhất. Hãy chuẩn bị câu trả lời về nguyên tắc Least Privilege (Quyền truy cập tối thiểu).
Nhà tuyển dụng sẽ hỏi về cách bảo mật tài nguyên Cloud, ví dụ: Làm sao để ứng dụng chạy trên EC2 gọi được vào S3 mà không cần hardcode Secret Key?
- IAM Roles/Service Accounts: Sử dụng danh tính đính kèm vào tài nguyên thay vì dùng Access Key/Secret Key tĩnh.
- Principle of Least Privilege: Chỉ cấp quyền vừa đủ để service thực hiện công việc, không cấp dư thừa (ví dụ: tránh dùng AdministratorAccess).
Ghi nhớ nhanh
- Hiểu rõ trade-off (đánh đổi) của từng chiến lược triển khai thay vì chỉ liệt kê công cụ.
- Tư duy hệ thống luôn ưu tiên 'Desired State' (trạng thái mong muốn) thay vì các thao tác thủ công.
- Khả năng Observability là thước đo của một Senior, hãy tập trung vào Tracing thay vì chỉ xem CPU/RAM.
- Bảo mật luôn bắt đầu từ IAM (Identity Access Management), hãy luôn tuân thủ nguyên tắc Least Privilege.