~/VibeHandbook
PDF miễn phí

Chương 16 · 05

Môi Trường Dàn Dựng (Staging) Và Khôi Phục (Rollback)

Hai thói quen phân biệt một lần ra mắt phục hồi nhẹ nhàng với một lần biến thành cơn hoảng loạn nửa đêm: thử nghiệm các thay đổi ở đâu đó an toàn trước khi chúng chạm đến người dùng thật, và có khả năng hoàn tác một lần triển khai tồi ngay lập tức.

Một môi trường dàn dựng (staging environment) đơn giản là một bản sao thứ hai của ứng dụng của bạn — cùng code, riêng, cơ sở dữ liệu riêng (hoặc dùng-rồi-bỏ) — nơi bạn thử nghiệm mọi thứ trước khi đưa vào môi trường thực. Hầu hết các nơi lưu trữ khiến việc này gần như miễn phí: mỗi tự động có URL xem trước (preview URL) riêng, để bạn có thể bấm thử một thay đổi và chia sẻ nó với ai đó trước khi hợp nhất (merge). Hãy dùng nó đặc biệt cho bất cứ điều gì bạn không thể dễ dàng đảo ngược, như một cuộc di trú cơ sở dữ liệu ( migration).

Hãy hình dung ba môi trường như một cái thang mà một thay đổi phải leo lên, với rollback là sợi dây thả môi trường thực tế thẳng về bậc thang tốt gần nhất trước đó:

   dev  ──▶  staging / preview  ──▶  production
 (laptop)    (PR preview URL)        (real users)
   try         click through            live
 anything      share, verify        ┌──────────────┐
                                     │  deploy #42  │ ◀── current (broken)
                                     ├──────────────┤
                              ROLLBACK│  deploy #41  │ ◀── last known good
                                  │   ├──────────────┤
                                  └──▶│  deploy #40  │
                                     └──────────────┘
                          one command / one click = instant undo

Một rollback là nút hoàn tác của bạn cho toàn bộ ứng dụng. Vì các nền tảng này giữ lại mọi lần triển khai trước đó, việc quay lại phiên bản tốt gần nhất thường chỉ là một lệnh hoặc một cú bấm trên bảng điều khiển:

# Cloudflare Pages: redeploy a known-good build
wrangler pages deployment list
wrangler pages deployment rollback <DEPLOYMENT_ID>

# Vercel: promote a previous deployment back to production
vercel rollback <DEPLOYMENT_URL>

Hãy biết lệnh này trước khi bạn cần đến nó, không phải trong lúc sự cố xảy ra. Toàn bộ ý nghĩa của tốc độ "vibe-coded" là việc phát hành rẻ — nhưng phát hành rẻ chỉ cảm thấy an toàn khi việc hủy-phát-hành cũng rẻ như vậy.

Muốn bản ngoại tuyến?

Tải trọn cuốn sách dưới dạng PDF hoặc EPUB — miễn phí.