Cheatsheet: Ra mắt an toàn cho app vibe-code: staging, smoke test và rollback
{colspan:2|badge:beginner|green}
Nguyên tắc xuyên suốt: trước khi bấm deploy, luôn trả lời được câu hỏi "nếu bước này hỏng thì rollback thế nào?". Không trả lời được thì chưa deploy.
Module 1: Môi trường và cấu hình an toàn
1.1 Tách môi trường dev, staging, production
| Môi trường | Mục đích | Dữ liệu | Ai được deploy | Ai được xem log |
|---|---|---|---|---|
dev |
Viết code, thử nhanh, được phép hỏng | Dữ liệu giả (seed) | Mọi dev | Cả team |
staging |
Giống production để test trước khi lên thật | Dữ liệu giả hoặc ẩn danh | Dev / CI | Cả team |
production |
Người dùng thật | Dữ liệu thật, nhạy cảm | Chỉ qua quy trình release | Chỉ người có quyền |
Quy tắc cứng:
- Staging phải giống production về cấu hình (cùng phiên bản runtime, cùng loại DB engine), chỉ khác quy mô và secrets.
- Không bao giờ trỏ staging vào DB production. Một lệnh
DELETEở staging có thể xoá dữ liệu thật. - Mỗi môi trường có biến môi trường riêng, không dùng chung file
.env. - Tên miền riêng cho từng môi trường:
app.example.com,staging.example.com,dev.example.com.
Cấu trúc file env gợi ý:
project/
.env.example # mẫu, commit vào Git, KHÔNG có giá trị thật
.env.local # dev, KHÔNG commit
.env.staging # chỉ trên CI/hosting, KHÔNG commit
.env.production # chỉ trên hosting, KHÔNG commit
.gitignore # phải có dòng .env*
Kiểm tra nhanh .gitignore:
git check-ignore -v .env.local
Nếu lệnh trên không in ra gì, file đang bị track. Sửa ngay.
1.2 Quản lý biến môi trường và secrets
Phân loại rõ:
| Loại | Ví dụ | Được commit? | Được log ra? |
|---|---|---|---|
| Cấu hình công khai | NEXT_PUBLIC_API_URL, PORT |
Có (qua .env.example) |
Được |
| Cấu hình nội bộ | LOG_LEVEL, FEATURE_X |
Không | Được |
| Secret | DATABASE_URL, STRIPE_SECRET_KEY, API key |
Không bao giờ | Không bao giờ |
Quy tắc secrets:
This cheatsheet is premium content. Sign in and purchase the course to view the full content. Sign in