Tại sao việc tiếp quản source code lại rủi ro?
Nhiều doanh nghiệp sau khi "nhận bàn giao" phần mềm từ đơn vị cũ mới phát hiện ra rằng họ không thực sự kiểm soát được hệ thống. Server vẫn đang chạy dưới tên account cá nhân của developer cũ. Database password chỉ có một mình họ biết. File .env chứa API keys không được bàn giao. Đây là những tình huống thực tế xảy ra thường xuyên.
Checklist 15 điểm bắt buộc khi tiếp quản
Nhóm A — Quyền truy cập (Access Control)
- ✅ Quyền Admin Git Repository: Đảm bảo tài khoản công ty của bạn là Owner trên Github/Gitlab. Không phải Collaborator, phải là Owner. Verify bằng cách kiểm tra có thể xóa/archive repo không.
- ✅ Quyền Admin Cloud Server: Root access hoặc IAM Administrator trên AWS/GCP/Azure. Hoặc quyền admin trên hosting (Cpanel, DirectAdmin). Đổi mật khẩu ngay sau khi nhận bàn giao.
- ✅ Quyền Admin Database: Database root user credentials. Verify bằng cách kết nối được vào DB management tool (pgAdmin, TablePlus, DBeaver).
- ✅ DNS và Domain Control: Tài khoản nhà đăng ký tên miền (Godaddy, Namecheap, Tenten...). Kiểm tra domain và nameserver đang trỏ đúng không.
- ✅ SSL Certificate: Thông tin SSL cert (Let's Encrypt auto-renew hay cert thương mại?). Kiểm tra ngày hết hạn.
Nhóm B — Cấu hình hệ thống (Configuration)
- ✅ File .env và biến môi trường: Danh sách đầy đủ tất cả environment variables. Đây là bước QUAN TRỌNG NHẤT — thiếu .env là hệ thống không chạy được trên môi trường mới.
- ✅ API Keys bên thứ 3: Tất cả API keys (payment gateway, SMS, email service, Google API...). Verify từng key còn hoạt động không và đang gắn với account nào.
- ✅ Hướng dẫn cài đặt môi trường (README): Có thể setup được môi trường dev từ đầu chỉ dựa vào README không? Test thực tế bằng cách để một developer mới setup từ đầu.
- ✅ Cron jobs và Scheduled tasks: Danh sách các tác vụ chạy tự động (backup, email, sync...). Kiểm tra đang chạy đúng schedule không.
Nhóm C — Tài liệu kỹ thuật (Documentation)
- ✅ Database Schema / ERD: Sơ đồ quan hệ database. Nếu không có, yêu cầu export từ DB tool. Thiếu cái này sẽ rất khó khi cần thêm tính năng mới.
- ✅ API Documentation: Tài liệu API (Swagger, Postman collection). Bắt buộc nếu có mobile app hoặc hệ thống bên ngoài đang gọi API của bạn.
- ✅ Kiến trúc hệ thống: Sơ đồ tổng quan (services, servers, CDN...). Có thể là file Figma, draw.io, hoặc diagram bất kỳ.
Nhóm D — Môi trường và CI/CD
- ✅ Staging Environment: Có môi trường test tách biệt với production không? Cực kỳ quan trọng để test trước khi deploy.
- ✅ Deployment Process: Quy trình deploy như thế nào? Manual hay có CI/CD pipeline (Github Actions, Gitlab CI)?
- ✅ Backup và Recovery: Database backup đang chạy không? Tần suất? Đã test restore thành công chưa? Yêu cầu xem log backup gần nhất.
Quy trình tiếp quản an toàn
Sau khi nhận đủ 15 điểm trên, thực hiện theo thứ tự này:
- Backup toàn bộ (database + source code + server config) trước khi làm bất cứ điều gì
- Đổi tất cả mật khẩu: server, database, email, third-party APIs
- Kiểm tra và rotate tất cả API keys
- Setup monitoring (Uptime Robot, Sentry) để biết ngay khi có lỗi
- Thực hiện Security Audit cơ bản (SQL injection, XSS, authentication)
- Lập tài liệu những gì còn thiếu để làm dần