kentoh - Fotolia
Wie Active-Active Data Center die Hochverfügbarkeit steigern
Unternehmen, deren Anwendungen hochverfügbar sein müssen, sollten sich mit Active-Active Data Centern vertraut machen, um Zuverlässigkeit und Resilienz sicherzustellen.
Jedes Unternehmen, das auf eine hochverfügbare Anwendung setzt, muss die folgende fundamentale Frage beantworten: Wie erreichen wir eine resiliente Anwendungsarchitektur, wenn die zugrunde liegende Kommunikations-Infrastruktur möglicherweise unzuverlässig ist?
Hier sind einige Hintergrundinformationen. Meine Beratungsfirma arbeitete mit einem Kunden zusammen, dessen wichtigste Geschäftsanwendung Anforderungen in puncto Hochverfügbarkeit stellte. Die Clients des Unternehmens sendeten Transaktionen an den primären Data-Center-Anwendungsserver und pufferten die Transaktion, bis sie eine Bestätigung erhielten. Der Kunde verfügte über zwei Data Center, die er als primäres und Backup-Rechenzentrum konfiguriert hatte.
Was die Zuverlässigkeit betraf, so erlebte der Kunde zudem mehrere Male im Jahr netzwerkbezogene Ausfälle, und der Failover-Mechanismus, der vom primären zum Backup-Rechenzentrum umschalten sollte, war ein manueller Prozess, der mehrere Stunden zur Ausführung brauchte. Infolgedessen waren die Netzwerkprobleme behoben, bevor der Failover-Prozess abgeschlossen war. Offenbar benötigte der Kunde einen zuverlässigeren Failover-Mechanismus für seine Data Center, der es den Clients ermöglichte, auf die hochverfügbare Anwendung zuzugreifen.
Eine Option bestand darin, das Netzwerk und die Data Center in hohem Maße zuverlässig zu gestalten, so dass ein Ausfall irgendeines der Data Center extrem selten vorkommen würde. Die Architektur einer hochzuverlässigen Infrastruktur ist allerdings oft fragil, und kleine Änderungen können zu Ausfällen führen, die sich nur schwer diagnostizieren und korrigieren lassen.
Resiliente Anwendungsarchitektur
Um zu verhindern, dass die Systeme fragil sind, wäre ein besserer Ansatz für resiliente Anwendungen, eine Architektur für ein Active-Active Data Center bereitzustellen, die nicht von einem einzelnen Pfad oder einer einzelnen Funktion abhängig ist. Der Begriff Active-Active bezieht sich auf die Nutzung von mindestens zwei Data Centern, wobei beide jederzeit eine Anwendung bedienen können, so dass jedes als aktive Anwendungs-Site fungiert. Die Clients können ihre Transaktionen bei jedem aktiven Data Center durchführen. Zudem können das Design und der Betrieb jedes Data Centers sehr viel einfacher sein, als wenn man versuchen würde, ein einzelnes, hochzuverlässiges Rechenzentrum aufzubauen.
Beachten Sie, dass die Resilienz in die Anwendung integriert werden sollte, nicht in das Netzwerk und die IT-Infrastruktur. Dies bedeutet, dass der Zugriff auf die Anwendung selbst dann weiter möglich ist, wenn Teile des Netzwerks oder der Server unerwartet ausfallen. Der zentrale Punkt dieser Methodologie besteht darin, dass die Architektur der Hochverfügbarkeitsanwendung selbst den zuverlässigen Datenaustausch beinhalten muss. Dieser Architektur ist implizit, dass die Datenbanken in jedem aktiven Data Center sich gegenseitig aktualisieren müssen, wenn Client-Transaktionen ausgeführt werden.
Die Anwendungsmerkmale des Kunden waren gut für eine Active-Active Architektur geeignet, in der beide Data Center eine komplette Transaktion durchführen konnten. Die Kundentransaktionen wurden zu einer Data-Center-Anwendung gesendet, die eine zentrale Datenbank aktualisierte und dann eine Bestätigung an den Endpunkt des Kunden sendete. Der Mechanismus garantierte eine erfolgreiche Übermittlung der Transaktion. Und da die hochverfügbare Anwendung intern entwickelt wurde, ließen sich alle nachfolgenden Änderungen auch inhouse erledigen.
TCP für die Datenübertragung?
TCP ist ein Netzwerkmechanismus, der dafür konzipiert ist, eine zuverlässige Datenübertragung sicherzustellen. Doch obwohl TCP die Zustellung eines verloren gegangenen Pakets wiederholen kann, ist das Protokoll nicht in der Lage, die Datenübermittlung zu garantieren, wenn einer der Endpunkte ausfällt. Die TCP-Sitzung wird zwischen den Schnittstellen von zwei Endpunkten aufgebaut. Und falls einer der Endpunkte – ein Server oder dessen Schnittstelle – ausfällt, wird die TCP-Sitzung beendet.
Was man von Unicorn-Unternehmen lernen kann
Die IT-Systeme sogenannter Unicorn-Unternehmen, zum Beispiel Facebook, Google, Microsoft, Netflix und Amazon, sind darauf ausgelegt, dass Clients sich mit jedem ihrer Data Center verbinden können. Sollte irgendein Element innerhalb eines Data Centers ausfallen, werden Transaktionen, die diese Komponente zu nutzen versuchen, automatisch einem anderen Teil der IT-Infrastruktur zugewiesen. Unternehmen wie die oben genannten gehen davon aus, dass Teile ihrer Infrastruktur ausfallen. Also rüsten sie die Anwendungen selbst mit Resilienz aus.
Resiliente Architekturen für den Rest von uns
Was können Sie tun, wenn Sie nicht für ein Unicorn-Unternehmen arbeiten? Wir können von den Unicorn-Unternehmen lernen und unsere IT-Systeme anpassen, damit sie auf ähnliche Weise funktionieren. Das funktioniert am besten für hochverfügbare Anwendungen, die inhouse erstellt werden.
Beispielsweise könnte ein Client-Endpunkt zur erneuten Übertragung einer Transaktion einen Timer nutzen, der eine Round-Robin-Liste mit Data-Center-Adressen über das Domain Name System (DNS) erhält – also ein globales Server-Load-Balancing. Der Client würde dann die Transaktion puffern, bis er eine Bestätigung von einem erreichbaren Data Center empfängt. Die Datenbank-Synchronisierung würde Updates an andere Instanzen verteilen, so dass jede Datenbank künftige Transaktionen abwickeln könnte. Diese Architektur ermöglicht es Unternehmen, mehrere Anwendungs-Datenbanksysteme bereitzustellen. Außerdem könnte dieser Ansatz sich sogar auf Instanzen von Zugriffsdatenbanken in Cloud-Infrastrukturen erstrecken, wie Amazon und Microsoft Azure.
Anwendungen von Drittanbietern – etwa eine Applikaion für die elektronische Patientenakte – stellen eine größere Herausforderung dar. Wir können Softwareanbieter um resiliente Systemdesigns bitten, die imstande sind, mit Active-Active Data Centern zusammenzuarbeiten. Wenn Sie die Client-Seite der Anwendung genau unter die Lupe nehmen, bietet sich vielleicht eine Möglichkeit, ein kleines Softwaremodul hinzuzufügen, das die Konnektivität zum Rechenzentrum überwachen kann. Bei nicht vorhandener Verbindung kann das Softwaremodul dann die Anwendung automatisch zu einem anderen Data Center umschalten.
Eine weitere Option stellen Technologien wie Software-defined WAN (SD-WAN) dar, das die Pfaddiversität durch die Nutzung von mehreren Links unterschiedlicher Provider erhöht. Dieser Ansatz funktioniert ebenfalls für Third-Party-Anwendungen.
Aufgrund der umfassenden Einführung von Cloud Computing liegt die Versuchung nahe, das System so zu entwerfen, dass es ein internes Data Center und ein Cloud-basiertes Data Center nutzt.
Fazit
Unicorn-Unternehmen bieten einige interessante Beispiele für das Enterprise Networking, die zeigen, wie sich IT-Systeme und Anwendungen hochverfügbar gestalten lassen. Zwar erfordert es womöglich etwas Innovationskraft, um Anwendungen, die wir nicht kontrollieren, zu verbessern. Doch die gute Nachricht ist, dass es eine Vielzahl von Technologien gibt, die fast jeder Organisation helfen können, die Resilienz ihrer Anwendungen zu steigern.
Folgen Sie SearchNetworking.de auch auf Twitter, Google+, Xing und Facebook!