Kiến trúc của Bitrix24

You are here:
Thời gian đọc 6 phút

Trước khi phát triển Bitrix24, chúng tôi đã đưa ra các yêu cầu sau đối với kiến ​​trúc của Bitrix24:

  • Có các tài khoản gói Miễn phí, vì vậy chúng tôi cần giữ cho các tài khoản này có chi phí cơ bản thấp nhất có thể.
  • Bitrix24 là một ứng dụng kinh doanh. Nó có nghĩa là tải trên các máy chủ sẽ không đồng đều, nó sẽ cao hơn vào buổi trưa và thấp hơn vào ban đêm. Vì vậy, chúng ta cần có kiến ​​trúc có thể mở rộng và sử dụng chính xác nhiều tài nguyên cần thiết tại bất kỳ thời điểm nào.
  • Đồng thời, độ tin cậy là cực kỳ quan trọng đối với bất kỳ ứng dụng kinh doanh nào. Dữ liệu phải được bảo mật và có sẵn bất cứ lúc nào.
  • Chúng tôi đã bắt đầu làm việc tại ba thị trường khác nhau: Mỹ, Đức, Nga.

Những yêu cầu này đã xác định hai mục tiêu chính: hình thành một nền tảng phát triển đám mây chịu lỗi có thể mở rộng và lựa chọn nền tảng công nghệ cho cơ sở hạ tầng của dự án.

Bitrix24 được xây dựng như một cụm máy chủ web có thể hoán đổi cho nhau. Nếu lượt tải trên các máy chủ tăng lên, nhiều máy chủ hơn có thể được thêm vào một cụm ngay lập tức. Nếu bất kỳ máy chủ nào bị lỗi, khách hàng sẽ không cảm thấy điều đó vì mọi thứ vẫn tiếp tục hoạt động bằng cách sử dụng các máy chủ khác của cụm.

Hỗ trợ lưu trữ đám mây giải quyết vấn đề đồng bộ hóa nội dung tĩnh. Nhân bản tổng thể-tổng thể trong MySQL cho phép xây dựng các cụm web phân tán theo địa lý.

Kiến trúc chịu lỗi

Chúng tôi sử dụng Amazon AWS, nhưng các nền tảng khác cũng có thể được sử dụng.

Tự động chia tỷ lệ

Ứng dụng (web) được thu nhỏ theo chiều ngang (thêm máy mới), không theo chiều dọc (tăng dung lượng máy chủ).

Để làm điều đó, chúng tôi sử dụng Cân bằng tải đàn hồi + CloudWatch + Tự động điều chỉnh tỷ lệ. ELB (Cân bằng tải đàn hồi) tự động phân phối lưu lượng ứng dụng đến (HTTP và HTTPS). Tăng và giảm tải được theo dõi thông qua CloudWatch.

Khi tải tăng lên, các máy chủ mới được bật. Nếu tải giảm, các máy chủ bổ sung sẽ tự động tắt. Do đó, chúng tôi giảm chi phí chính (các máy chủ dự phòng không hoạt động nhàn rỗi).

Nội dung tĩnh

Khi khách hàng tạo Tài khoản Bitrix24 mới, một tài khoản Amazon S3 cá nhân sẽ được tạo cho mỗi Tài khoản Bitrix24 để lưu trữ dữ liệu. Do đó, dữ liệu liên quan đến mỗi Tài khoản Bitrix24 được cách ly với nhau. Ngoài ra, bản thân bộ lưu trữ S3 cũng hoàn toàn an toàn.

Dữ liệu trong Amazon S3 được sao chép đến một số điểm. Hơn nữa, tại các điểm phân bố theo địa lý (các trung tâm dữ liệu khác nhau). Mỗi thiết bị lưu trữ đều được theo dõi và nhanh chóng thay thế nếu có bất kỳ sự cố nào được đăng ký.

Khi bạn tải tệp mới lên bộ nhớ, bạn sẽ nhận được thông báo về việc tải lên thành công chỉ khi tệp được lưu thành công ở một số điểm khác nhau. Thông thường, dữ liệu được sao chép tới ba thiết bị trở lên để đảm bảo khả năng chịu lỗi, ngay cả khi hai trong số các thiết bị này bị lỗi.

Kiến trúc S3 được xây dựng để Amazon sẵn sàng cung cấp tính khả dụng ở mức hai số chín sau dấu thập phân. Và xác suất mất dữ liệu là một phần tỷ của phần trăm.

17 trung tâm dữ liệu và nhân rộng tổng thể chủ

Toàn bộ dự án được đặt tại 17 trung tâm dữ liệu khác nhau được đặt trên toàn thế giới. Dữ liệu khách hàng được lưu trữ ở những quốc gia mà luật pháp yêu cầu phải lưu trữ. Do đó, chúng tôi giải quyết hai vấn đề cùng một lúc: chúng tôi phân phối tải máy chủ (ví dụ: người dùng Đức làm việc ở một DC và người dùng Mỹ ở nơi khác) và chúng tôi bảo lưu tất cả các dịch vụ: trong trường hợp hỏng một trong các DC, chúng tôi chỉ chuyển lưu lượng truy cập khác.

Cơ sở dữ liệu trong mỗi DC là một cái chính cho một DC phụ khác, và đồng thời, nó là một nô lệ cho một DC chính khác.

Mỗi Tài khoản Bitrix24 (tất cả nhân viên đã đăng ký trong đó) tại bất kỳ thời điểm nào chỉ hoạt động với một DC và một cơ sở dữ liệu. Việc chuyển sang DC khác chỉ được thực hiện trong trường hợp có bất kỳ sự cố nào.

