MÔ HÌNH KIẾN TRÚC TRIỂN KHAI HỆ THỐNG LỚN
I. Tổng quan
Nhu cầu phân tích, xử lý dữ liệu lớn và các giao dịch lớn có từ rất lâu như:
– Bán lẻ
– Dịch vụ tài chính
– Viễn thông
– Ngân hàng
…….
Nhu cầu ứng dụng CNTT đối với bài toán xử lý dữ liệu lớn có từ rất lâu và với 1 nền tảng về công nghệ và hạ tầng không tốt như hiện nay thì giải pháp thế nào?
Phương pháp luận “Kiến trúc tổng thể” hay EA
Để tìm hiểu về kiến trúc tổng thể mời các bạn đọc bài https://corp360.vn/kien-truc-tong-the-ea.html
Đối với sự phát triển của công nghệ thì để giải bài toán với các thông tiêu chí: Số lượng giao dịch lớn, lớn về số lượng bảng ghi, lớn về dung lương và lớn về độ phức tạp nghiệp vụ.
Trươc những năm 1995 với hạn chế về mặt công nghệ và hạ tầng, để triển khai các hệ thống lớn thì chủ yếu sử dụng mô hình phân tán.
Những năm 2000 khi Internet phát triển mạnh, và công nghệ phát triển, để triển khai các hệ thống lớn thì chủ yếu sử dụng mô hình HA Cluster.
Sau những năm 2010 với sự phát triên mạnh mẽ về hạ tầng đặc biệt Cloud, thì nhu cầu bài toán xử lý các nghiệp vụ lớn và phức tạp, thì để triển khai các hệ thống lớn chủ yếu sử dụng mô hình Microservice
II. Triển khai theo mô hình phân tán
Mô hình triển khai này là mô hình phân tán dữ liệu, mỗi địa điểm có hệ thống Server và Data base riêng biệt, chúng được đồng bộ về Data base trung tâm hoặc ngược lại.
Mô hình triển khai phân tán dữ liệu này được áp dụng đối với mô hình triển khai hệ thống lớn rất nhiều trước đây khi công nghệ chưa cho phép
Mô hình này vận hành rất phức tạp vì phải luôn đảm bảo các Server và Data base phân tán được hoạt động, ngày cả việc đồng bô dữ liệu về trung tâm và ngược lại cũng rất phức tạp.
Ngày nay mô hình này vẫn còn được áp dụng với các bài toán xử lý lớn và cần ổn định cao.
Ví dụ: Phần mềm siêu thị:
Truyền nhận dữ liệu đối với kiến trúc phân tán
Các hình thức đồng bộ: Master data và Transaction data chia theo tùy từng bài toán thực tế
Lợi ích của mô hình phân tán
Khó khăn của mô hình phân tán
III. Mô hình High Availability & Clustering
Ví dụ các ứng dung chính phủ điện tử
Load balancer – Cân bằng tải
– Phân phối các client requests hoặc network load một cách hiệu quả trên nhiều servers.
– Đảm bảo tính khả dụng và độ tin cậy cao bằng cách chỉ gửi các yêu cầu đến các máy chủ trực tuyến.
– Thêm vào hoặc loại bớt các servers theo yêu cầu một cách linh hoạt và dễ dàng.
Để tìm hiểu thêm về cân bằng tải bạn đọc thêm tại https://www.nginx.com/resources/glossary/load-balancing/ hoặc https://www.f5.com/services/resources/glossary/load-balancer
Các lưu ý trong mô hình HA
Cluster Database
Cluster database với mục đích phân tải cho Database với mục đích xử lý nhiều request, nhưng khác với Load balancer đó là Cluster Database thường có 1 database control để phân tải đển các database còn lại.
Trong cluster database các bạn lưu ý việc sau: Cluster database chỉ phân tải câu lệnh select tới các database node (Đối với Database thì việc select tốn nhiều performance nhất), các câu lệnh insert,delete, update thì 100% các database node đều thực thi như nhau, hay bạn có thể hiểu đối với các câu lệnh ngoài câu select thì database control đều gủi đến database node để thực thi.
Bạn phải thương xuyên quản trị database control vì tại database này lưu hết log và các lỗi liên quan tới các database node để đảm bảo dữ liệu giữa các node được đồng bộ.
Để tìm hiểu về cluster bạn có thể tìm hiểu tại https://www.mysql.com/products/cluster/ hoặc https://www.techopedia.com/definition/17/database-clustering
Triển khai theo mô hình phân tải đang tương đối phổ biến, giúp việc vân hành và bảo trì được thuận lợi hơn. Tăng khả năng nâng cấp hệ thống 1 cách nhanh tróng.
Lợi ích của mô hình HA Clustering
Khó khăn của mô hình HA Clustering
IV. Mô hình kiến trúc Microservices
Mô hình kiến trúc microservices là mô hình triển khai hệ thống lớn và nhiều người dùng
Theo kiến trúc trên, một ứng dụng được chia thành một bộ các microservice, mỗi microservice thực chất là một service có thể được triển khai và chạy độc lập. Chúng tách biệt về mặt mã nguồn, về hoạt động và dữ liệu. Mỗi microservice có nơi chứa dữ liệu của riêng của nó và chỉ có nó có quyền truy cập vào vùng dữ liệu này. Do các microservice là độc lập, chúng không giao tiếp trực tiếp với nhau mà qua một thành phần trung gian được gọi là API gateway. Có thể thấy vai trò của API gateway rất quan trọng trong mô hình microservice. Nó là điểm đến và đi của mọi yêu cầu hay phản hồi.
Để tìm hiểu thêm về microservices bạn có thể tìm hiểu thêm tại https://microservices.io/ https://spring.io/microservices
Đối với hệ thống số lương người dùng rất lớn như các hệ thống thương mại điện tử thì hiện tại thường phát triển theo mô hình microservices.
API Gateway
Ví dụ: Phần mềm Smart Order 360
Ví dụ: Phần mềm HR BRG
Phần mềm hay phổ biến ở Việt Nam
Lợi ích của mô hình Microservice
Khó khăn của mô hình Microservice
Tổng kết
Các mô hình triển khai này vẫn tồn tại và bổ sung cho nhau chứ không hề triệt tiêu nhau.
Tùy theo bài toán thực tế của doanh nghiệp và chiến lược kinh doanh của doanh nghiệp, hay chiến lược dữ liệu của doanh nghiệp, mà đối với mỗi bài toán có thể lựa chọn mô hình triển khai phù hợp.