Dùng SDK bên thứ 3 mà không lock version

Hôm qua API chạy ngon, hôm nay 404 vì SDK v2 đổi hết endpoint… ai biết đâu mà fix!

Dev deploy ngon lành, nhưng sáng hôm sau API 404 vì SDK tự update từ v1 sang v2, endpoint đổi tên, signature đổi luôn. Audit thấy package.json để ^ hoặc latest, như thả codebase vào “vòng xoáy định mệnh”.

Khi SDK tự update mà không lock version!

Thực trạng: SDK tự do bay nhảy

Thực trạng:  
  • Không lock version (^1.0.0 hoặc latest trong package.json, composer.json).  
  • CI build kéo SDK mới, đổi behavior ngầm, không ai test trước.  
  • Không có changelog review khi upgrade dependency.
Hệ quả:  
  • Lỗi runtime: API gọi sai endpoint, gây 404 hoặc 500.  
  • Debug mệt mỏi: Team mất hàng giờ tìm nguyên nhân từ SDK.  
  • Production bất ổn: Deploy không dự đoán được kết quả.

Giải pháp: Lock version, test cẩn thận

Để SDK “ngoan”:  
  • Lock version: Dùng package-lock.json, composer.lock, hoặc pip freeze để cố định version.  
  • Test khi upgrade: Chạy test suite, smoke test trước khi update SDK.  
  • Semantic versioning: Chỉ update minor/patch, tránh major version nếu không cần.

Ví dụ: Lock version trong package.json:

"dependencies": {
  "aws-sdk": "2.123.0"
}

🎯 Tóm lại: Không lock version là “mời gọi thảm họa”. Lock dependency, test trước khi upgrade, để prod không thành “trò chơi may rủi”.

Post a Comment

Mới hơn Cũ hơn