Monolithic architecture là gì?
Toàn bộ ứng dụng nằm trong một codebase duy nhất, dùng cùng ngôn ngữ và runtime.
Vấn đề khi nhiều team cùng làm việc trong monolith?
Dễ phụ thuộc và xung đột, vì cùng chỉnh sửa một codebase.
Tại sao deploy một thay đổi nhỏ trong monolith lại tốn thời gian?
Vì phải build & deploy toàn bộ ứng dụng.
Vấn đề khi cần scale một module trong monolith?
Phải scale cả ứng dụng, dù chỉ một phần cần mở rộng → tốn tài nguyên.
Monolith thường gặp lỗi về dependency như thế nào?
Không thể dùng nhiều version thư viện khác nhau trong cùng hệ thống.
Tại sao monolith release chậm?
Mọi thay đổi đều phải test và phát hành toàn bộ ứng dụng.
Microservices architecture là gì?
Ứng dụng chia thành nhiều service nhỏ, độc lập, có thể phát triển, deploy, scale riêng.
Microservices chia theo tiêu chí nào?
Theo business function, không chia theo kỹ thuật.
“Loose coupling” trong microservices nghĩa là gì?
Các service độc lập, thay đổi hoặc lỗi của một service không ảnh hưởng service khác.
Ưu điểm của microservices?
1️⃣Phát triển song song dễ hơn
2️⃣Triển khai độc lập
3️⃣Scale linh hoạt
4️⃣Dùng công nghệ riêng cho từng service
Cách microservices giao tiếp với nhau phổ biến nhất?
Qua API HTTP (REST) hoặc message broker.
Kubernetes (K8s) là gì?
Hệ thống mã nguồn mở để quản lý & điều phối container, ban đầu do Google phát triển.
Vì sao microservices cần K8s?
Quản lý hàng trăm container, tự động scale, restart, load-balance, đảm bảo tính ổn định.
Data Plane trong Service Mesh có vai trò gì?
Proxy xử lý request, retry, metrics, bảo mật, chạy kèm mỗi service (sidecar).
Kubernetes là hệ thống gì?
Là một distributed system — gồm nhiều thành phần chạy trên nhiều server (VM hoặc vật lý) hợp lại thành một Kubernetes cluster.
Kubernetes cluster gồm mấy loại node chính?
Gồm 2 loại node chính:
1️⃣Control plane node (điều khiển, quản lý)
2️⃣Worker node (chạy ứng dụng containerized)
Control plane node có nhiệm vụ gì?
Là đầu não của hệ thống, đảm bảo cluster hoạt động đúng như mong muốn.
👉 Giống như ban quản lý trong một công ty.
Các thành phần của control plane?
Gồm các thành phần: API server, etcd, scheduler, kube-controller-manager, cloud-controller-manager.
Worker node có nhiệm vụ gì?
Là nơi chạy các ứng dụng containerized.
👉 Giống như phòng ban nơi nhân viên trực tiếp làm việc.
Các thành phần của worker node?
Gồm: kubelet, kube-proxy, container runtime.
API Server làm nhiệm vụ gì?
Giống thư ký.
Là đầu mối giao tiếp trung tâm — tất cả các thành phần trong cluster nói chuyện qua API Server.
Chỉ API Server mới có thể kết nối trực tiếp tới etcd.
etcd là gì?
Giống kho tài liệu.
Là cơ sở dữ liệu key-value lưu toàn bộ trạng thái của cluster.
Mọi thay đổi đều được ghi vào đây thông qua API Server.
Scheduler làm nhiệm vụ gì?
Giống giám đốc nhân sự.
Chọn node phù hợp để chạy pod khi có pod mới được tạo.
Controller Manager làm nhiệm vụ gì?
Giống giám sát viên.
Theo dõi actual state và so sánh với desired state (từ manifest).
Nếu khác → điều chỉnh để khớp.