10 câu hỏi có thể gặp khi phỏng vấn
Chọn theo kỹ năng và cấp của tin (DevOps & CI/CD, Cloud (AWS, Azure, GCP)). Gợi ý trả lời do Drama Công Ty biên soạn để bạn ôn nhanh, không phải đề của công ty.
01So sánh rolling update, blue-green và canary. Bạn chọn chiến lược nào cho hệ thống thanh toán?DevOps & CI/CD · Senior
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →Cả ba đều giảm rủi ro khi deploy nhưng khác ở chi phí và tốc độ phát hiện lỗi.
- Rolling: thay dần từng Pod, rẻ, mặc định của Deployment; hai phiên bản chạy song song một lúc.
- Blue-green: dựng nguyên bộ mới, chuyển traffic một lần, rollback tức thì; tốn gấp đôi tài nguyên.
- Canary: đưa một phần nhỏ traffic sang bản mới, theo dõi metric rồi tăng dần; cần công cụ (service mesh, Argo Rollouts) và metric tốt.
Với thanh toán, canary kèm tự động rollback theo tỷ lệ lỗi và độ trễ là lựa chọn hợp lý.
Hay sai: quên migration DB. Schema phải tương thích cả bản cũ lẫn mới (expand rồi mới contract).
02Production đang lỗi 5xx tăng vọt sau một lần deploy. Bạn xử lý thế nào?DevOps & CI/CD · Senior
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →Ưu tiên khôi phục dịch vụ trước, tìm nguyên nhân gốc sau.
- Xác nhận phạm vi qua dashboard: endpoint nào, từ lúc nào, có trùng thời điểm deploy không.
- Nếu nghi deploy: rollback ngay (
kubectl rollout undo, hoặc revert trong GitOps) thay vì sửa nóng. - Thông báo kênh sự cố, chỉ định người điều phối, ghi lại mốc thời gian.
- Sau khi ổn định: so sánh log, trace, diff cấu hình giữa hai phiên bản.
- Viết postmortem không đổ lỗi, có hành động phòng ngừa (thêm test, canary, alert).
Người phỏng vấn muốn nghe: bình tĩnh, có thứ tự, biết giảm thiệt hại trước, và rút kinh nghiệm thành thay đổi quy trình.
03SLI, SLO và error budget là gì? Bạn đặt alert dựa trên chúng thế nào?DevOps & CI/CD · Senior
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →SLI là chỉ số đo trải nghiệm người dùng (tỷ lệ request thành công, độ trễ p99); SLO là mục tiêu cho SLI đó trong một khoảng thời gian; error budget là phần được phép hỏng còn lại.
- Ví dụ: SLO 99.9% request thành công trong 30 ngày, nghĩa là budget 0.1% request lỗi.
- Alert theo burn rate: budget đang bị tiêu nhanh bất thường (đo trên cửa sổ ngắn và dài) thì báo, thay vì báo mỗi khi CPU cao.
- Hết budget: ưu tiên việc ổn định, chậm lại tính năng mới.
Hay sai: đặt alert trên nguyên nhân (CPU, RAM) thay vì triệu chứng người dùng thấy, dẫn đến báo động giả và mệt mỏi vì alert.
04RTO và RPO là gì? Trình bày các chiến lược disaster recovery trên cloud.Cloud (AWS, Azure, GCP) · Senior
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →RPO là lượng dữ liệu tối đa chấp nhận mất (tính theo thời gian); RTO là thời gian tối đa để khôi phục dịch vụ. Hai con số này do nghiệp vụ quyết định và định giá chiến lược.
Từ rẻ đến đắt:
- Backup & restore: sao lưu sang region khác, dựng lại khi cần; RTO hàng giờ.
- Pilot light: dữ liệu được replicate liên tục, chỉ phần lõi chạy sẵn.
- Warm standby: bản thu nhỏ chạy sẵn ở region khác, scale lên khi failover.
- Active-active: nhiều region cùng phục vụ; RTO/RPO gần 0, phức tạp nhất.
Hay sai: có backup nhưng chưa bao giờ thử khôi phục. Kế hoạch DR phải được diễn tập định kỳ.
05Công ty có nhiều team, nhiều môi trường trên cloud. Bạn tổ chức account/subscription và quản trị thế nào?Cloud (AWS, Azure, GCP) · Senior
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →Dùng mô hình landing zone: tách account (AWS), subscription (Azure) hoặc project (GCP) theo môi trường và team để cô lập quyền, chi phí và phạm vi sự cố.
- Quản lý tập trung bằng AWS Organizations, Azure Management Groups, GCP Organization/Folder.
- Áp guardrail ở cấp tổ chức: chặn region không dùng, bắt buộc mã hoá, cấm tắt log audit (SCP, Azure Policy, Organization Policy).
- Đăng nhập tập trung qua SSO, cấp quyền theo nhóm.
- Tài khoản riêng cho log audit và bảo mật, team ứng dụng không xoá được.
- Mạng nối qua hub (Transit Gateway, hub-spoke VNet, Shared VPC).
- Tag bắt buộc để phân bổ chi phí.
Người phỏng vấn muốn nghe: cân bằng giữa tự chủ của team và kiểm soát tập trung.
06GitOps là gì? Bạn tổ chức repo và quy trình deploy cho nhiều môi trường, nhiều service ra sao?DevOps & CI/CD · Senior
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →GitOps coi Git là nguồn sự thật cho trạng thái hệ thống; một agent trong cluster (Argo CD, Flux) liên tục kéo và đồng bộ, thay vì CI đẩy thẳng bằng
kubectl.- Tách repo code ứng dụng và repo cấu hình deploy; CI build image rồi mở PR cập nhật tag.
- Cấu hình dùng chung bằng Helm chart hoặc Kustomize, overlay riêng cho dev/staging/prod.
- Lên prod qua PR có review; rollback bằng
git revert. - Bật phát hiện drift và tự sửa lệch cấu hình.
- CI không cần giữ credential admin của cluster.
Người phỏng vấn muốn nghe: cân nhắc được đánh đổi, ví dụ secret vẫn cần giải pháp riêng và số lượng PR cập nhật tag có thể nhiều.
07Pod bị CrashLoopBackOff, bạn điều tra thế nào?DevOps & CI/CD
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →CrashLoopBackOff nghĩa là container khởi động rồi thoát liên tục; cần tìm lý do nó thoát.
kubectl describe pod <pod> # events, exit code, OOMKilled? kubectl logs <pod> --previous # log của lần chạy trước khi chết kubectl get events --sort-by=.lastTimestamp- Exit code 137 /
OOMKilled: thiếu memory limit hoặc rò rỉ bộ nhớ. - Lỗi cấu hình: thiếu biến môi trường, Secret/ConfigMap sai, không kết nối được DB.
- Liveness probe quá gắt khiến app bị kill khi đang khởi động; cân nhắc
startupProbe. - Sai lệnh
command/args, sai kiến trúc image (arm64 và amd64).
Người phỏng vấn muốn nghe: quy trình có thứ tự, dựa vào events và log trước khi đoán.
- Exit code 137 /
08Liveness, readiness và startup probe khác nhau thế nào? Cấu hình sai thì hậu quả gì?DevOps & CI/CD
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →Readiness quyết định Pod có nhận traffic không; liveness quyết định có restart container không; startup probe tạm hoãn hai probe kia cho tới khi app khởi động xong.
- Readiness fail: Pod bị gỡ khỏi endpoint của Service, không bị restart.
- Liveness fail: kubelet restart container.
- Startup probe hợp với app khởi động chậm (JVM, nạp model).
Lỗi hay gặp:
- Liveness kiểm tra cả DB bên ngoài: DB chậm là toàn bộ Pod bị restart dây chuyền.
- Không có readiness: rolling update đẩy traffic vào Pod chưa sẵn sàng, gây lỗi 5xx.
Người phỏng vấn muốn nghe: liveness chỉ nên kiểm tra chính process còn sống, phần phụ thuộc để cho readiness.
09Do you have any questions for us?Phỏng vấn tiếng Anh
Gợi ý trả lời
Ôn thêm câu hỏi Phỏng vấn tiếng Anh →"Yes, I have a couple of questions. First, could you tell me what a typical week looks like for this role? And second, what are the biggest challenges the team is facing right now? I'd also like to know how you measure success for someone in this position during the first three months."
Mẹo: chuẩn bị sẵn 2–3 câu, dùng mẫu lịch sự "Could you tell me…?", "I'd like to know…". Đừng trả lời "No, I don't". Câu hỏi về chế độ, phúc lợi nên để dành cho buổi nói chuyện với HR.
10Bạn hãy giới thiệu ngắn về bản thân.Câu hỏi hành vi & văn hoá
Gợi ý trả lời
Ôn thêm câu hỏi Câu hỏi hành vi & văn hoá →Đây là câu mở đầu gần như chắc chắn có. Dùng công thức Hiện tại – Quá khứ – Tương lai, gói trong khoảng 1–2 phút.
- Hiện tại: vị trí, số năm kinh nghiệm, mảng/công nghệ chính.
- Quá khứ: một hai dự án hoặc thành tích liên quan nhất tới vị trí đang tuyển.
- Tương lai: vì sao bạn quan tâm tới vị trí này.
Câu mẫu: "Em là backend developer, khoảng 3 năm kinh nghiệm, chủ yếu làm Java Spring cho hệ thống thanh toán. Ở dự án gần nhất em phụ trách module đối soát và tối ưu các truy vấn báo cáo chạy chậm. Em đang tìm môi trường làm sản phẩm lâu dài để đi sâu hơn về thiết kế hệ thống, nên rất quan tâm tới vị trí này."
Hay sai: kể từ quê quán, trường cấp ba, hoặc đọc lại nguyên CV.
Bạn đã phỏng vấn ở NAB Innovation Centre Vietnam?
Kể lại các vòng và câu hỏi đã gặp (ẩn danh) để người sau ôn đúng trọng tâm.
Chia sẻ kinh nghiệm phỏng vấn