Cơ sở dữ liệu trong các DC khác nhau là đồng bộ nhưng độc lập với nhau. Kết nối giữa các trung tâm dữ liệu có thể bị mất trong vài giờ. Trong những trường hợp như vậy, dữ liệu được đồng bộ hóa sau khi khôi phục kết nối.

Chúng tôi cũng sử dụng bản sao tổng thể. Nếu máy chủ cơ sở dữ liệu gặp sự cố hoặc khởi động lại, các máy khách ngay lập tức được chuyển sang máy chủ khác.

Độ tin cậy và khả năng chịu lỗi

Một trong những ưu tiên hàng đầu tại Bitrix24 là tính khả dụng liên tục của dịch vụ và khả năng chịu lỗi của nó.

Nếu có sự cố xảy ra trên một hoặc một số nút web, Cân bằng tải sẽ xác định các máy bị lỗi và dựa trên các thông số được chỉ định (số lượng máy chạy bắt buộc tối thiểu), số phiên bản bắt buộc sẽ tự động được khôi phục.

Nếu kết nối giữa các trung tâm dữ liệu bị mất, mỗi trung tâm dữ liệu vẫn tiếp tục phục vụ phân khúc khách hàng của mình. Sau khi kết nối được khôi phục, dữ liệu trong cơ sở dữ liệu sẽ tự động được đồng bộ hóa.

Nếu trung tâm dữ liệu bị lỗi hoàn toàn, tất cả lưu lượng sẽ tự động được chuyển sang trung tâm dữ liệu khác.

Nếu điều này gây ra tăng tải cho các máy, CloudWatch sẽ xác định mức sử dụng CPU tăng lên và thêm số lượng máy cần thiết vào một trung tâm dữ liệu theo quy tắc Tự động chia tỷ lệ.

Đồng thời, quá trình sao chép master-master bị tạm dừng. Sau khi thực hiện các công việc cần thiết, bật lại cơ sở dữ liệu và khôi phục sao chép.

Nếu mọi thứ đều tốt, lưu lượng được phân phối giữa các trung tâm dữ liệu. Nếu tải trung bình giảm xuống dưới giá trị ngưỡng, các máy phụ đã được bật để xử lý tải tăng sẽ tự động dừng.

Đối với các dịch vụ đám mây, việc cập nhật chức năng và phần mềm hệ thống là một vấn đề lớn. Đôi khi họ buộc phải tạm thời tắt dịch vụ, cảnh báo người dùng, tiến hành công việc vào ban đêm. Kiến trúc của chúng tôi cho phép chúng tôi làm điều đó để người dùng thậm chí không nhận thấy nó.

Công nghệ WebRTC: cuộc gọi, cuộc gọi video, điện thoại

Các cuộc gọi điện video trong Bitrix24 là riêng tư. Các cuộc trò chuyện video đáng tin cậy trong công ty dựa trên công nghệ WebRTC. Kết nối được mã hóa, các cuộc gọi được thực hiện giữa những người dùng như ngang hàng, quá trình này gần như minh bạch và được tổ chức “bên trong” trình duyệt.

KÝ HIỆU

Báo hiệu thực hiện ba tác vụ đơn giản:

  1. Cấu hình kết nối của hai trình duyệt (luồng âm thanh / video, codec, địa chỉ, cổng ở định dạng SDP).
  2. Trao đổi mật khẩu để thiết lập kết nối được mã hóa giữa các trình duyệt.
  3. Bắt đầu hành động – gọi ai đó (kết nối luồng của ứng dụng khách A với luồng của ứng dụng khách B trên các lệnh gọi lại trong js), kết thúc cuộc gọi, v.v.

Các trình duyệt kết nối với nhau bằng Signaling, cho phép bạn thực hiện cuộc gọi điện video.

Gọi dễ dàng khi cả hai người dùng trong cùng một mạng nội bộ. Nhưng khi người dùng ở trong các mạng khác nhau và đã định cấu hình tường lửa, các trình duyệt không thể thiết lập kết nối nếu không có sự trợ giúp:

  • Để vượt qua tường lửa của công ty, người dùng truy cập vào máy chủ trung tâm bằng giao thức STUN / TURN.
  • Nếu không thể vượt qua tường lửa, các luồng phương tiện sẽ đi qua máy chủ của bên thứ ba, không phải ngang hàng giữa các trình duyệt (ở chế độ “chuyển tiếp”).

Cuộc gọi điện video nhóm

Khi cuộc gọi điện video nhóm được thực hiện, mỗi trình duyệt sẽ giữ luồng video của từng người tham gia bằng cách sử dụng WebRTC.

WebRTC và điện thoại

Bitrix24 tích hợp với các “cổng” để thực hiện cuộc gọi đến các số điện thoại thông thường từ / đến công ty.

Trang tổng hợp

Bitrix24 sử dụng một công nghệ độc đáo để nâng cao hiệu suất dịch vụ nhằm hợp nhất việc tải dữ liệu tĩnh với tốc độ cao và chuẩn bị nền cho dữ liệu động.

Các trang được chia thành hai phần: tĩnh và động. Phần tĩnh được lưu vào bộ nhớ đệm và hiển thị ngay lập tức. Phần động được tải bằng xử lý nền và được lưu vào bộ nhớ đệm trong trình duyệt.

API REST

API Bitrix24 mở cho những gì:

  • CRM
  • Nhóm mạng xã hội (nhóm làm việc, dự án)
  • Lưu trữ dữ liệu (khối thông tin)
  • Thông báo và Luồng hoạt động
  • Nhiệm vụ
  • Người dùng và Phòng ban
  • Lịch
  • Điện thoại
  • Bitrix24.Sites
  • Trò chuyện Bots và kênh mở
  • Quy trình làm việc
  • vân vân.
Was this article helpful?
Dislike 0
Views: 69