Làm thế nào để duy chuyển toàn bộ Resource của project hiện tại sang một sever mới

Trong dự án đôi lúc bạn cần thực hiện việc di chuyển dự án sang một sever mới. Sau đây là chi tiết những bước thực hiện cũng như rủi ro gặp phải cần lưu ý.

Thành phần của dự án

  1. .NET Core API
  2. SQL Server
  3. Sendgrid
  4. Blob storage
  5. Firebase
  6. Domain & SSL
  7. Google Play console
  8. 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

  1. Database (SQL Server):
    • Backup toàn bộ DB.
    • Restore lên server mới.
    • Kiểm tra integrity và performance.
  2. 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.
  3. Blob Storage:
    • Dùng công cụ migration (AzCopy, Storage Explorer).
    • Kiểm tra quyền truy cập và URL.
  4. SendGrid:
    • Cập nhật API keys trong server mới.
    • Test gửi mail thử nghiệm.
  5. Firebase:
    • Import service accounts vào server mới.
    • Cập nhật config trong app (google-services.json / GoogleService-Info.plist).
  6. 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.
  7. 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.
  8. 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ầnBước chuẩn bịBước thực hiệnKiểm tra sau khi di chuyểnRủi ro cần lưu ýDone?
1SQL ServerBackup DB đầy đủ, kiểm tra compatibilityRestore DB lên server mới, cập nhật connection stringChạy integrity check, test query performanceMất dữ liệu nếu backup không đầy đủ
2.NET Core APIKiểm tra version, dependenciesDeploy code lên server mới, cấu hình lại connection stringTest endpoints bằng Postman/SwaggerLỗi môi trường, missing libraries
3Blob StorageXác định dung lượng, phân loại dữ liệuDùng AzCopy/Storage Explorer để migrateKiểm tra quyền truy cập, URL mappingLỗi permission, mất file
4SendGridXác nhận API keys, SPF/DKIMCập nhật API keys trên server mớiTest gửi mail thử nghiệmMail bị chặn nếu DNS chưa cập nhật
5FirebaseExport service accounts, config filesImport vào server mới, cập nhật google-services.json / plistTest push notificationsPush token invalid, mất kết nối
6Domain & SSLChuẩn bị chứng chỉ SSL mới hoặc exportCập nhật DNS trỏ về server mới, cài SSLKiểm tra HTTPS hoạt độngDNS propagation chậm, downtime
7Google Play ConsoleChuẩn bị thông tin app, tài khoản nhậnGửi App Transfer Request qua Play Console HelpKiểm tra app xuất hiện trong tài khoản mớiDoanh thu bị chia tách, API keys không chuyển
8Apple App StoreChuẩn bị thông tin app, Team IDThực hiện App Transfer trong App Store ConnectKiểm tra app trong tài khoản mới, test IAPMột số entitlements không thể chuyển
9Tổng thểLập kế hoạch downtime, thông báo người dùngThực hiện migration theo từng bướcRegression test, smoke test, theo dõi logsDowntime, lỗi kết nối, mất dữ liệu

F G+ T

tuandph

Khởi đầu với .NET từ năm 2013 đến nay. Hiện tại mình đang làm full-stack developer. Yêu thích lập trình & chia sẽ kiến thức. Thời gian rảnh thường làm những tool vui vui và viết lách kể lệ sự đời.