about.story

Vịt Lộn
& Production

Tương truyền, vịt lộn là biểu tượng của… production.
Bóc ra thì hồi hộp. Ăn vào thì vừa sung sướng vừa đau đớn.

deploy-log.sh
// Cảm giác deploy lúc 11h đêm
$ git push origin main --force-with-lease
$ kubectl rollout status deployment/vit-lon-prod
deployment "vit-lon-prod" successfully rolled out
// 3 phút sau...
✗ INCIDENT #2847500 Internal Server Error
$ kubectl rollout undo deployment/vit-lon-prod // tay run run

Giống hệt cảm giác deploy thành công — CI/CD xanh lè, Slack bot gửi ✅, bạn ngả lưng ghế với nụ cười mãn nguyện. Hệ thống chạy mượt như autoscaling thần thánh, metrics đẹp như dashboard mơ ước.

Nhưng ngay sau đó — khách hàng báo lỗi. Incident nhân đôi, rollback không kịp. Miệng vẫn còn mùi rau răm mà tay đã run run bấm "redeploy". PagerDuty réo như chuông chùa. Grafana đỏ rực như mâm cỗ ngày Tết.

Cuối cùng thì mọi incident đều có postmortem. Mọi quả vịt lộn đều có bài học. Và mọi dev đều biết: đừng bao giờ deploy thứ Sáu — trừ khi bạn thích ăn vịt lộn lúc 2 giờ sáng trong khi đọc stack trace.

/// live incident log
23:01:12 info Deployment vit-lon-prod v2.4.7 started
23:03:45 info All health checks passed. Autoscaling nominal.
23:04:02 info Dev mở vịt lộn ăn mừng 🥚
23:06:18 warn Latency spike detected on /api/trung-vit endpoint
23:07:33 error 500 Internal Server Error — rau_ram_module not found
23:08:01 error PagerDuty triggered: INCIDENT #2847 — miệng còn mùi rau răm
23:09:44 warn Rollback initiated. Tay run run bấm redeploy...