Series Chinh phục Vercel | Bài 5: Phối hợp "Tam giác vàng" (Bitbucket + Vault + Vercel)
Tại sao phải làm series 5 bài này?
- Bitbucket: Nơi chứa bộ não (Source Code).
- Vault: Nơi cất giữ chìa khóa vạn năng (Secrets).
- Vercel: Nơi thực thi và phục vụ người dùng (Production/Edge).
Khi kết hợp chúng lại, bạn có một hệ thống Zero-Trust: Dù ai đó chiếm được tài khoản Bitbucket, họ cũng không lấy được mật khẩu Database vì mật khẩu đó nằm ở Vault. Dù họ hack được server Vercel, họ cũng không có quyền truy cập vào Vault vì thiếu AppRole ID.
1. Bản đồ kiến trúc vận hành (The Flow)
Khi bạn thực hiện lệnh git push lên nhánh main của dự án trên Bitbucket, đây là những gì diễn ra:
- Bitbucket CI (Pipelines): Phát hiện sự thay đổi, chạy Unit Test.
- Vault Authentication: Bitbucket sử dụng AppRole (với role_id và secret_id được lưu trong Bitbucket Variables) để đăng nhập vào Vault.
- Secret Injection: Vault cấp một Token ngắn hạn cho Bitbucket Pipeline.
- Vercel Deployment: Bitbucket dùng token đó gọi lên Vault lấy DATABASE_URL hoặc các API Keys cần thiết, sau đó inject chúng vào Vercel Environment Variables qua Vercel API.
- Final Deployment: Vercel nhận đủ config, build dự án và "lên sóng".
2. Cách thiết lập "Cầu nối" (Bridge)
Để làm được điều này, trong file bitbucket-pipelines.yml của bạn, bạn cần thêm một bước cuối cùng trước khi Deploy lên Vercel:
# Đoạn mã trong bitbucket-pipelines.yml
- step:
name: "Cập nhật Config lên Vercel"
script:
# Bước 1: Login vào Vault lấy secrets
- export VAULT_TOKEN=$(curl -s -X POST $VAULT_ADDR/v1/auth/approle/login -d ... | jq -r '.auth.client_token')
- export DB_URL=$(curl -s -H "X-Vault-Token: $VAULT_TOKEN" $VAULT_ADDR/v1/secret/data/afc/db | jq -r '.data.data.url')
# Bước 2: Cập nhật biến vào Vercel (dùng Vercel CLI)
- npm install -g vercel
- vercel env add DATABASE_URL production < <(echo $DB_URL)
- vercel deploy --prod
3. Lợi ích dành riêng cho Kỹ sư AFC/Metro
- Không bao giờ lộ mật khẩu: File .env hoàn toàn không tồn tại trong repository.
- Audit Logging: Bạn biết chính xác phiên bản code nào đã được deploy, vào lúc nào, và nó đã lấy những quyền hạn nào từ Vault.
- Khả năng rollback thần tốc: Nếu hệ thống Dashboard bị lỗi, bạn chỉ cần quay lại commit cũ trên Bitbucket, nhấn re-run Pipeline, toàn bộ hệ thống sẽ trở về trạng thái an toàn ngay lập tức.
4. Lời kết cho Series
Bạn đã đi một chặng đường rất dài:
- Từ việc quản lý code bằng Bitbucket.
- Đến việc bảo mật tài khoản bằng Vault.
- Và cuối cùng là triển khai lên Cloud siêu tốc bằng Vercel.
Với tư cách là một kỹ sư hệ thống làm trong lĩnh vực hạ tầng thông minh (Metro/AFC), bộ kỹ năng này biến bạn từ một người "chỉ viết code" thành một System Architect – người không chỉ tạo ra phần mềm mà còn tạo ra quy trình để phần mềm đó sống an toàn và bền vững trên Internet.
Series này đã khép lại một cách hoàn hảo. Bạn đã sẵn sàng để áp dụng "Tam giác vàng" này vào dự án AFC tại công ty chưa?
All Rights Reserved