top_fr
Se connecter

Bitrix24Help

Architecture de Bitrix24

Avant de développer Bitrix24, nous avons défini les exigences suivantes pour l'architecture de Bitrix24 :

  • Il existe des comptes de plan gratuit, nous devons donc maintenir le coût principal de ces comptes aussi bas que possible.

  • Bitrix24 est une application métier. Cela signifie que la charge sur les serveurs sera inégale, elle sera plus élevée à midi et plus basse la nuit. Nous devons donc disposer d'une architecture évolutive et utiliser exactement autant de ressources que nécessaire à tout moment.

  • Dans le même temps, la fiabilité est extrêmement importante pour toute application professionnelle. Les données doivent être sécurisées et disponibles à tout moment.

  • Nous avons commencé à travailler sur trois marchés différents : États-Unis, Allemagne et Russie.

Ces exigences ont défini deux objectifs principaux : former une plate-forme de développement cloud évolutive et tolérante aux pannes et sélectionner une plate-forme technologique pour l'infrastructure du projet.

Bitrix24 est construit comme un cluster de serveurs web interchangeables. Si la charge sur les serveurs augmente, d'autres serveurs peuvent être ajoutés à un cluster en un rien de temps. Si un serveur échoue, les clients ne le sentiront pas, car tout continue à fonctionner en utilisant d'autres serveurs du cluster.

La prise en charge du stockage dans le cloud résout le problème de la synchronisation de contenu statique. La réplication Maître-Maître MySQL permet de créer des clusters web répartis géographiquement.

Architecture tolérante aux pannes

Nous utilisons Amazon AWS, mais d'autres plates-formes peuvent également être utilisées.

Mise à l'échelle automatique

L'application (web) est mise à l'échelle horizontalement (ajout de nouvelles machines) et non verticalement (augmentation de la capacité du serveur).

Pour cela faire, nous utilisons Elastic Load Balancing + CloudWatch + Auto Scaling. ELB (Elastic Load Balancing) distribue automatiquement le trafic applicatif entrant (HTTP et HTTPS). L'augmentation et la diminution de la charge sont suivies via CloudWatch.

Lorsque la charge augmente, de nouveaux serveurs sont activés. Si la charge diminue, les serveurs supplémentaires sont automatiquement désactivés. Ainsi, nous réduisons le coût principal (les serveurs redondants ne fonctionnent pas en veille).

Contenu statique

Lorsqu'un client crée un nouveau compte Bitrix24, un compte Amazon S3 personnel est créé pour chaque compte Bitrix24 afin de stocker les données. Ainsi, les données liées à chaque compte Bitrix24 sont isolées les unes des autres. De plus, le stockage S3 lui-même est complètement sécurisé.

Les données dans Amazon S3 sont répliquées vers plusieurs points. De plus, dans des points répartis géographiquement (différents centres de données). Chacun des périphériques de stockage est surveillé et rapidement remplacé si un dysfonctionnement est enregistré.

Lorsque vous téléchargez de nouveaux fichiers sur le stockage, vous ne recevrez pas une notification concernant un téléchargement réussi que lorsque le fichier est enregistré avec succès à plusieurs endroits différents. En règle générale, les données sont répliquées sur trois périphériques ou plus pour garantir la tolérance aux pannes, même si deux de ces périphériques sont en panne.

L'architecture S3 est conçue pour qu'Amazon soit prêt à fournir une disponibilité au niveau de deux neuf après la virgule décimale. Et la probabilité de perte de données est d'un milliardième de pour cent.

15 centres de données et réplication Maître-Maître

L'ensemble du projet est situé dans 15 centres de données différents situés partout dans le monde. Les données des clients sont stockées dans les pays dans lesquels elles doivent être conservées par la loi. Ainsi, nous résolvons deux problèmes à la fois : nous distribuons la charge des serveurs (par exemple, les utilisateurs allemands travaillent dans un centre de données, et les utilisateurs américains dans un autre), et nous réservons tous les services : en cas de panne de l'un des centres de données, nous commutons simplement le trafic vers un autre.

La base de données de chaque centre de données est principale à un autre centre de données subordonné, et en même temps elle est subordonnée à un autre centre de données principal.

Chaque compte Bitrix24 (tous les employés qui y sont enregistrés) à un moment donné fonctionne avec un seul centre de données et une base de données. Le passage à un autre centre n'est effectué qu'en cas de panne.

Les bases de données de différents contrôleurs de domaine sont synchrones mais indépendantes les unes des autres. La connectivité entre les centres de données peut être perdue pendant plusieurs heures. Dans de tels cas, les données sont synchronisées après la récupération de la connectivité.

