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), DevOps & CI/CD, Python). 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.
01Multi-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.
02IaaS, PaaS và SaaS khác nhau thế nào? Cho ví dụ dịch vụ thuộc từng loại.Cloud (AWS, Azure, GCP) · Junior
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →Khác nhau ở chỗ bạn tự quản lý tới tầng nào: IaaS bạn lo từ hệ điều hành trở lên, PaaS bạn chỉ lo code và dữ liệu, SaaS bạn chỉ dùng phần mềm.
- IaaS: máy ảo EC2, Azure Virtual Machines, Compute Engine.
- PaaS: Elastic Beanstalk, Azure App Service, Cloud Run, các DB quản lý sẵn như RDS, Cloud SQL.
- SaaS: email, bộ văn phòng, CRM dùng qua trình duyệt.
Người phỏng vấn muốn nghe: mô hình trách nhiệm chung (shared responsibility). Nhà cung cấp lo hạ tầng vật lý; cấu hình bảo mật, quyền truy cập và dữ liệu vẫn là việc của bạn ở mọi mô hình.
03Region và Availability Zone là gì? Thiết kế thế nào để ứng dụng không chết khi một AZ gặp sự cố?Cloud (AWS, Azure, GCP) · Junior
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →Region là một vùng địa lý; mỗi region có nhiều Availability Zone, là các trung tâm dữ liệu tách biệt về điện, mạng, làm mát nhưng nối với nhau độ trễ thấp.
Để chịu được mất một AZ:
- Chạy ứng dụng ở ít nhất 2 AZ, đứng sau load balancer.
- Dùng Auto Scaling group/managed instance group trải trên nhiều AZ.
- Database bật chế độ Multi-AZ (bản standby ở AZ khác, failover tự động).
- Ứng dụng stateless, session để ở Redis hoặc DB.
Hay sai: đặt NAT Gateway hoặc một thành phần duy nhất ở một AZ, tạo điểm lỗi đơn mà không để ý.
04Container khác máy ảo (VM) ở điểm nào? Khi nào vẫn nên dùng VM?DevOps & CI/CD · Junior
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →Container dùng chung kernel của máy chủ và cô lập bằng namespace + cgroup, nên khởi động nhanh và nhẹ; VM ảo hoá cả phần cứng và chạy một hệ điều hành riêng.
- Container: nhẹ, đóng gói ứng dụng cùng thư viện, hợp microservice và CI/CD.
- VM: cô lập mạnh hơn, chạy được kernel/OS khác (Windows trên host Linux), hợp workload cần ranh giới bảo mật rõ hoặc phần mềm cũ.
- Thực tế hai thứ thường đi cùng nhau: node Kubernetes chính là các VM trên cloud.
Hay sai: nói container "an toàn như VM". Container thoát ra host được nếu chạy
--privilegedhoặc kernel có lỗ hổng.05Bạn viết Dockerfile thế nào để image nhỏ, build nhanh và an toàn?DevOps & CI/CD · Junior
Gợi ý trả lời
Ôn thêm câu hỏi DevOps & CI/CD →Ý chính: dùng multi-stage build, sắp xếp layer để tận dụng cache, và không chạy bằng root.
FROM node:22-alpine AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build FROM node:22-alpine USER node COPY --from=build /app/dist /app- Copy file khai báo dependency trước, code sau, để đổi code không phải cài lại package.
- Dùng
.dockerignoreloạinode_modules,.git, file.env. - Không nhét secret vào image (kể cả ở layer đã xoá); dùng build secret hoặc biến môi trường lúc chạy.
- Ghim phiên bản base image, quét lỗ hổng trong pipeline.
06Đoạn code
def add(item, items=[])có vấn đề gì?Python · JuniorGợi ý trả lời
Ôn thêm câu hỏi Python →Giá trị mặc định được tạo một lần khi định nghĩa hàm, không phải mỗi lần gọi. Mọi lần gọi không truyền
itemssẽ dùng chung một list, nên dữ liệu bị cộng dồn qua các lần gọi.def add(item, items=None): if items is None: items = [] items.append(item) return items- Áp dụng cho mọi giá trị mặc định mutable:
[],{},set(). - Với dataclass, dùng
field(default_factory=list). - Với Django model field, truyền hàm chứ không truyền object:
default=list, không phảidefault=[].
Hay sai: dùng
if not items:thay choif items is None:. Khi caller truyền vào list rỗng có chủ đích, hàm lại tạo list mới và caller không nhận được kết quả.- Áp dụng cho mọi giá trị mặc định mutable:
07Giải thích VPC, public subnet, private subnet, Internet Gateway và NAT Gateway.Cloud (AWS, Azure, GCP) · Junior
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →VPC là mạng riêng ảo của bạn trên cloud; subnet chia nhỏ dải IP; tính "public" hay "private" của subnet do route table quyết định.
- Public subnet: route
0.0.0.0/0tới Internet Gateway; đặt load balancer, bastion. - Private subnet: không có route trực tiếp ra Internet; đặt app server, database.
- NAT Gateway: nằm ở public subnet, cho máy trong private subnet đi ra Internet (tải package, gọi API) nhưng không cho kết nối từ ngoài vào.
- Security group lọc ở mức instance (stateful); Network ACL lọc ở mức subnet (stateless).
Người phỏng vấn muốn nghe: database không bao giờ đặt ở public subnet, và truy cập quản trị nên đi qua bastion hoặc dịch vụ kiểu Session Manager.
- Public subnet: route
08Object storage (S3, Blob Storage, Cloud Storage) khác block storage và file storage thế nào?Cloud (AWS, Azure, GCP) · Junior
Gợi ý trả lời
Ôn thêm câu hỏi Cloud (AWS, Azure, GCP) →Object storage lưu file dạng đối tượng truy cập qua HTTP API, dung lượng gần như không giới hạn và rẻ; block storage là ổ đĩa gắn vào máy ảo; file storage là ổ mạng dùng chung qua NFS/SMB.
- Object: ảnh, video, backup, data lake, static website. Không sửa một phần file được, phải ghi đè cả object.
- Block (EBS, Managed Disk, Persistent Disk): ổ hệ điều hành, database tự quản; độ trễ thấp.
- File (EFS, Azure Files, Filestore): nhiều máy cùng đọc ghi một thư mục.
Hay sai: để bucket public để tiện chia sẻ. Nên giữ bucket private, chia sẻ bằng presigned URL hoặc CDN có kiểm soát.
09IAM 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": "*".10Điểm mạnh lớn nhất 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 một hai điểm mạnh liên quan tới vị trí, và chứng minh bằng ví dụ thật, không liệt kê tính từ.
Cấu trúc: điểm mạnh, ví dụ ngắn, kết quả, liên hệ với công việc mới.
Câu mẫu: "Điểm mạnh của em là chủ động tìm nguyên nhân gốc. Ở dự án trước, hệ thống thỉnh thoảng bị timeout mà không ai tái hiện được. Em tự đọc log, thêm theo dõi ở các điểm nghi ngờ và tìm ra một truy vấn bị khoá bảng vào giờ cao điểm. Sau khi sửa, lỗi đó không còn xuất hiện. Em nghĩ điều này hữu ích với vị trí bên mình vì hệ thống có lượng truy cập lớn."
Hay sai: "Em chăm chỉ, ham học hỏi, chịu được áp lực" mà không có ví dụ. Ai cũng nói vậy nên không đọng lại gì.
Bạn đã phỏng vấn ở Viettel?
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