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 (Cloud (AWS, Azure, GCP), Python, DevOps & CI/CD). 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.
01Thiết kế hạ tầng cho một web app cần chịu tải cao và sẵn sàng 99.9% trên cloud.Cloud (AWS, Azure, GCP) · Senior
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →Trình bày theo luồng request và nói rõ điểm lỗi đơn được loại bỏ ở đâu.
- Biên: DNS, CDN cho nội dung tĩnh, WAF.
- Ứng dụng: load balancer L7 trước nhóm container/VM stateless trải nhiều AZ, auto scaling theo CPU hoặc số request.
- Dữ liệu: DB quản lý sẵn Multi-AZ, read replica cho đọc nhiều, Redis làm cache và session.
- Bất đồng bộ: queue cho việc nặng (gửi mail, xử lý ảnh).
- Vận hành: IaC, backup tự động có thử khôi phục, giám sát và alert theo SLO.
Người phỏng vấn muốn nghe: đánh đổi chi phí. 99.9% thường đủ với một region nhiều AZ; multi-region đắt và phức tạp hơn nhiều.
02RTO 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ỳ.
03Cô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.
04Python quản lý bộ nhớ thế nào? Một worker Python cứ tăng RAM dần, bạn tìm nguyên nhân ra sao?Python · Senior
Gợi ý trả lời
Ôn thêm câu hỏi Python →CPython dùng reference counting: object bị giải phóng ngay khi số tham chiếu về 0. Bộ thu gom
gcchạy thêm để dọn các vòng tham chiếu (A trỏ B, B trỏ A).Nguyên nhân leak hay gặp:
- Cache toàn cục (dict,
lru_cachekhông giới hạn) chỉ thêm không xoá. - Biến ở module hoặc class tích luỹ dữ liệu qua các request.
- Đọc cả file hay cả queryset lớn vào bộ nhớ thay vì xử lý theo lô.
- Extension C giữ bộ nhớ ngoài tầm GC.
Cách điều tra:
tracemalloc: chụp snapshot hai thời điểm rồi so sánh dòng code cấp phát nhiều nhất.- Theo dõi RSS theo thời gian, thử tái hiện với một loại request.
- Giải pháp tạm: cấu hình worker tự khởi động lại sau N request (Gunicorn
max_requests, Celerymax_tasks_per_child).
Người phỏng vấn muốn nghe: bạn đo trước khi đoán, và biết giải pháp tạm không thay cho việc tìm nguyên nhân.
- Cache toàn cục (dict,
05Một API viết bằng Python (Django hoặc FastAPI) phản hồi chậm. Bạn tối ưu theo thứ tự nào?Python · Senior
Gợi ý trả lời
Ôn thêm câu hỏi Python →Đo trước, tối ưu chỗ tốn nhất trước. Phần lớn trường hợp nút thắt là DB và gọi mạng, không phải tốc độ của Python.
- Đo: APM hoặc tracing (OpenTelemetry) để biết thời gian nằm ở DB, API ngoài hay code. Profile bằng
py-spy(gắn vào process đang chạy) hoặccProfile. - DB: xử lý N+1, thêm index phù hợp, chỉ lấy cột cần (
only,values), phân trang. - Cache: Redis cho dữ liệu đọc nhiều, ít đổi; nhớ chiến lược invalidate.
- Việc nặng hoặc không cần trả ngay (gửi email, xuất file): đẩy sang Celery hoặc queue.
- Gọi nhiều API ngoài: chạy song song, đặt timeout.
- Cuối cùng mới tới tối ưu thuật toán, hoặc đưa đoạn nặng CPU sang thư viện C hay service khác.
Hay sai: viết lại sang async hoặc đổi ngôn ngữ trước khi biết thời gian thực sự bị tiêu ở đâu.
- Đo: APM hoặc tracing (OpenTelemetry) để biết thời gian nằm ở DB, API ngoài hay code. Profile bằng
06SLI, 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.
07Multi-cloud có đáng không? Bạn tư vấn thế nào khi sếp muốn chạy song song AWS và Azure?Cloud (AWS, Azure, GCP) · Senior
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →Multi-cloud có lý do chính đáng nhưng chi phí vận hành rất lớn; cần hỏi rõ mục tiêu trước khi đồng ý.
Lý do hợp lý:
- Yêu cầu pháp lý hoặc khách hàng chỉ định nhà cung cấp.
- Dùng dịch vụ đặc thù tốt nhất của từng bên.
- Công ty sáp nhập, mỗi bên đã dùng một cloud.
Cái giá:
- Đội phải giỏi hai nền tảng, IAM và mạng khác nhau.
- Chi phí truyền dữ liệu giữa cloud.
- Chỉ dùng mẫu số chung, mất lợi thế dịch vụ managed.
Giảm phụ thuộc thường chỉ cần container, Terraform và tránh API độc quyền ở phần lõi.
Người phỏng vấn muốn nghe: biết hỏi "để giải quyết vấn đề gì", không trả lời có/không ngay.
08IAM role khác IAM user thế nào? Vì sao không nên để access key trong code?Cloud (AWS, Azure, GCP)
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →User đại diện cho một người hoặc ứng dụng với credential dài hạn; role là tập quyền được "đội" tạm thời và cấp credential ngắn hạn tự hết hạn.
- Ứng dụng chạy trên cloud nên dùng role gắn vào máy ảo, container, function (instance profile, managed identity, service account).
- CI/CD ngoài cloud dùng OIDC federation để lấy token ngắn hạn, không cần key cố định.
- Áp dụng least privilege: chỉ cấp đúng action trên đúng resource.
- Bật MFA cho người dùng, hạn chế dùng tài khoản root.
Access key trong code dễ lộ qua Git, log, image; một khi lộ thì dùng được tới khi bị thu hồi.
Người phỏng vấn muốn nghe: policy cụ thể, tránh
"Action": "*".09Khi nào bạn chọn serverless (Lambda, Azure Functions, Cloud Run) thay vì container hay VM?Cloud (AWS, Azure, GCP)
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →Serverless hợp với tải không đều, xử lý theo sự kiện, đội nhỏ không muốn vận hành server; trả tiền theo lượng dùng.
Hợp:
- Xử lý file khi upload, webhook, cron job, API lưu lượng thấp hoặc thất thường.
Cân nhắc:
- Cold start làm tăng độ trễ request đầu.
- Giới hạn thời gian chạy, bộ nhớ, kích thước gói.
- Tải cao và đều thì container/VM thường rẻ hơn.
- Kết nối DB: nhiều instance mở nhiều connection, cần connection pooler hoặc proxy.
- Khó debug và test cục bộ hơn.
Người phỏng vấn muốn nghe: quyết định dựa trên đặc điểm tải và chi phí, không chọn vì "đang hot".
10Kể về một thất bại hoặc sai lầm của bạn và bài học rút ra.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 sai lầm thật, có hậu quả vừa phải, nhận trách nhiệm rõ ràng, và nhấn mạnh việc bạn đã thay đổi sau đó.
Cấu trúc: chuyện gì xảy ra, phần lỗi của bạn, bạn khắc phục ngay thế nào, bài học và thay đổi lâu dài.
Câu mẫu: "Có lần em deploy một thay đổi cấu hình lên production vào chiều thứ Sáu mà không kiểm tra kỹ trên staging, làm một tính năng lỗi khoảng một giờ. Em báo ngay cho lead, rollback và viết báo cáo sự cố. Sau đó em đề xuất checklist trước deploy và quy ước hạn chế deploy cuối tuần; team áp dụng tới giờ."
Hay sai: kể một "thất bại" thực ra là khoe, đổ lỗi cho người khác, hoặc nói mình chưa từng thất bại.
Bạn đã phỏng vấn ở Công ty Cổ phần Thanh toán số MobiFone?
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