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, System Design & Kiến trúc). 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.
01Terraform state là gì? Làm việc nhóm với Terraform bạn quản lý state thế nào?DevOps & CI/CD
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →State là file Terraform ghi lại ánh xạ giữa code và tài nguyên thật; Terraform dựa vào nó để tính
plan. Mất hoặc lệch state là nguy cơ tạo trùng hoặc xoá nhầm tài nguyên.- Lưu state ở remote backend (S3, GCS, Azure Blob, Terraform Cloud), bật versioning và mã hoá.
- Bật locking để hai người không
applycùng lúc. - Tách state theo môi trường/thành phần để giảm phạm vi ảnh hưởng.
- Không commit state lên Git: trong đó có thể chứa secret.
- Chạy
plantrong CI cho mỗi PR,applyqua pipeline có duyệt.
Hay sai: sửa tay trên console rồi quên, tạo drift; nên định kỳ chạy
planđể phát hiện.02Bạn quản lý secret (mật khẩu DB, API key) trong pipeline và Kubernetes thế nào?DevOps & CI/CD
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →Nguyên tắc: secret không nằm trong Git, không in ra log, được cấp theo quyền tối thiểu và xoay vòng được.
- Dùng secret manager (Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager) làm nguồn gốc.
- Đồng bộ vào cluster bằng External Secrets Operator hoặc CSI driver; nếu phải để trong Git thì mã hoá (Sealed Secrets, SOPS).
- Kubernetes Secret mặc định chỉ base64: bật mã hoá etcd và giới hạn RBAC đọc Secret.
- CI dùng biến được che (masked), ưu tiên OIDC để lấy credential ngắn hạn thay vì key dài hạn.
- Bật quét secret khi push code.
Người phỏng vấn muốn nghe: biết base64 không phải mã hoá, và có kế hoạch xoay key khi bị lộ.
03So 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).
04Thiết kế cache: các chiến lược cache-aside, write-through và cách xử lý cache invalidation.System Design & Kiến trúc
Gợi ý trả lời
Ôn thêm câu hỏi System Design & Kiến trúc →Cache giảm độ trễ và tải cho DB, đổi lại phải chấp nhận dữ liệu có thể cũ trong một khoảng thời gian.
- Cache-aside (phổ biến nhất): đọc cache, miss thì đọc DB rồi ghi vào cache kèm TTL. Khi cập nhật thì ghi DB rồi xoá key cache.
- Write-through: ghi qua cache rồi cache ghi xuống DB, dữ liệu cache luôn mới nhưng ghi chậm hơn.
- Write-behind: ghi cache trước, đẩy xuống DB sau; nhanh nhưng có thể mất dữ liệu.
Các vấn đề cần xử lý:
- Cache stampede: key nóng hết hạn, hàng nghìn request cùng đánh vào DB. Giải pháp: lock hoặc single-flight, làm mới sớm, thêm độ lệch ngẫu nhiên cho TTL.
- Cache penetration: truy vấn key không tồn tại liên tục. Giải pháp: cache cả kết quả rỗng, dùng bloom filter.
Hay sai: cập nhật cache thay vì xoá, dễ ghi đè giá trị cũ khi hai request chạy song song.
05Khi nào dùng message queue như Kafka hay RabbitMQ? Hai công cụ này khác nhau thế nào?System Design & Kiến trúc
Gợi ý trả lời
Ôn thêm câu hỏi System Design & Kiến trúc →Message queue tách bên gửi và bên nhận: xử lý bất đồng bộ, hấp thụ tải đột biến, cho nhiều hệ thống cùng phản ứng với một sự kiện.
- RabbitMQ: message broker truyền thống, định tuyến linh hoạt qua exchange (direct, topic, fanout), message bị xoá sau khi consumer ack. Hợp với hàng đợi tác vụ như gửi email, xử lý ảnh.
- Kafka: log phân tán chỉ ghi nối, message được giữ theo thời gian cấu hình, consumer tự quản lý offset nên đọc lại được. Thứ tự chỉ đảm bảo trong từng partition. Hợp với event streaming, thông lượng lớn, nhiều consumer group.
Lưu ý khi dùng:
- Mặc định nên coi là at-least-once, nên consumer phải idempotent.
- Có dead letter queue cho message lỗi lặp lại.
- Theo dõi consumer lag.
Người phỏng vấn muốn nghe: lý do chọn gắn với nhu cầu cụ thể, không chọn Kafka chỉ vì nghe "xịn".
06Production đ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.
07SLI, 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.
08GitOps 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.
09Định lý CAP là gì? Strong consistency và eventual consistency áp dụng thế nào trong thực tế?System Design & Kiến trúc
Gợi ý trả lời
Ôn thêm câu hỏi System Design & Kiến trúc →CAP nói rằng khi xảy ra phân mảnh mạng (Partition), hệ phân tán phải chọn giữa Consistency (mọi node trả dữ liệu mới nhất hoặc báo lỗi) và Availability (luôn trả lời, có thể bằng dữ liệu cũ). Khi mạng bình thường, trade-off thực tế là giữa độ trễ và tính nhất quán (mô hình PACELC).
- Strong consistency: cần cho số dư tài khoản, tồn kho, đặt chỗ, nơi đọc dữ liệu cũ gây thiệt hại thật.
- Eventual consistency: chấp nhận được cho lượt thích, bảng tin, số người xem, kết quả tìm kiếm.
Một hệ thống thường kết hợp cả hai theo từng loại dữ liệu. Có những mức ở giữa như read-your-writes: người vừa sửa thì phải thấy thay đổi của mình, người khác thấy chậm vài giây cũng không sao.
Hay sai: nói "chọn 2 trong 3" như thể có thể bỏ P. Với hệ phân tán, phân mảnh mạng là chuyện chắc chắn xảy ra.
10Điểm yếu của bạn là gì?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á →Chọn điểm yếu thật, không chí mạng với vị trí, và cho thấy bạn đang cải thiện.
Cấu trúc: điểm yếu, ảnh hưởng đã gặp, việc bạn đang làm để khắc phục, tiến bộ đến nay.
Câu mẫu: "Trước đây em hay ngại hỏi khi bị kẹt, tự loay hoay quá lâu, có lần làm trễ task. Giờ em tự đặt giới hạn: kẹt quá một hai giờ mà không có hướng thì em hỏi đồng đội, kèm những gì đã thử. Từ khi làm vậy em xong việc đúng hạn hơn và học được nhanh hơn từ người khác."
Ví dụ khác có thể dùng: chưa quen nói trước đám đông, tiếng Anh nói chưa trôi chảy, hay ôm việc.
Hay sai: "Điểm yếu của em là quá cầu toàn" (nghe như né câu hỏi), hoặc nêu điểm yếu là kỹ năng cốt lõi của vị trí.
Bạn đã phỏng vấn ở Sacombank?
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