Skalierbarkeit

Applikationen, die aktiv in die Wertschöpfungskette eines Unternehmens integriert sind, müssen skalieren: mit wachsenden Anforderungen muss auch die Software mit wachsen.

Reduzierung von Datenbank-Zugriffen mit intelligentem Caching

Datenbank-Abfragen erfordern Zeit und bedeuten Last auf dem System. Ein besonderer Umstand, dem sich alle Web-Anwendungen stellen müssen, ist eine große Anzahl sehr gleichartiger Vorgänge. Am Beispiel eines Online-Shops wäre das etwa die Anzeige einer Kategorie oder einer Produkt-Detailseite.

Um die Performance zu steigern, wird üblicherweise per Caching auf zwischengespeicherte Daten zurück gegriffen. Von vielen Web-Anwendungen werden hierzu temporäre Dateien auf der Festplatte des Servers angelegt, die bereits fertig berechnete Templates beinhalten.

Da OFBiz eine auf Java basierende Anwendung ist, die als Prozess permanent im Hintergrund läuft, kann ein deutlich performanterer Weg gegangen werden: die gecachten Daten werden nicht auf die Festplatte, sondern in den Arbeitsspeicher des Systems ausgelagert. Die Zugriffszeit darauf ist etwa ~250 mal so schnell wie Lese-Zugriffe auf die Festplatte. Gecacht werden Datenbank-Einträge, aber auch komplette Seiten des Shops oder Portals. Ermöglicht wird dieses Caching durch die eigene Persistenz-Schicht von OFBiz, die auch einen wichtigen Beitrag zur Plattform Unabhängigkeit von OFBiz leistet.

Darüber hinaus bietet OFBiz ein intelligentes Management des Caches. Ändert sich eine Information, beispielsweise eine Artikelbeschreibung oder ein Preis, muss der Cache reagieren und es muss sichergestellt werden, dass keine veralteten Informationen angezeigt werden. Es wäre ein manuelles Aktualisieren des Caches möglich (aufwändig und fehleranfällig). Ebenso wären kurze Vorhaltezeiten des Caches denkbar (ineffizient). Die Persistenz-Schicht von OFBiz sorgt bei einer Änderung von Daten automatisiert dafür, dass die alten Daten aus dem Cache entfernt werden, allerdings nur diese – die restlichen Informationen bleiben weiterhin im Cache enthalten.

Es lässt sich festhalten, dass intelligentes Caching Möglichkeiten bietet, Ressourcen einzusparen bzw. bei bestehenden Ressourcen eine viel größere Benutzerzahl ohne längere Wartezeiten bedienen zu können.

Cluster-Fähigkeit „out of the box“

Applikations-Cluster werden überwiegend aus zwei Beweggründen aufgebaut: Lastverteilungs-Szenarien und Hochverfügbarkeits-Szenarien.

Lastverteilung als klassisches Cluster-Szenario

Wird Ihre Web-Anwendung mit der Zeit immer erfolgreicher und bekommt mehr Aufmerksamkeit, steigt auch der Bedarf an Ressourcen, um die Anwendung performant zu betreiben. Ab einem gewissen Punkt ist es wirtschaftlich nicht mehr sinnvoll, Ihren Server mit mehr Arbeitsspeicher oder schnelleren Prozessoren aufzurüsten. Oder die maximale Ausbaustufe der eingesetzten Hardware wird erreicht.

Ein Lastverteilungs-Cluster schafft hier Abhilfe: die Anwendung läuft auf mehreren Servern (Nodes), die sich die Arbeit teilen. Sogenannte Load Balancer verteilen die ankommenden Anfragen nach ausgefeilten Strategien auf die Nodes im Cluster.

Zusätzlich ist dieses Cluster-Szenario flexibel für vorübergehende Lastspitzen, z. B. durch Werbekampagnen oder saisonale Effekte, aufgestellt: es ist meist effizienter, temporär einen weiteren Cluster-Node hinzu zu schalten, als permanent „überdimensionierte“ Server zu betreiben.

Hochverfügbarkeit als Sicherheits-Szenario

Kritische Anwendungen entlang der Wertschöpfungskette eines Unternehmens dürfen nicht ausfallen. Sonst entstehen erheblich Kosten, die teilweise nicht zu beziffern sind:

  • Umsatzausfall
  • Image-Schaden
  • ins Leere laufende Marketing-Maßnahmen
  • (ggf. Stillstand der Produktion)

Häufig sind Downtimes jedoch trotz sorgfältiger Planung nicht vollständig auszuschließen; z. B. sind Hardware-Schäden nicht planbar und Wartungsfenster nicht zu vermeiden. Die Verteilung der Anwendung auf mehrere Server in einem Cluster hilft hier, die Ausfall-Risiken zu minimieren.

OFBiz im Cluster-Betrieb

Skizze: OFBiz in Cluster-UmgebungOFBiz ist für Cluster-Lösungen zur Lastverteilung und für Hochverfügbarkeits-Szenarien vorbereitet. Der verwendete Tomcat Application Server bietet eine breite Palette von Features, die in der Praxis tagtäglich produktiv überzeugen. In Kombination mit Webservern wie z. B. dem Apache lassen sich beliebig große und beliebig leistungsfähige Cluster betreiben. Die Auslagerung von Datenbank-Instanzen in eigene Cluster ist selbstverständlich ebenso möglich.

Die Dimensionierung eines Clusters ist somit alleine eine individuelle Entscheidung aus Basis des präferierten Mixes aus Sicherheit, Performance und (Betriebs- sowie Hardware-)Kosten.

Key-Benefits einer skalierbaren OFBiz-Lösung sind die Zukunftssicherheit der Investition und die effiziente Nutzung der vorhandenen Resourcen.