Bỏ qua để đến nội dung
Knowledge Hub

DevOps Cơ bản

Một cấu hình sai ở tầng vận hành có thể biến sự cố nhỏ thành sự cố lớn: database gián đoạn vài giây, health check của mọi Pod cùng fail, Kubernetes restart cả đội, cache mất sạch, rồi database vừa hồi phục đã gặp tải khởi động của tất cả Pod.

Nhóm này có ba bài, theo vòng đời một lần deploy: Pod khởi động → Pod bị thay thế → schema đổi cùng lúc. Phù hợp cho backend dev bắt đầu tự chịu trách nhiệm deploy lên Kubernetes, và cho tech lead muốn rà soát checklist vận hành. Chưa bao gồm: autoscaling, resource requests/limits, networking, observability stack.

# Bài Bạn sẽ trả lời được Level Đọc
1 Kubernetes probes Startup, readiness, liveness khác nhau thế nào? Dependency chung chết thì readiness nên làm gì? Basic ~12 phút
2 SIGTERM khi deploy Vì sao deploy vẫn cắt request? preStop, grace period và server.close() ăn chung ngân sách thế nào? Intermediate ~15 phút
3 Expand–contract Đổi tên cột khi hai phiên bản app cùng chạy thế nào? lock_timeout, NOT VALID, rollback ra sao? Intermediate ~15 phút
4 Docker multi-stage & non-root Vì sao image 1,7 GB và rebuild chậm? Sắp layer, tách stage, chạy non-root, giữ secret ngoài image thế nào? Basic ~12 phút
5 Requests & limits Vì sao p99 tăng vọt khi CPU trông còn thấp? Request, limit, QoS và OOMKilled thật ra nghĩa là gì? Intermediate ~15 phút
6 Chiến lược deploy Rolling, blue-green hay canary? Rollback không hoàn tác được gì? Theo dõi gì trong lúc rollout? Intermediate ~15 phút

Bài 2 tiếp nối bài 1 (probe quyết định Pod có nhận traffic không, bài 2 nói chuyện gì xảy ra khi Pod bị dừng). Bài 3 độc lập về mặt kỹ thuật nhưng cần ý niệm rolling deploy từ bài 2, và nên biết ACID và transaction.

Triệu chứng Đọc
Pod restart liên tục lúc khởi động Startup probe và initialDelaySeconds
Database chậm là cả đội Pod rớt khỏi Service Dependency dùng chung
Restart storm khi tải cao Liveness cấu hình sai
Mỗi lần deploy có vài request connection refused hoặc 502 SIGTERM khi deploy
Rollout kéo dài rồi Pod bị SIGKILL Ngân sách grace period
App cũ lỗi sau migration, hoặc ALTER TABLE treo cả bảng Expand–contract
Cần thêm NOT NULL hoặc index trên bảng lớn NOT NULL và index không khoá bảng

Khi probe đã đúng mà request vẫn chậm, câu hỏi chuyển sang đo đạc: logs, metrics và traces giúp chọn đúng signal; muốn biến “chậm” thành mục tiêu đo được, xem SLI, SLO và error budget.