Sehr geehrte Damen und Herren,
liebe Bitrix24 Freunde,
bei unserem ersten Einblick in die Bitrix24 Edition Enterprise haben wir festgestellt, dass sie die Option der zentralgesteuerten Niederlassungsportale anbietet und schon dadurch sich von anderen On-Premise Editionen unterscheidet. Aber es gibt noch ein weiteres Modul, welches diese Edition ganz besonders macht: Web-Cluster. Was dieses Modul ist und welche Möglichkeiten es hat, darüber erzählen wir Ihnen in diesem Blogbeitrag.
Herausforderungen...
Je größer Ihr Unternehmen wird, desto höher werden die Anforderungen an die Software. Dabei können Sie auch nur ein einziges System nutzen, es muss dann aber leistungsstark und recht umfangreich sein, um alle betrieblichen Bedürfnisse abzudecken; oder Sie können mehrere Systeme verwenden, nach dem Motto: für die Kundenbetreuung gibt es das System A, für Projekte – das System B, und die Dokumentenverwaltung erfolgt nach wie vor via mehrere Mappen gefüllt mit Akten jeglicher Art...
Jede Option hat ihre Vor- und Nachteile, aber wenn Sie mit einer einzigen Software auskommen möchten, soll diese schon viele Features anbieten und zudem die Aspekte Performance, Skalierbarkeit, Fehlertoleranz usw. berücksichtigen.
... und die Antworten darauf
Genau die letzteren Aufgaben übernimmt das Modul Web-Cluster in Bitrix24 Enterprise, denn dieses Modul ermöglicht es, mehrere Netzwerkelemente (oft Server) aufzubauen und miteinander zu verknüpfen, sodass sie zusammen eine stabile Funktionsweise des Systems gewährleisten. Dabei zeichnet sich speziell das Bitrix24 Web-Cluster durch folgende Merkmale aus:
· Die einzelnen Elemente (Knoten) im Cluster können jeweils unterschiedlich konfiguriert werden: es kann ein virtueller Server sein, eine virtuelle Maschine, ein dedizierter Server, eine Cloud Instanz usw.;
· Netzwerkelemente können beliebig verteilt werden, sie können sich sogar in verschiedenen Rechenzentren befinden;
· Werden neue Netzwerkelemente hinzugefügt, wird auch die Performance der Website (des Projektes) entsprechend erhöht.
Das Modul Web-Cluster existiert ausschließlich im administrativen Bereich von Bitrix24.
Fehlertoleranz
Das Modul Web-Cluster ermöglicht es, maximale Fehlertoleranz zu erreichen und die Downtime zu reduzieren. Liegt Ihr ganzes Intranet auf einem einzigen Server, ist das Risiko der Datenverlust wegen des Serverausfalls relativ hoch. Und auch dann, wenn regelmäßige Wartungsarbeiten durchgeführt werden, sind Ihre Daten und Informationen für einige Zeit teilweise oder sogar komplett nicht verfügbar, was Ihre Arbeit sicherlich beeinträchtigen wird.
Werden die Web-Server und Datenbanken im Cluster gesammelt, kann die mögliche Downtime minimiert, und bei einer gezielt vorbereiteten Lastverteilung überhaupt vermieden werden.
So funktioniert das Cluster System: wenn ein Server ausfällt, erkennt der Cluster, dass eine der Ressourcen offline ist, sei es eine Datenbank, ein Web-Server oder memcached Server, und verteilt die Systemlast neu unter den funktionierenden Netzwerkelementen.
Dabei wird es zwar etwas länger dauern, eine neue Seite während der Spitzenlast unter solchen Umständen zu erstellen, aber die Gesamtperformance des Systems wird dadurch kaum betroffen sein.
Datensicherung in Echtzeit
Ihre Daten sind sicher, wenn Sie Datensicherung regelmäßig machen, soweit ist klar, aber dabei müssten Sie sicherstellen, dass Sie erstens die Performance des ganzen Systems nicht beeinträchtigen, wenn der Prozess der Datensicherung gestartet wird; und zweitens alle Daten und Informationen wieder schnell verfügbar werden, sollte ein Ausfall doch passieren. Wie geht man da am besten vor?
Auch hier kommt das Modul Web-Cluster zur Hilfe, denn im Cluster kann ein Netzwerkelement extra als Backup-Server festgelegt und nur für diese Zwecke genutzt werden. Somit kann ein Backup regelmäßig durchgeführt werden, und zwar so, dass die produktiven Server dadurch nicht betroffen werden.
Folgende Technologien sind im Bitrix Modul Web-Cluster enthalten:
Vertikale Fragmentierung (Sharding)
Vertikale Fragmentierung bedeutet eine Teilung der Datenbank einer Web-Anwendung in zwei oder mehrere Datenbanken, welche ganz bestimmte Module bzw. Modulgruppen bedienen. Diese Methode beeinflusst nicht die logische Struktur der Web-Anwendung.

