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

…….

Các dịch vụ cần CNTT xử lý bài toán dữ liệu lớn, giao dịch lớn.

  • Bài toán xử lý dữ liệu lớn và các giao dịch lớn dựa vào điều gì?
  • Triển khải hệ thống lớn phụ thuộc vào kiến trúc? Hay công nghê?

    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

    Mô hình kiến trúc tổng thể

    Để 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ụ.

    Các mô hình kiến trúc triển khai hệ thống lớn

    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

    Triển khai phân tán theo vị trí

    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ị:

    Mô hình phân tán

    Truyền nhận dữ liệu đối với kiến trúc phân tán

    Truyên nhân dữ liệu sử dụng file hoặc database trung gian
    Truyên nhận dữ liệu sử dụng Message Queue hoặc Webservice

    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ế

    Các hình thức đồng bộ: Master data và Transaction data

    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

    Load Balancer

    – 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

    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 triển khai theo mô hình 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

    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.