Von den Branchenriesen lernen

Hochverfügbarkeit richtig umsetzen

16.12.2015
Von Rafael Kansy

Business Process Monitoring als Effektivitätskontrolle

Die verwendete Software auf technische Fehler zu prüfen, ist damit einfacher - doch erfüllt sie auch ihr Ziel? Hier hilft Business Process Monitoring. Business Process Monitoring ist ein weites Feld, doch gilt in jedem Fall: die gewonnene Erkenntnis ist abhängig von der Menge an Zeit und Geld, die man bereit ist, zu investieren. Je nach vorhandenem Budget lassen sich Metriken auswählen, die für das jeweilige Unternehmen Sinn machen.

Bei Webportalen ist dieses Monitoring von zentraler Bedeutung. Die Klicks der Nutzer müssen verfolgt werden, weil die Unternehmen davon leben, dass die Werbung gesehen und angeklickt wird. Eine Vielzahl kleiner Business-Prozesse sammelt diese Informationen. Startups aus dem Silicon Valley überwachen jede mögliche Metrik rund um die Uhr. Auch Netflix oder Google registrieren jede Interaktion, die Fahrt des Mauszeigers, Pausen, Klicks - all das sind Events, die für Millionen User gespeichert und ausgewertet werden.

Dieser Umfang von Monitoring macht nicht für jedes Unternehmen Sinn. Wichtig ist, dass man sich einen Überblick verschafft. Denn jede IT-Abteilung wird empfindlich gelähmt, wenn sie keine Informationen über ihr eigenes System erhält. Hat ein Unternehmen sich ein Bild der Lage gemacht, geht es daran, passende Konzepte auszuwählen, um den richtigen Weg zur Hochverfügbarkeit zu finden.

Auswahl der passenden Konzepte

Server zu provisionieren ist Alltag in einer IT-Abteilung. Gerade bei der größten Routine passieren Unachtsamkeiten - etwa fehlerhafte manuelle Änderungen oder vergessene Versionsangleichungen. Eine automatische Provisionierung spart daher nicht nur enorm Zeit, sondern vermindert auch Fehler. Puppet-Manifeste oder Chef-Rezepte sorgen beispielsweise dafür, dass die gleiche Serverkonfiguration hunderte Male kopiert werden kann, um Server per Knopfdruck einzurichten.

Viele Unternehmen haben diese Prozesse bereits integriert, so dass sich die nächste Stufe erreichen lässt: die Autoskalierung unterstützt dabei, automatisiert Ressourcen bereitzustellen und dabei besonderen Fokus auf eine kurze Reaktionszeit zu legen.

Soll die Verfügbarkeit der Datenbanken gesteigert werden, so hat dies unmittelbare Auswirkungen auf die Datensicherung. Ein Backup auf Band ist dafür nicht mehr zeitgemäß; es empfiehlt sich vielmehr, zwei Rechner als Master und Slave aufzusetzen. Im normalen Fall einer niedrigen bis durchschnittlichen Last wird hierfür eine Datenbank als Instanz eingesetzt. Nimmt die Auslastung der Datenbank zu, lassen sich Datenbank-Slaves hinzufügen, die den aktuellen Stand der Datenbank vom Master replizieren. Slaves decken dann die Lesefunktion ab, Schreibzugriffe werden über den Master abgewickelt.

Ein solches Setup ermöglicht es, Load Balancing auf dem Datenbank-Cluster zu implementieren. Dies erfordert allerdings eine erhöhte Ausfallsicherheit, da der Datenbank-Master zu einem Single Point of Failure wird. Statt des relativ komplexen Slave-Promoting empfiehlt es sich, einen zweiten Master im Hot-Standby-Modus hinzuzufügen. Zwar werden auch beim zweiten Master Änderungen repliziert, jedoch wird dieser erst aktiv, wenn der erste ausfällt.

Um die Last generell zu reduzieren, sind Caches wie EhCache oder Suchindexe wie Solr und ElasticSearch geeignete Komponenten. Bereits berechnete Ergebnisse können in Applikations-Caches oder Key Value Stores abgelegt werden. Diese Cache-Einträge können über den Cluster repliziert werden und stehen somit auch anderen Nodes zur Verfügung. Volltext-Suchindizes wie Solr oder ElasticSearch sollten eingesetzt werden, um die Datenbank bei Suchabfragen zu entlasten.

Zur Startseite