Ursprünglich haben wir die folgenden Geschäftsanforderungen für Bitrix24-Architektur zusammengestellt:
- Der erste Bitrix24-Tarif ist "Free". Dies bedeutet, dass die Kosten für diese kostenlosen Accounts für uns sehr gering sein müssen.
- Unser Projekt ist eine Business-App, bei der die Lastverteilung stark variiert: Tagsüber ist die Belastung hoch und nachts fällt sie geringer aus. Idealerweise sollte die App skalierbar sein, um jederzeit genau die benötigten Ressourcen bereitzustellen und effizient zu nutzen.
- Für jede Business-App ist die Sicherheit dabei von größter Bedeutung: die kontinuierliche Verfügbarkeit der Daten sowie deren Schutz.
Diese Geschäftsanforderungen identifizierten zwei wesentliche Arbeitsbereiche: die Entwicklung einer skalierbaren, fehlertoleranten Cloud-Plattform und die Auswahl einer geeigneten Technologieplattform für die Projektinfrastruktur.
Bitrix24 wird als Web-Cluster aus austauschbaren Servern vorestellt. Bei steigendem Datenverkehr können dem Cluster schnell neue Server hinzugefügt werden. Sollte ein oder mehrere Cluster-Server ausfallen, bleibt das System auf den verbleibenden Servern funktionsfähig und gewährleistet eine einwandfreie Kundenbetreuung. Die Unterstützung der Cloud-Dateispeicherung löst das Problem der Synchronisierung statischer Inhalte, und die Implementierung der Master-Master-Replikation in MySQL ermöglicht den Aufbau geografisch verteilter Web-Cluster.
Fehlertolerante Architektur
Als Plattform nutzen wir Amazon AWS, jedoch ist das Hosting auf anderen Plattformen ebenfalls möglich.
Automatische Skalierung
Unsere Webanwendung wird nicht vertikal durch Erhöhung der Serverleistung, sondern horizontal durch Hinzufügen neuer Maschinen skaliert.
Zu diesem Zweck nutzen wir eine Kombination aus Elastic Load Balancing, CloudWatch und Auto Scaling. Alle Kundenanfragen (HTTP und HTTPS) werden an einen oder mehrere Amazon ELBs weitergeleitet. Der Anstieg und Rückgang der Belastung wird über CloudWatch kontrolliert. Dabei sind zwei Metriken von besonderem Interesse: der Zustand der EC2-Knoten (Prozentsatz der CPU-Auslastung) und die Balancer-Latenzzeit (in Sekunden).
Bei steigender Belastung werden neue Server gestartet, während sie bei abnehmender Belastung automatisch abgeschaltet werden. Dadurch reduzieren wir die Kosten, da unnötige Server nicht im Leerlauf betrieben werden.
Statischer Inhalt der Service-Nutzer
Bei der Erstellung jedes neuen Accounts in Bitrix24 wird ein persönliches Amazon-Konto eingerichtet, um Daten in S3 zu speichern. Dadurch sind die Daten jedes Accounts vollständig voneinander isoliert. Gleichzeitig ist der S3-Speicher äußerst zuverlässig.
Daten in S3 werden auf mehrere Standorte repliziert, einschließlich geografisch verteilter Punkte in verschiedenen Rechenzentren. Jedes Speichergerät wird kontinuierlich überwacht und bei Ausfällen umgehend ersetzt.
Beim Hochladen neuer Dateien in den Speicher erhalten Sie erst dann eine Bestätigung über den erfolgreichen Upload, wenn die Datei vollständig an mehreren verschiedenen Standorten gespeichert wurde. Üblicherweise werden Daten auf drei oder mehr Geräte repliziert, um Fehlertoleranz zu gewährleisten, selbst im Falle eines Ausfalls von zwei dieser Geräte.
Die S3-Architektur ist so konzipiert, dass Amazon eine Verfügbarkeit von von zwei Neunen nach dem Komma sicherstellt. Zudem beträgt die Wahrscheinlichkeit eines Datenverlusts lediglich ein Milliardstel Prozent.
17 Rechenzentren und Master-Master-Replikation
Bitrix24 Daten werden in 17 Rechenzentren weltweit gehostet Bitrix24 nutzt Amazon Web Services, den Anbieter Nr. 1 im Bereich Cloud-Rechenzentren. Alle diese Zentren sind mit zertifizierten und 24/7 überwachten Systemen ausgestattet, die einen sicheren und schnellen Betrieb des Bitrix24 Services gewährleisten.
In jeder Region haben wir unsere Services in zwei voneinander unabhängige Rechenzentren aufgeteilt, zwecks erhöhter Ausfallsicherheit. Beide Überwachungssysteme, die halb- und vollautomatisch funktionieren können, kontrollieren den Betrieb in Bezug auf etwaige Systemausfälle. Alle Unregelmäßigkeiten lösen den Alarm aus, worauf unsere Fachleute sowie Techniker des jeweiligen Rechenzentrums sofort reagieren und nach Problemlösungen suchen.
Die Datenbanken in den verschiedenen Rechenzentren sind synchronisiert, jedoch gleichzeitig voneinander unabhängig. Ein Verbindungsverlust zwischen den Rechenzentren kann mehrere Stunden andauern, wobei die Daten nach Wiederherstellung der Verbindung synchronisiert werden.
Wir nutzen intensiv die Master-Master-Replikation. Bei einem Ausfall oder Neustart des Datenbankservers wechseln die Kunden nahtlos auf den zweiten Server.
Sicherheit und Fehlertoleranz
Eine der höchsten Prioritäten bei Bitrix24 ist die kontinuierliche Verfügbarkeit des Dienstes sowie seine Fehlertoleranz.
Im Falle eines Ausfalls auf einem oder mehreren Webknoten identifiziert das Load Balancing die ausgefallenen Maschinen und stellt basierend auf den festgelegten Parametern der Balancing-Gruppe (mindestens erforderliche Anzahl laufender Maschinen) automatisch die benötigte Anzahl an Instanzen wieder her.
Bei einem Verlust der Verbindung zwischen den Rechenzentren bedient jedes Rechenzentrum weiterhin sein eigenes Kundensegment. Nach Wiederherstellung der Verbindung werden die Daten in den Datenbanken automatisch synchronisiert.
Bei einem vollständigen Ausfall des Rechenzentrums oder einem grundlegenden Ausfall wird der gesamte Datenverkehr automatisch auf das funktionierende Rechenzentrum umgeleitet.
Sollte dies zu einer erhöhten Belastung der Maschinen führen, erkennt CloudWatch die gesteigerte CPU-Auslastung und fügt gemäß den AutoScaling-Regeln die erforderliche Anzahl an Maschinen in einem Rechenzentrum hinzu.
Dabei wird unsere Master-Master-Replikation ausgesetzt. Nach Abschluss der notwendigen Arbeiten, sei es eine Wiederherstellung im Falle eines Ausfalls oder geplante Wartungsarbeiten, nehmen wir die Datenbank wieder in Betrieb und stellen die Replikation wieder her. Ein Beispiel hierfür ist der nahtlose Übergang vom Standard-MySQL zum Percona-Server, den wir ohne Ausfallzeiten für die Servicenutzer durchgeführt haben.
Wenn alles wie erwartet verlaufen ist, wird der Datenverkehr erneut auf die Rechenzentren verteilt. Sollte die durchschnittliche Belastung gleichzeitig unter den Schwellenwert fallen, werden die zusätzlichen Maschinen, die zur Bewältigung der erhöhten Belastung hochgefahren wurden, automatisch gestoppt.
Bei Cloud-Diensten stellt die Aktualisierung von Funktionalitäten und Systemsoftware eine erhebliche Herausforderung dar. Oftmals sind sie gezwungen, den Service vorübergehend zu deaktivieren, Nutzer zu informieren und die Arbeiten nachts durchzuführen. Unsere Architektur ermöglicht es, diese Prozesse unbemerkt für die Nutzer durchzuführen.
Technologie WebRTC: Anrufe, Videoanrufe, Telefonie
Videoanrufe in Bitrix24 sind privat. Sichere Videogespräche innerhalb des Unternehmens basieren auf der WebRTC-Technologie. Die Verbindung ist verschlüsselt, erfolgt Peer-to-Peer zwischen den Gesprächspartnern und ist nahezu transparent im Browser.
SIGNALING
Signaling erfüllt drei einfache Aufgaben:
- Verbindung der Konfigurationen von zwei Browsern (Audio-/Videostreams, Codecs, Adressen und Ports – im SDP-Format).
- Kennwortaustausch für die Verbindung der verschlüsselten Verbindung zwischen Browsern.
- Initiierung der Aktionen – Anruf starten (den Kunden A mit dem Kunden B auf callbacks in js verbinden), den Anruf beenden usw.
Dies bedeutet: Durch Signalinh verbinden sich Browser miteinander, sodass Sie Videoanrufe tätigen können.
Das Telefonieren im lokalen Netzwerk ist einfach und unkompliziert. Befinden sich Mitarbeiter jedoch in unterschiedlichen Netzwerken und sogar hinter Firewalls, können Browser ohne externe Unterstützung keine Verbindung herstellen.
- Um die Firewalls des Unternehmens zu passieren, nutzen Mitarbeiter die STUN/TURN-Protokolle, um auf den zentralen Server zuzugreifen.
- Wenn es nicht möglich war, die Firewall zu passieren, werden die Medienströme im „Relay“-Modus über einen Server eines Drittanbieters geleitet, anstatt Peer-to-Peer zwischen den Browsern zu erfolgen.
Videokonferenzen
Bei einer Videokonferenz mit WebRTC speichert jeder Browser den Videostream jedes Teilnehmers.
WebRTC und Telefonie
In Bitrix24 ist die Integration mit "Gateways" ausgeführt, um ein- und ausgehende Anrufe an einfache Telefonnummer des Unternehmens zu machen.
Composite-Site-Technologie zur Optimierung der Arbeitsgeschwindigkeit
Bitrix24 nutzt eine einzigartige Composite-Site-Technologie, die die hohe Ladegeschwindigkeit einer statischen Website mit den umfassenden Funktionen einer dynamischen Website kombiniert.
Die Accountseite besteht aus zwei Komponenten: einem statischen und einem dynamischen Teil. Der statische Teil wird zwischengespeichert und sofort angezeigt, sodass der Nutzer den Inhalt sofort sehen und damit arbeiten kann. Der dynamische Teil wird im Hintergrund geladen und im Browser des Besuchers zwischengespeichert, wodurch der Nutzer sofortigen Zugriff auf den Seiteninhalt erhält.
Das Ziel der Composite-Site-Technologie besteht darin, die Bereitstellung einer Seite für den Nutzer zu beschleunigen, indem Zonen mit dynamischen Inhalten hervorgehoben, nachbearbeitet und durch eine zusätzliche Ajax-Anfrage bereitgestellt werden.
Der Kern der Composite-Site-Technologie liegt darin, dass in den Komponentenvorlagen, aus denen eine dynamische Seite erstellt wird, spezielle Zonen markiert werden, die dynamische Inhalte enthalten. Beim Zugriff eines Nutzers auf eine Seite erstellt das System einen Cache des statischen Teils der Seite, in den spezielles JavaScript eingefügt wird, das den Server kontaktiert, um die neuesten Daten abzurufen. Bei einem erneuten Zugriff des Nutzers gibt das System die erstellte Cache-Datei zurück und stellt anschließend den zusätzlichen dynamischen Inhalt bereit.
REST API von Bitrix24
Bitrix24 Partner können eigene Anwendungen für den Service erstellen. Für die Entwicklung von Anwendungen sind REST-Methoden verfügbar.
Dokumentation zu REST API
Die Apps können für folgende Tools und Bereiche erstellt werden:
- CRM;
- Informationsblöcke;
- Benachrichtigungen;
- Aufgaben;
- Arbeit mit Nutzern;
- Arbeit mit Abteilungen;
- Feed;
- Kalender;
- persönliche Drives;
- Websites;
- Chatbots und Kommunikationskanäle;
- Workflows;
- Telefonie und andere.
Alle Anwendungen für Bitrix24 können in 3 Gruppen aufgeteilt werden:
- Anwednungen in der Cloud.
Normalerweise werden sie als Archiv hochgeladen, das alle erforderlichen HTML-Dateien, Stylesheets, JavaScript-Dateien und Bilder enthält. Der Einstiegspunkt für eine solche Anwendung ist die Datei index.html. Das Installationsprogramm, falls vorhanden, ist die Datei install.html.
- Anwendungen auf der Servern von Drittanbietern.
Bei der Registrierung einer Anwendung im Marketplace24 werden direkte Links zum Einstiegspunkt und zum Installer dieser Anwendung bereitgestellt, die ins Bitrix24-Interface geöffnet werden.
- Externe Anwendungen.
Die Anwendungen nutzen nur API und werden im Bitrix24-Interface nicht integriert. Externe Apps werden verwendet, um die Daten für Ihre Web-, Desktop- mobile Anwendungen zu erhalten.
Aus Sicherheitsgründen wird die Anwendung zur Anzeige im Account in einen Workspace-IFRAME eingebettet. Der bei der Registrierung der Anwendung angegebene Link wird in diesen IFRAME geladen.
Die Autorisierung der Anwendung erfolgt über das OAuth 2.0-Protokoll. Bei Anwendungen, die ins Bitrix24-Interface integriert sind (Öffnung in einem IFRAME), wird die Autorisierung automatisch durchgeführt.
Der Zugriff auf das übergeordnete Fenster ist über den IFRAME nicht möglich. Aus sicherheitstechnischen Gründen ist dies ein großer Vorteil, stellt jedoch aus entwicklungstechnischer Sicht einen Nachteil dar. Durch die Verwendung einer speziellen JavaScript-Bibliothek in der Anwendung können die Einschränkungen, die mit der Ausführung der Anwendung in einem IFRAME verbunden sind, teilweise umgangen werden. Zudem wird eine zusätzliche Schnittstelle zum Aufrufen von REST-API-Methoden auf der Kundenseite bereitgestellt.
Dank all dieser Technologien konnten wir einen Service entwickeln, den über 15.000.000 Unternehmen weltweit nutzen, und diesen kontinuierlich weiterentwickeln.
Bitrix24. Ihr ultimativer Arbeitsplatz.