Quay lại danh sách case study
Di dời Hệ thống Monolith sang Micro-Frontend cho Đội ngũ Đa Quốc Gia
Tách một ứng dụng Monolith React lớn thành các micro-app độc lập được phát triển bởi nhiều team khác nhau.
Bối cảnh
Công ty mở rộng quy mô, từ 1 team phát triển lên 5 team độc lập cùng làm việc trên một codebase Monolith React, dẫn đến xung đột code thường xuyên và thời gian build kéo dài hơn 20 phút.
Vấn đề cần xử lý
Codebase quá lớn gây nghẽn cổ chai trong quá trình phát hành, các team giẫm chân lên nhau khi sửa các module chung.
Hướng xử lý đề xuất
Áp dụng kiến trúc Micro-Frontend sử dụng Webpack 5 Module Federation. Xây dựng một Host Shell ứng dụng chính và các Remote Apps cho từng tính năng kinh doanh do các team tự quản lý và deploy độc lập.
Câu trả lời mẫu khi phỏng vấn
Chúng tôi đã chọn Module Federation vì nó cho phép chia sẻ dependency trực tiếp tại runtime mà không cần đóng gói lại toàn bộ. Tôi thiết lập một design system chung dạng npm package và quy chuẩn hóa các giao tiếp giữa các micro-app thông qua custom events.
Trade-off
Tăng độ phức tạp trong cấu hình build hệ thống, đòi hỏi CI/CD pipeline phức tạp hơn và quản lý version chặt chẽ để tránh lỗi bất đồng bộ thư viện giữa các micro-app.
Kết quả kỳ vọng
Thời gian build của từng team giảm xuống dưới 2 phút, các team có thể phát hành tính năng độc lập hàng ngày mà không phụ thuộc vào nhau.
Bài học khi trả lời phỏng vấn
Kiến trúc micro-frontend chỉ nên áp dụng khi quy mô tổ chức đủ lớn; nếu không, chi phí vận hành sẽ vượt trội hơn lợi ích mang lại.