[Vietnamese] Phương pháp cập nhật (update) phần mềm hiệu quả

Có bao giờ các bạn tự hỏi các hãng lớn cập nhật phần mềm của họ thế nào? Chúng ta dùng dạo qua dăm ba câu hỏi để có chút gợi ý trả lời cho câu hỏi trên.

– Tại sao việc cập nhật cho phần mềm chạy diện rộng lại là vấn đề?
Một trong các vấn đề cần xử lý trong các phần mềm chạy diện rộng là vấn đề cập nhật phần mềm hoặc các file data từ server về client. Giả dụ chúng ta có khoảng một triệu client trên toàn bộ hệ thống cần cập nhật phiên bản sửa lỗi mới nhất (hoặc file data có sửa đổi) thì làm thế nào cho hiệu quả. Nếu như cách thông thường thì ta download toàn bộ file cần cập nhật từ server về và thay thế file local tương ứng. Việc này thì đơn giản và thông dụng nhưng không hiệu quả nếu chúng ta có rất nhiều client cần cập nhật hoặc file quá lớn mà chỉ thay đổi phần nhỏ trong đó.  Việc không hiệu quả ở đây dễ thấy nhất là rất tốn băng thông và tài nguyên server, việc cập nhật cũng diễn ra chậm hơn làm ảnh hưởng đến trải nghiệm người dùng. Vậy có phương pháp nào để chúng ta cập nhật phần mềm hiệu quả? Chúng ta dùng xem xem liệu có cách nào hiệu quả cho vấn đề này.

– Ý tưởng nào đơn giản để có thể thực hiện?
Như ta đã biết không phải lúc nào cập nhật chúng ta cũng thay đổi toàn bộ source code của ứng dụng (hoặc file data) với trường hợp của file thực thi thì khi chúng ta sửa một phần source code thì khi biên dịch trình biện dịch (compiler) chỉ thay đổi ở phần code mới các phần code khác dù có dịch lại (cùng trình biên dịch) thì vẫn y như cũ do đó ta có thể dùng cách băm file binary ra thành nhiều phần để tính toán phần thay đổi hoặc bổ xung. Với file data, khi ta chỉ sửa hoặc bổ xung phần nhỏ cho file data và cũng có thể áp dụng tương tự như file thực thi.

– Ý tưởng cụ thể hơn ta có thể học hỏi?
Đơn giản nhất là ta hình dung theo cách làm của các chương trình quản lý source code – source code control (RCS, SVN, ClearCase, Git,..). Các ứng dụng này cho ta cái nhìn rất rõ về cách quản lý các phiên bản/thay đổi của source code và ta có thể học hỏi ý tưởng đó để triển khai.

– Nhưng có cách nào dễ dàng hơn không?
Việc phải tự nghiên cứu và làm từ đầu thì có quá nhiều việc nên xem ra khó khả thi và tốn kém. May mắn thay chúng ta có thể học hỏi và sử dụng cách của các hãng đã làm và ở đây có cách phổ biến nhất mà nhiều hãng dùng đó là Delta update (theo như tôi biết thì các hãng Microsoft, Google, Redhat đã từng/ đang dùng). Hiện Google dùng Courgette cho việc cập nhật Chrome Browser các bạn có thể tìm hiểu và áp dụng cho hệ thống của chúng ta.

(Vì lý do bận nên tôi chỉ có thể viết bài mang tính giới thiệu nên các bạn thông cảm, hi vọng tương lai tôi có thể bổ xung thêm thông tin cho bài viết).

Posted in AV

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.