Michael Türk
Michael Türk Lead Solution Specialist
01. March 2018 in

Deutsch Let's talk about

Skalierung

Einen Onlineshop an den Start zu bringen, ist heute keine besondere Herausforderung mehr. Software herunterladen, Logo rein bauen, leicht anpassen und rauf auf einen passenden Server (Anm. d. Red.: stark vereinfachte Darstellung!). Schon kann es losgehen. Dann werden ein paar Euros in Online-Marketing investiert und schon gibt es ein wenig Traffic auf der Seite. Vielleicht kommen sogar gleich ein paar Bestellungen rein. Moderne Server lastet das in der Regel ebenso wenig aus wie die manuelle Bearbeitung einer Hand voll Bestellungen.

Interessant wird es, wenn E-Commerce etwas mehr Fahrt aufnimmt und nachher auch einen vitalen Bestandteil des Geschäftsmodells ausmachen. Ausfälle oder Ineffizienzen kosten dann mitunter viel Geld und tun dem Geschäft auch mal ordentlich weh. Viele organisatorische und technische Herausforderungen werden aber erst dann offensichtlich, wenn die Anzahl der Interessenten und Bestellungen über einen kritischen Schwellenwert hinaus wächst. Dann braucht der Server auf einmal mehrere Sekunden, um eine Seite zu generieren und alle Ressourcen auszuliefern. Und wenn es dann gerade besonders gut läuft, bricht der Server zusammen oder die Logistiker kommen der Flut an Bestellungen nicht mehr nach.



Was bedeutet Skalierung eigentlich?

Die Vergrößerung der organisatorischen und technischen Rahmenbedingungen wird gemeinhin als Skalierung bezeichnet. Diese stellt bei fast jeder E-Commerce-Unternehmung ein zentrales Ziel dar. Neben wachsenden Zugriffs- und Bestellmengen gilt es auch größere Import- und Exportprozesse verarbeitet zu können.

Organisatorisch können Unternehmen mehrere Wege einschlagen, um wachsenden Anforderungen Herr zu werden. Naheliegend ist sicherlich mehr Personal einzusetzen, doch offensichtlich kann das doppelte Lagerpersonal nicht zwingend doppelt so viele Pakete verarbeiten. Dann müssen auch die unterliegenden Prozesse und Rahmenbedingungen optimiert werden. Das Zauberwort in diesem Zusammenhang heißt Automatisierung: bei allen Prozessschritten, bei denen ein menschliches Eingreifen nicht absolut notwendig, sollte dies dann eben auch vermieden werden. In der Abarbeitung von monotonen Tätigkeiten sind uns Maschinen in der Regel sowieso hoffnungslos überlegen.

Also einfach automatisieren und ich bin alle meine Effizienzprobleme los? Offensichtlich nicht. Auch die Technik selbst möchte entsprechende Skalierbarkeit mitbringen, um uns bei der Lösung des Problems zu unterstützen. Eine Software wird meist im kleinen Rahmen entwickelt, getestet und abgenommen. Aber dass sie einem echten Ansturm von Benutzern und Käufern standhält, ist nicht immer gesichert. Ich habe in der Vergangenheit Dutzende Projekte selbst miterlebt, in denen Server eingeknickt oder Importprozesse in den Endlosmodus übergegangen sind. Dass derartige Probleme auch immer noch normal sind, zeigt u.a. der Erfahrungsbericht des Schweizer Digitec-Shops zu Black Friday. Das System konnte nur durch den heldenhaften Einsatz seiner IT-Mitarbeiter am Leben gehalten werden. Hut ab vor dieser Leistung, aber es bleibt zu hoffen, dass im Anschluss auch die Leistungsfähigkeit der unterliegenden Systeme kritisch in Frage gestellt wurde.

Wie kann mein Unternehmen skalieren?

Man kann solche Engpässe durch zwei unterschiedliche Strategien in den Griff bekommen: vertikale und horizontale Skalierung. Vertikale Skalierung bedeutet, mit größerer, schnellerer Hardware dafür zu sorgen, dass mehr Kapazität in einem System zur Verfügung steht. Durch mehr Speicher und größere Prozessoren lassen sich schlicht mehr parallele Prozesse verarbeiten. Dabei ist vollkommen egal, wie die Software beschaffen ist, man erschlägt das Problem einfach mit mehr Hardware. Das Problem daran: Dabei wird recht schnell das Limit erreicht. Die Steigerungsmöglichkeiten sind also stark begrenzt. Außerdem sollte man bedenken, dass der Preis signifikant über linear mit der Leistung ansteigt.

Deutlich mehr Möglichkeiten bietet da horizontale Skalierung. Dabei wird die Anwendung einfach auf mehrere Server aufgeteilt, die jeweils einen Teil des Arbeitsaufwands abarbeiten. Explodiert mein Aufwand, fahre ich einfach eine Batterie neuer Server hoch und verteile den Mehraufwand auf diese. Jeder einzelne Server muss dabei nur einen Teil der Last tragen und kann daher überschaubar mächtig sein. Ganz nebenbei bekommt man mit dieser Strategie auch eine deutlich verbesserte Ausfallsicherheit, da ein einzelner Ausfall nicht das gesamte System gefährdet. Natürlich kommt auch horizontale Skalierung mit einigen Herausforderungen. So hängt die Effizienzsteigerung mit horizontaler Skalierung stark von der Beschaffenheit der Software ab und oftmals verhindern auch lizenzpolitische Faktoren eine wirtschaftliche Durchführung.

