Thành phần của dự án
- .NET Core API
- SQL Server
- Sendgrid
- Blob storage
- Firebase
- Domain & SSL
- Google Play console
- Apple App Store
1. Chuẩn bị trước khi di chuyển
- Đánh giá hạ tầng hiện tại:
- .NET Core API: kiểm tra version, dependencies, cấu hình môi trường.
- SQL Server: backup đầy đủ, kiểm tra compatibility với server mới.
- SendGrid: xác nhận API keys, domain authentication (SPF/DKIM).
- Blob Storage: xác định dung lượng, phân loại dữ liệu cần migrate.
- Firebase: kiểm tra project settings, service accounts, push notification keys.
- Domain & SSL: chuẩn bị chứng chỉ SSL mới hoặc chuyển chứng chỉ hiện tại.
- Kiểm tra store accounts:
- Google Play Console: chuẩn bị thông tin để gửi request transfer app.
- Apple App Store: chuẩn bị thông tin để thực hiện App Transfer trong App Store Connect.
- Lập kế hoạch downtime: thông báo cho người dùng nếu cần bảo trì.
2. Quy trình di chuyển
- Database (SQL Server):
- Backup toàn bộ DB.
- Restore lên server mới.
- Kiểm tra integrity và performance.
- API (.NET Core):
- Deploy code lên server mới.
- Cấu hình connection string trỏ về DB mới.
- Test endpoints bằng Postman/Swagger.
- Blob Storage:
- Dùng công cụ migration (AzCopy, Storage Explorer).
- Kiểm tra quyền truy cập và URL.
- SendGrid:
- Cập nhật API keys trong server mới.
- Test gửi mail thử nghiệm.
- Firebase:
- Import service accounts vào server mới.
- Cập nhật config trong app (google-services.json / GoogleService-Info.plist).
- Domain & SSL:
- Cập nhật DNS trỏ về server mới.
- Cài đặt SSL certificate.
- Kiểm tra HTTPS hoạt động bình thường.
- Google Play Console & Apple App Store:
- Thực hiện App Transfer theo quy trình của từng store.
- Kiểm tra lại In-App Purchases, Push Notifications, và các API liên kết.
- Kiểm thử toàn diện:
- Regression test trên staging.
- Smoke test trên production.
- Theo dõi logs và metrics sau khi go-live.
3. Rủi ro cần lưu ý
- Downtime: nếu DNS propagation hoặc DB restore chậm.
- Mất dữ liệu: nếu backup không đầy đủ hoặc không kiểm tra integrity.
- API keys & secrets: có thể bị quên cập nhật, gây lỗi dịch vụ (SendGrid, Firebase).
- SSL/DNS propagation: có thể mất vài giờ, gây gián đoạn truy cập.
- Store transfer:
- Một số entitlements (iCloud, Game Center) không thể chuyển trên iOS.
- Doanh thu và phí dịch vụ có thể bị chia tách giữa hai tài khoản trên Google Play.
- Người dùng cuối: nếu app không được update đúng cách, có thể mất kết nối hoặc không nhận push notifications.
4. Check list tham khảo
Bên dưới là check list tham khảo cho bạn. Cứ thoải mái dùng nhé
| # | Thành phần | Bước chuẩn bị | Bước thực hiện | Kiểm tra sau khi di chuyển | Rủi ro cần lưu ý | Done? |
|---|---|---|---|---|---|---|
| 1 | SQL Server | Backup DB đầy đủ, kiểm tra compatibility | Restore DB lên server mới, cập nhật connection string | Chạy integrity check, test query performance | Mất dữ liệu nếu backup không đầy đủ | |
| 2 | .NET Core API | Kiểm tra version, dependencies | Deploy code lên server mới, cấu hình lại connection string | Test endpoints bằng Postman/Swagger | Lỗi môi trường, missing libraries | |
| 3 | Blob Storage | Xác định dung lượng, phân loại dữ liệu | Dùng AzCopy/Storage Explorer để migrate | Kiểm tra quyền truy cập, URL mapping | Lỗi permission, mất file | |
| 4 | SendGrid | Xác nhận API keys, SPF/DKIM | Cập nhật API keys trên server mới | Test gửi mail thử nghiệm | Mail bị chặn nếu DNS chưa cập nhật | |
| 5 | Firebase | Export service accounts, config files | Import vào server mới, cập nhật google-services.json / plist | Test push notifications | Push token invalid, mất kết nối | |
| 6 | Domain & SSL | Chuẩn bị chứng chỉ SSL mới hoặc export | Cập nhật DNS trỏ về server mới, cài SSL | Kiểm tra HTTPS hoạt động | DNS propagation chậm, downtime | |
| 7 | Google Play Console | Chuẩn bị thông tin app, tài khoản nhận | Gửi App Transfer Request qua Play Console Help | Kiểm tra app xuất hiện trong tài khoản mới | Doanh thu bị chia tách, API keys không chuyển | |
| 8 | Apple App Store | Chuẩn bị thông tin app, Team ID | Thực hiện App Transfer trong App Store Connect | Kiểm tra app trong tài khoản mới, test IAP | Một số entitlements không thể chuyển | |
| 9 | Tổng thể | Lập kế hoạch downtime, thông báo người dùng | Thực hiện migration theo từng bước | Regression test, smoke test, theo dõi logs | Downtime, lỗi kết nối, mất dữ liệu |