Folgende Bitrix24 Module können auf separaten Servern verwaltet werden: das Modul Statistik, das Modul Suchen.
Insbesondere das Suchmodul erfordert technisch gesehen große Ressourcen, was bei intensiven Suchanfragen in einen endlosen Suchprozess münden und so die Performance des Servers wesentlich einschränken kann. Daher wäre ein separater Server für diese Module durchaus eine sichere und praktische Lösung.
So sieht die Seite im administrativen Bereich von Bitrix24 aus, wo eine neue Datenbank zwecks Fragmentierung hinzugefügt wird:

Wenn eine neue Datenbank hinzugefügt wurde, können auch Tabellen mit Moduldaten dorthin übertragen werden.
Replikation der MySQL
Die Replikation einer MySQL Datenbank ist ein Prozess, in welchem aktuelle Kopien der Datenbank erstellt und verwaltet werden. Die Anwendung arbeitet nicht mit einer, sondern mit mehreren Datenbanken: die eine wird dabei zum Schreiben verwendet und alle anderen – zum Lesen.

So wird die Belastung der Hauptdatenbank (master database) reduziert, denn die Daten werden auf zusätzlichen Datenbanken (slave database) gelesen, während die Hauptdatenbank nur zum Schreiben verwendet wird.
Die Slave-Datenbanken können lediglich dazu verwendet werden, eine Kopie von der Hauptdatenbank in Echtzeit zu erstellen, sonst können Daten von den Slave-Datenbanken nicht gelesen werden. Eine Master-Master Replikation ist dabei auch möglich.
Daten-Cache verteilen
Ein memcached Server ist ein Server, der es Ihnen ermöglicht, den Cache nicht in Dateien sondern im Arbeitsspeicher zu platzieren.
Werden mehrere memcached Server verwendet, wird dadurch die Zuverlässigkeit des Systems erhöht, weil der Cache-Prozess viel stabiler abläuft. Dabei ist die Skalierbarkeit eines solchen Systems praktisch unbegrenzt, da weitere zusätzliche memcached Server immer wieder hinzugefügt werden können.

Der Cache, den die Netzwerkelemente 1, 2 usw. produzieren, kann als ein einziger Cache verwendet werden, der den ganzen Cluster bedient, sodass jedes Element im Cluster darauf zugreifen kann. Je mehr Netzwerkelemente verwendet werden, desto größer ist der Effekt des zentralisierten Caches.
Speichern der Sitzungen in der Datenbank
Wenn ein einziger Web-Server verwendet wird, werden Sitzungsdaten meistens im Dateisystem des Servers gespeichert. Sind aber mehrere Web-Server im Einsatz, kann es schon passieren, dass die eine Anfrage an einen Server geht, während die andere auf einem anderen Server landet – sicherlich keine Störung, aber das kann zu bestimmten Unannehmlichkeiten bei Nutzern führen. Das können Sie relativ einfach vermeiden, indem Sie Sitzungsdaten in der Datenbank speichern:
Clustering der Web-Server
Das Clustering bedeutet ein Verfahren, mit welchem einige bzw. mehrere zusammenhängende Elemente/ Server in einem Netzwerk erstellt werden, damit sie einander ergänzen und ggf. auch ersetzen.
Mehrere Web-Server im Rahmen eines großen Intranets ermöglichen es, Anfragen von Nutzern auf dem beliebigen Server zu verarbeiten, was die Verarbeitungszeit wesentlich reduziert. Dabei muss man sicherstellen, dass auf jedem Server der gleiche Content enthalten ist und dessen Synchronisierung korrekt funktioniert.
Wenn ein neuer Server hinzugefügt wurde, erscheinen kurz gefasst Informationen zu seinem Stand, Status usw.:
Zusammenfassung
Alle Tools, die Sie zur Konfiguration des Moduls Cluster sowie zur Verwaltung Ihrer Web-Server und Datenbanken benötigen, befinden sich im administrativen Bereich, in der Rubrik Einstellungen -> Web-Cluster:

Mit dem Modul Web-Cluster können Sie die Performance Ihres Systems auf stabil hohem Niveau halten und dabei alle möglichen Risiken minimieren.
Viel Spaß mit Bitrix24, und auch mit dem Modul Web-Cluster!