
Tưởng làm nhiều là học nhiều, Hóa ra là đi lướt
Em kể chuyện đời em chút là kinh nghiệm thực tế cá nhân mong giúp được bác nào đang có suy nghĩ như em trước đây.
Hồi mới đi làm, mình nghĩ cách học nhanh nhất là “nhảy việc nhiều để đụng nhiều tech”. Thế là gần 3 năm mình nhảy 5 công ty: startup, outsource, product đủ cả. Ở đâu cũng được sờ vào một mảnh:
- Công ty A: setup Jenkins CI/CD
- Công ty B: chơi với Ansible
- Công ty C: vọc Helm, ArgoCD
- Công ty D: cắm mặt click AWS console
- Công ty E: manual DevOps, chẳng tool gì bài bản
Nghe thì có vẻ trải nghiệm phong phú, nhưng sự thật là… mình chưa từng bị gọi lúc production sập. Toàn làm giai đoạn setup, xong hệ thống chạy ổn ổn rồi out. Không post-mortem nào có tên mình, không incident nào mình là người chịu trách nhiệm chính.
Tưởng là học rộng, hóa ra là đi lướt. Kỹ năng bề mặt, kinh nghiệm nửa vời.
Thức tỉnh khi lần đầu gánh sự cố
Mãi đến công ty thứ 6, mình mới ngộ ra. Công ty này nhỏ thôi, nhưng mọi thứ mình phải tự chịu trách nhiệm.
Tháng đầu tiên vào, chưa kịp quen hạ tầng thì Kubernetes cluster hết IP. Flannel bị misconfig, cái subnet CIDR allocate sai khiến Pod mới không lên được. Cả hệ thống đứng vì chẳng service nào scale được. Em debug gần 4 tiếng, vọc log kubelet, CNI, dnsmasq,… mới ngộ ra là “IP exhaustion” là thứ các tutorial không bao giờ nhắc tới.
Đêm khác, Redis đột nhiên timeout hàng loạt. CPU ổn, RAM còn dư, connection count thì thấp. Cuối cùng tìm ra là Redis log đẻ ra quá nhiều dòng vì slowlog-log-slower-than set sai, khiến disk IO choke luôn, timeout toàn bộ request.
Từ đó mình học được một bài học: một DevOps tốt là người từng sửa hệ thống trong điều kiện không ai cứu mình.
Những kỹ năng không sách vở nào dạy
Một số thứ mình học được – không phải từ tutorial, mà từ đêm thức gỡ hệ thống:
1. Viết playbook như viết cho người mất trí nhớ
Không phải để người khác đọc. Mà để chính mình lúc 3h sáng lag não vẫn biết phải làm gì.
2. Alert không chờ hệ thống chết mới báo
Config Prometheus 2 tầng alert:
- Soft-alert: CPU cao liên tục, pod restart nhiều
- Hard-alert: chạm ngưỡng chịu tải
→ Tránh được vụ autoscaler scale pod khiến nghẽn DB connection pool.
3. Log không cần gom hết, chỉ cần gom đúng
Trước kia gom hết stdout về ELK → Loki chết vì overload.
Sau này, mình chỉ lấy log có pattern rõ ràng:
- App → gom
errorvàwarn - Infra → chỉ collect metrics qua Promtail
Làm nhiều thì chưa chắc giỏi nhưng sống với nó thì sẽ hiểu
Nhiều bạn junior hỏi mình:
“Em học Docker xong thì học Terraform hay Ansible trước?”
Mình nói thẳng: Học cái gì cũng được. Quan trọng là được giữ hệ thống sống 6 tháng và phải là người xử lý sự cố đầu tiên. Lúc đó, bạn sẽ tự hiểu hết.
Học từ nỗi đau, học trong áp lực – đó mới là cách học thật sự.
Bạn có thể học kiểu:
- CI/CD là push code lên đợi build xanh
- Infrastructure là terraform apply xong rồi được
- Monitoring là setup Prometheus rồi để đó, không retention, query dashboard loạn xạ
Học kiểu đó thì học có 10 tool cũng không bằng một lần production chết giữa đêm Giáng Sinh.
- Làm DevOps không phải để biết tool. Mà là để hệ thống bình yên, ngay cả khi mình không có mặt.
- Tool chỉ là phương tiện. Trải nghiệm thực chiến mới là thứ tạo nên kỹ năng thật.
Muốn đến được đó, chỉ có một cách: Phải từng là người gánh trách nhiệm thật sự qua đêm dài production cháy máy, tự mày mò xử lý.
Trích: Trần Phước Huỳnh – DevOps Engineer tại Tổng công ty Điện lực TP.HCM