Skalierung mit Spryker

Spryker wurde mit starkem Fokus auf Skalierbarkeit entwickelt. Die Systemarchitektur sieht eine strikte Aufteilung von Kunden-Frontends, den sogenannten Apps, sowie der eigentlichen Geschäftslogik im Rahmen des Spryker Commerce OS vor. Apps können dabei alle rein informativen Ansichten wie Landing Pages, Kategorieseiten, Produktdetailseiten oder auch Filialen komplett autark anbieten. Diese machen immerhin 90-95% des normalen Shop-Traffics aus. Im Rahmen dessen kommen mit Webservern, Session und Content Storages (z.B. Redis) sowie Suchmaschinen (z.B. Elasticsearch oder FACT-Finder) ausschließlich Technologien zum Einsatz, die in diversen High Performance-Umgebungen erprobt sind und sich wunderbar parallelisieren lassen. Es gibt schlicht kein Element in den Apps, welches das System verlangsamen würde. Das Resultat der Frontend-Geschwindigkeit kann sich sehen lassen.

Wird nun die Geschäftslogik benötigt, sollten Reaktionsgeschwindigkeiten von wenigen Hundert Millisekunden auch bei hohen Zugriffszahlen nicht überschritten werden. Kunden bekunden Interesse, Ihre Produkte zu kaufen, also sollten Sie ihnen keine Steine in den Weg legen. Erfahrungsgemäß ist die Datenbank das limitierende Element in der Skalierung. Diese hat durch die beschriebene Abschottung des Frontends aber deutlich weniger Belastung, wodurch die verbliebenen Zugriffe schnell und effizient durchgeführt werden können. Den Rest liefert die moderne Struktur und entsprechende Indizes. In unserem Load-Test-Szenario haben wir testweise 2.400 Warenkorbzugriffe innerhalb einer Minute auf einem einzelnen Server abbilden können, ohne dass Zugriffszeiten je über 200ms lagen. Das kann sich wohl sehen lassen.

Natürlich kann auch das Spryker Commerce OS horizontal skaliert werden. Viele Warenkorbzugriffe zum Black Friday? Fahren wir eine neue Backend-Instanz hoch. Viele große Importe? Eine neue Instanz des Spryker Commerce OS arbeitet ausschließlich den Import ab. Dass neben den technischen Möglichkeiten unsere Order Management-Fähigkeiten auch dabei helfen, die organisatorischen Herausforderungen zu meistern, ist dann wie das berühmte Tüpfelchen auf dem i.



Black Friday kann also kommen. Dass unsere Kunden wie Tom Tailor & Co. an einem Wochenende 250% mehr Bestellungen verarbeiten können, ist für die Projekt-Teams kein Anlass für Schweißausbrüche, sondern für pure Freude. Das nächste große Event steht schon bald vor der Tür!

PS: Der besondere Mut zu Transparenz sollte belohnt werden. Bei Interesse werde ich mich persönlich für Sonderkonditionen für Digitec einsetzen! Ich bin für euch da!


 

Abonnieren Sie unseren Newsletter

Let’s Talk About… the Series.

Klingt interessant? Wir könnten den ganzen Tag über Spryker reden und darüber, warum wir 2018 die Plattform der Wahl für die E-Commerce-Branche sind. Aber das würde den Rahmen eines einzelnen Artikels sprengen - noch mehr, als es dieses bereits tut. Deshalb haben wir uns entschieden, daraus eine wöchentliche Serie zu machen, die sich jeweils einem speziellen Thema widmet, darunter auch, wie Spryker Entwicklern und Händlern auf vielen verschiedenen Gebieten zum Erfolg verhelfen kann. Es gibt eine Fülle interessanter Themen, die ausführlicher behandelt werden sollten. Dazu gehören Agilität, Seitengeschwindigkeit, Personalisierung, Sicherheit, Code-Qualität, Produktmanagement, Auftragsverwaltung und vieles mehr.

Falls Sie an einem speziellen Thema besonders interessiert sind, schreiben Sie bitte einfach eine E-Mail an michael@spryker.com. Sie können mich auch über Twitter erreichen: mein Benutzername ist @drlrdsen. Wir lieben Herausforderungen und freuen uns auf Ihre Anregungen, denn wie im E-Commerce ist unser wichtigster Erfolgsindikator die Kundenzufriedenheit.

Über Michael Türk

Ich bin Lead Solution Specialist bei Spryker und bringe dabei technische und inhaltliche Anforderungen unserer Kunden überein. Dank über 10 Jahren E-Commerce Erfahrung in über 100 verschiedenen Projekten mit verschiedenen Plattformen wie Magento, Oxid und Spryker, habe ich viele gestandene Unternehmen gesehen, die sich am digitalen Geschäft die Zähne ausgebissen - aber auch und überraschende Erfolge die zuvor niemand erwartet hat. Retrospektiv gesehen, erkennt man dabei viele Muster und kann sie auf zukünftige Projekte projizieren.

Get all new updates straight to your inbox