Trong thời đại công nghệ thông tin phát triển như vũ bão, việc ứng dụng các công nghệ mới vào phát triển phần mềm là vô cùng cần thiết. Nhận thức rõ được điều đó, nhóm phát triển của công ty chúng tôi không ngừng cập nhật các công nghệ mới để đưa Aktivmap trở thành phần mềm quản lý thành phố thông minh và nhà máy thông minh trên nền GIS hàng đầu hiện nay.

Một vài công nghệ chúng tôi đã thực hiện và những hiệu quả của nó đem lại cho Aktivmap có thể kể đến dưới đây:

1. Triển khai HA proxy cho các tầng ứng dụng của Aktivmap

HAProxy viết tắt của High Availability Proxy, là công cụ mã nguồn mở nổi tiếng được phát triển trên hệ điều hành Linux. Ứng dụng cho giải pháp cân bằng tải TCP/HTTP cũng như giải pháp máy chủ Proxy (Proxy Server).

HAproxy hỗ trợ theo dõi hoạt động các thông số của các server qua bảng điều khiển được gọi là HAproxy Stats. Bảng điều khiển này giúp:

  • Hiển thị các chỉ số liên quan đến tình trạng máy chủ, tỷ lệ yêu cầu trong thời gian hiện tại, tỉ lệ phản hồi.
  • Cung cấp các thông số quan trọng trên cơ sở cấu hình các phần frontend, backend, default và global trong file cấu hình haproxy.cfg.

Với HAProxy, hệ thống AktivMap:

  • Cải thiện rõ rệt được hiệu năng của hệ thống
  • Tăng độ tin cậy của hệ thống máy chủ do phân phối khối lượng công việc trên nhiều máy chủ WebApp AktivMap.

Màn hình monitor của các máy chủ khi chạy HA – proxy

2. Áp dụng kiến trúc master – slave cho tầng dữ liệu của Aktivmap

Master slave là một mô hình giao tiếp cho phép việc ghi dữ liệu được thực thi trên máy chủ master, còn việc đọc dữ liệu sẽ được gọi đến máy chủ slave, điều này làm cho hệ thống Aktivmap:

  • Phân tách rõ ràng luồng truy cập vào hệ thống.
  • Giảm tải lượng truy cập đến máy chủ master.
  • Dễ dàng mở rộng hệ thống theo chiều ngang khi dữ liệu tăng lên theo thời gian.
  • Cho phép tạo sẵn master backup thay thế máy chủ master khi máy chủ master bị shutdown.
  • Kết hợp cân bằng tải HA proxy -> phân phối đồng đều lượng truy cập, tránh những truy cập trực tiếp vào database server.

Kiến trúc master – slave

3. Triển khai Aktivmap theo kiến trúc Multi – nodes

Multi – nodes chính là 1 kiến trúc được tạo ra với mục đích đảm bảo nâng cao khả năng sẵn sàng cho những hệ thống mạng. Multi – node bao gồm những server riêng lẻ được kết nối với nhau,  những server này giao tiếp với nhau với mục đích trao đổi thông tin và giao tiếp với cả những mạng bên ngoài. Trong trường hợp có lỗi xảy ra, những dịch vụ trong cluster hoạt động tương tác với nhau để duy trì tính ổn định và độ sẵn sàng cao cho hệ thống.

Kiến trúc Multi – node

Kiến trúc 3 tầng cộng hưởng của Multi – nodes:

  • Tầng HAProxy: làm nhiệm vụ hứng mọi request vào cluster Application, có áp dụng failover cho HA proxy để tránh trường hợp sập hệ thống.
  • Tầng Application:
    • Tập hợp các node server mà Haproxy có thể forward các request tới, càng nhiều node sẽ giúp khả năng chịu tải và performance của hệ thống càng tăng lên.
    • Tính tin cậy của hệ thống cũng lên theo phương pháp này vì khi một node bị ngắt khỏi proxy, các node khác có thể chịu tải thay cho.
  • Tầng dữ liệu: xây dựng và triển khai dựa trên HAProxy nhằm đảm bảo độ bảo mật, tính sẵn sàng cao cũng như hiệu năng khi truy xuất vào/ra.

Với 3 tầng cộng hưởng của Multi – nodes sẽ giúp cho Aktivmap:

  • Tăng khả năng chịu tải của hệ thống
  • Cải thiện hiệu năng của hệ thống
  • Khắc phục tình trạng hệ thống bị ngắt đột xuất

4. Triển khai Aktivmap theo kiến trúc Docker Swarm

Docker Swarm là công cụ native Multi – node cho Docker. Cho phép ta có thể gom một số Docker host lại với nhau thành dạng cụm (cluster) và ta có xem nó như một máy chủ Docker ảo (virtual Docker host) duy nhất. Và một Swarm là một cluster của một hoặc nhiều Docker Engine đang chạy. Và Swarm mode cung cấp cho ta các tính năng để quản lý và điều phối cluster.

Kiến trúc Docker Swarm

Kiến trúc 3 tầng Docker Swarm:

  • Tầng HAProxy: làm nhiệm vụ hứng mọi request vào cluster Application, có áp dụng failover cho HA proxy để tránh trường hợp sập hệ thống.
  • Tầng Application:
    • Quản lý các service chạy trong các node (docker machine) một cách dễ dàng, đặc biệt là trong vấn đề scale services.
    • Đảm bảo 1 service hoạt động ổn định bằng cách tự động thay 1 replicas crash bằng 1 replicas mới.
    • Tự động gán IP cho mỗi service khi thay đổi, có DNS server riêng, do đó bạn có thể truy xuất thông qua DNS này.
    • Swarm tích hợp cân bằng tải với thuật toán Round-robin.
    • Các service giao tiếp với nhau thông qua giao thức bảo mật TLS.Swarm giúp update image của service một cách hoàn toàn tự động và có thể rolling back bất cứ lúc nào.
  • Tầng dữ liệu: xây dựng và triển khai dựa trên HAProxy nhằm đảm bảo độ bảo mật, tính sẵn sàng cao cũng như hiệu năng khi truy xuất vào/ra.

Lợi ích của kiến trúc Docker Swarm đối với Aktivmap:

  • Có thể triển khai hệ thống dưới dạng phân tán.
  • Các node với vai trò là Worker có thể nằm bất kỳ đâu và được quản lý bởi node có vai trò là Manager.
  • Dễ dàng scale theo chiều ngang, đảm bảo tính ổn định cho hệ thống.

Hai kiến trúc Multi – nodes và Docker Swarm chỉ khác nhau ở tầng Application, nhưng sẽ đem lại những hiệu quả khác nhau cho hệ thống. Dựa vào nhu cầu của khách hàng sẽ quyết định hệ thống Aktivmap được triển khai theo kiến trúc nào để đem lại hiệu quả cao nhất.

Biên soạn: Hằng VTT- VidaGIS

Để biết thêm thông tin về sản phẩm Aktivmap, vui lòng xem chi tiết tại đây hoặc liên hệ số điện thoại: 0243.755.8210/ email: [email protected]