Docker for Backend & AI Engineers
Trang chủ / Module 11
🕸️ Module 11 / 12 · 1 tuần

Từ Docker Compose đến Orchestration thật

Giới hạn của Docker Compose ở quy mô production, Docker Swarm như bước đệm nhẹ, và khi nào thực sự cần Kubernetes.

SwarmKubernetesOrchestration
📌 Vì sao module này quan trọng

Docker Compose tuyệt vời cho local dev nhưng không phải công cụ orchestration production (không tự phục hồi khi 1 máy chết, không scale qua nhiều máy tự động). Module này là cầu nối tư duy trước khi đào sâu Kubernetes ở Module 13 khoá AI Engineer — giúp bạn hiểu "khoảng trống" mà Kubernetes lấp vào, không học K8s như một hộp đen.

🎯 Mục tiêu học tập

  • Nhận diện rõ giới hạn của Docker Compose khi vận hành production thật
  • Hiểu Docker Swarm là gì — orchestration tích hợp sẵn trong Docker, đơn giản hơn Kubernetes
  • So sánh Swarm và Kubernetes để chọn đúng công cụ theo quy mô nhu cầu
  • Kết nối các khái niệm Compose đã học sang khái niệm tương ứng trong Kubernetes

Giới hạn của Docker Compose ở Production

Compose (Module 5) được thiết kế cho 1 máy duy nhất — không có khái niệm "nhiều node", không tự động khởi động lại service trên máy khác nếu máy hiện tại chết, không có cơ chế rolling update an toàn (cập nhật dần từng instance, giữ dịch vụ luôn khả dụng), và không tự động scale số replica theo tải. Với 1 service nhỏ chạy trên 1 VPS, Compose vẫn là lựa chọn hợp lý và đơn giản — nhưng khi cần độ tin cậy cao (high availability) hoặc scale ngang qua nhiều máy, cần một lớp orchestration thực thụ.

Docker Swarm — Orchestration tích hợp sẵn, đơn giản hơn

Swarm là chế độ orchestration tích hợp sẵn trong chính Docker Engine — cú pháp file định nghĩa service gần giống hệt Compose (thực tế Compose file dùng được gần như nguyên vẹn cho Swarm), độ phức tạp vận hành thấp hơn nhiều so với Kubernetes:

# Khởi tạo 1 Swarm cluster (trên máy đầu tiên — sẽ là manager node)
docker swarm init

# Deploy 1 stack (dùng lại cú pháp Compose file quen thuộc)
docker stack deploy -c docker-compose.yml my-app

# Scale 1 service lên 3 replica, tự phân phối qua các node
docker service scale my-app_api=3

Swarm phù hợp cho team nhỏ cần high-availability cơ bản mà không muốn gánh độ phức tạp vận hành của Kubernetes — nhưng hệ sinh thái công cụ/cộng đồng hỗ trợ nhỏ hơn nhiều so với Kubernetes, và hầu hết công cụ AI/data hiện đại (Databricks, nhiều managed service) không hỗ trợ Swarm.

So sánh Swarm vs Kubernetes — chọn đúng công cụ

Tiêu chíDocker SwarmKubernetes
Độ phức tạp vận hànhThấp — gần giống ComposeCao — nhiều khái niệm mới (Pod, Deployment, Service, Ingress...)
Hệ sinh thái & cộng đồngNhỏ, ít phát triển thêmRất lớn, chuẩn công nghiệp, được mọi cloud hỗ trợ managed
Tính năng nâng cao (autoscaling theo metric tuỳ chỉnh, service mesh, operator...)Hạn chếPhong phú, hệ sinh thái add-on khổng lồ
Phù hợp nhất choTeam nhỏ, hệ thống không quá phức tạp, ưu tiên đơn giảnHệ thống production nghiêm túc, cần tích hợp managed service cloud (đã học ở Module 13 khoá AI Engineer)
💡 Thực dụng

Với lộ trình bạn đang theo (AI Engineer/Data Engineer), Kubernetes gần như chắc chắn là công cụ bạn sẽ gặp trong công việc thực tế (managed qua EKS/AKS/GKE) — Swarm đáng học để hiểu khái niệm orchestration một cách nhẹ nhàng trước, nhưng không cần thành thạo sâu nếu mục tiêu là production thật.

Ánh xạ khái niệm: Compose → Kubernetes

Docker ComposeKhái niệm tương ứng trong Kubernetes
servicesDeployment + Pod
portsService (ClusterIP/NodePort) + Ingress
volumesPersistentVolume + PersistentVolumeClaim
environmentConfigMap + Secret
depends_on + healthcheckreadinessProbe + livenessProbe
docker compose up --scale api=3replicas: 3 trong Deployment spec, hoặc HorizontalPodAutoscaler

Bảng ánh xạ này là "bản đồ" giúp Module 13 khoá AI Engineer (triển khai Kubernetes) dễ tiếp thu hơn nhiều — phần lớn khái niệm Kubernetes không hề mới, chỉ là phiên bản "công nghiệp hoá, phân tán qua nhiều node" của những gì bạn đã quen thuộc từ Compose.

🏋️ Bài tập thực hành

Thử nghiệm Swarm & So sánh khái niệm

Khởi tạo 1 Swarm cluster cục bộ (1 node là đủ để thử nghiệm), deploy lại stack đã xây ở Module 5 bằng docker stack deploy, thử scale 1 service lên nhiều replica. Sau đó, với mỗi dòng trong bảng ánh xạ Compose→Kubernetes, viết 1 câu giải thích ngắn bằng từ ngữ của riêng bạn — bài tập này chuẩn bị trực tiếp cho Module 13 khoá AI Engineer.

📚 Tài nguyên học tập

✅ Tự đánh giá hoàn thành

  • Giải thích được giới hạn của Docker Compose ở quy mô production
  • Thực hành thành công deploy 1 stack lên Docker Swarm cục bộ
  • So sánh được Swarm và Kubernetes, chọn đúng công cụ theo tình huống
  • Ánh xạ được các khái niệm Compose sang khái niệm Kubernetes tương ứng