Bỏ qua menu, vào nội dung chính

Case study: Doanh nghiệp 200 người migration ERP cũ sang mới - 18 tháng

Doanh nghiệp sản xuất 200 người dùng ERP custom 10 năm tuổi, debt tech nặng, performance kém. Migrate sang ERP mới (custom Next.js + NestJS) trong 18 tháng. Bài học: data migration là phần khó nhất, không phải build.

8 phút đọc

Bối cảnh + tại sao migrate

Cty M dùng ERP custom build 2015 (PHP 5.6 + MySQL). 10 năm sau:

  • PHP 5.6 end-of-life 2018, không patch security.
  • Performance load 8-15s - slow.
  • Crash 2-3 lần/tháng, không recover graceful.
  • Vendor build cũ đã dissolution - không support được.
  • Không tích hợp được với hệ thống mới (e-commerce, accounting cloud).

Decision: rebuild thay vì refactor

Đánh giá: refactor PHP 5.6 → PHP 8 + Symfony cost 1.5 tỷ + 12 tháng nhưng giữ data model cũ (đã không tốt). Rebuild Next.js + NestJS cost 2.2 tỷ + 18 tháng nhưng modernize toàn bộ. Quyết: rebuild - debt cũ quá nặng.

Phase 1: Build mới (tháng 1-12)

Build parallel song song với ERP cũ chạy:

  • Tháng 1-3: design DB mới + architecture. Audit ERP cũ chi tiết.
  • Tháng 4-9: build 8 module chính. Mỗi module 2 sprint.
  • Tháng 10-12: tích hợp + UAT internal team.

Phase 2: Data migration (tháng 13-15) - khó nhất

10 năm data: ~50GB, 200 table cũ, mapping sang 80 table mới.

4 lần migration test fail trước thành công:

  • Lần 1: data corruption do encoding khác (latin1 vs utf8mb4) - phát hiện 1000+ tên KH bị garbled.
  • Lần 2: relation lost do foreign key cũ inconsistent - mất 5% đơn hàng.
  • Lần 3: timezone mismatch - ngày tháng lệch 7 giờ.
  • Lần 4: performance - migration mất 36 giờ, không acceptable cho downtime window.
  • Lần 5: thành công sau optimize + dry-run 4 lần.

Phase 3: Parallel run + cutover (tháng 16-18)

Cả 2 ERP chạy song song 3 tháng:

  • Tháng 16: 20% transactions trên ERP mới + 80% cũ. Reconcile hằng ngày.
  • Tháng 17: 60% trên mới + 40% cũ.
  • Tháng 18: 100% mới, ERP cũ chỉ read-only archive.

Chi phí + ROI

  • Build: 1.4 tỷ.
  • Data migration: 500tr (4 lần fail tốn nhiều).
  • Parallel run + training: 300tr.
  • Total: 2.2 tỷ.
  • Saving: performance gain → productivity +12% (đo lường), downtime giảm từ 40h/năm xuống 6h, sai sót giảm 70%.
  • ROI: payback 22 tháng.

Bài học

  • Migration là risk cao nhất, không phải build.
  • Plan dry-run migration 4-6 lần trước go-live.
  • Parallel run 2-3 tháng - không cutover overnight.
  • Champion 1 person knows old + new ERP rất quan trọng.
  • Document data mapping kỹ - auditor cần khi sai số xảy ra.

Lưu ý đặc thù VN: migration data sang ERP mới phải đảm bảo character set UTF-8 cho dấu tiếng Việt (latin1 vs utf8mb4 là nguồn lỗi hàng đầu), timezone GMT+7 cho mọi timestamp, format số ngày tháng dd/mm/yyyy.

Doanh nghiệp đang plan migrate ERP cũ? Alodev tham vấn miễn phí 60 phút. /lien-he

Nhận bài mới

Để lại email để nhận bài mới của series Case study thực tế, hoặc theo dõi bằng RSS.

RSS Case study thực tế

Email chỉ dùng để gửi bài mới, xem Chính sách bảo mật.

Trao đổi về dự án

Cần tư vấn?