Nous utilisons également la réplication Maître-Maître. Si le serveur de base de données tombe en panne ou redémarre, les clients sont immédiatement basculés vers un autre serveur.

Fiabilité et tolérance aux pannes

L'une des principales priorités de Bitrix24 est la disponibilité constante du service et sa tolérance aux pannes.

En cas d'accident sur un ou plusieurs nœuds web, Load Balancing (Équilibrage de charge) détermine les machines défaillantes et, en fonction des paramètres spécifiés (le nombre minimum requis de machines en cours d'exécution), le nombre requis d'instances est automatiquement restauré.

Si la connectivité entre les centres de données est perdue, chaque centre de données continue de servir son segment de clients. Une fois la connectivité rétablie, les données des bases de données sont automatiquement synchronisées.

Si le centre de données tombe complètement en panne, tout le trafic est automatiquement transféré vers un autre centre de données.

Si cela entraîne une charge accrue sur les machines, CloudWatch détermine l'utilisation accrue du processeur et ajoute le nombre nécessaire de machines dans un centre de données selon les règles d'AutoScaling.

En même temps, la réplication Maître-Maître est suspendue. Après avoir effectué le travail nécessaire, réactivez la base de données et restaurez la réplication.

Si tout va bien, le trafic est réparti entre les centres de données. Si la charge moyenne est tombée en dessous de la valeur seuil, les machines supplémentaires qui ont été allumées pour gérer l'augmentation de la charge sont automatiquement arrêtées.

Pour les services cloud, la mise à jour des fonctionnalités et des logiciels système pose un gros problème. Parfois, ils sont obligés de désactiver temporairement le service, d'avertir les utilisateurs, d'effectuer des travaux de nuit. Notre architecture nous permet de le faire afin que les utilisateurs ne le remarquent même pas.

Technologie WebRTC : appels, appels vidéo, téléphonie

Les appels vidéo dans Bitrix24 sont privés. Les conversations vidéo fiables au sein de l'entreprise sont basées sur la technologie WebRTC. La connexion est cryptée, les appels sont effectués entre les utilisateurs en pair-à-pair, le processus est presque transparent et se déroule "à l'intérieur" du navigateur.

SIGNALING (SIGNALISATION)

La signalisation effectue trois tâches simples :

  1. Configurations d'interconnexion de deux navigateurs (flux audio/vidéo, codecs, adresses, ports au format SDP).

  2. Échangez des mots de passe pour établir une connexion cryptée entre les navigateurs.

  3. Initiation des actions - appel à quelqu'un (connectez le flux du client A au flux du client B lors des rappels dans js), fin de l'appel, etc.

Les navigateurs se connectent les uns aux autres à l'aide de la signalisation, qui vous permet de passer des appels vidéo.

L'appel est facile lorsque les deux utilisateurs sont sur le même réseau local. Mais lorsque les utilisateurs sont sur des réseaux différents et ont configuré des pare-feu, les navigateurs ne peuvent pas établir de connexion sans l'aide :

  • Pour passer les pare-feu de l'entreprise, les utilisateurs accèdent au serveur central à l'aide des protocoles STUN/TURN.

  • S'il est impossible de passer le pare-feu, les flux multimédias passent par un serveur tiers, et non pair-à-pair entre navigateurs (en mode «relais»).

Appels vidéo de groupe

Lorsqu'un appel vidéo de groupe est effectué, chaque navigateur contient le flux vidéo de chaque participant à l'aide de WebRTC.

WebRTC et téléphonie

Bitrix24 s'intègre aux «passerelles» pour passer des appels vers des numéros de téléphone réguliers depuis/vers l'entreprise.

Site composite

Bitrix24 utilise une technologie unique pour améliorer les performances du service qui unit le chargement à grande vitesse des données statiques et la préparation en arrière-plan des données dynamiques.

Les pages sont divisées en deux sections : statique et dynamique. La partie statique est mise en cache et s'affiche immédiatement. La partie dynamique est chargée en utilisant le traitement en arrière-plan et mise en cache dans le navigateur.

API REST

À quoi sert L'API Bitrix24 :

  • CRM
  • Groupes de réseaux sociaux (groupes de travail, projets)
  • Stockage de données (blocs d'informations)
  • Notifications et Actualités
  • Tâches
  • Utilisateurs et Départements
  • Calendriers
  • Téléphonie
  • Bitrix24.Sites
  • Bots de chat et Canaux ouverts
  • Flux de travail
  • etc.
Pour en savoir plus, lisez l’article - API Bitrix24.
Merci, cela m’a aidé Merci :) Non, cela ne m’a pas aidé Nous sommes désolés Envoyer un commentaire
Pourriez-vous nous préciser pourquoi:
Ce n'est pas ce que je cherche
C'est trop compliqué