Cloud-Commerce only: wie man in der Cloud hostet

| Keine Kommentare

Im vergangenen Jahr wurden rund ein Drittel der Online-Einkäufe mit einem Smartphone getätigt.[1] Damit einhergehend wandelt sich auch das Surf- bzw. Kaufverhalten der Konsumenten. So nutzt jeder dritte Konsument sein Smartphone stündlich, während ca. 60 Prozent es zum Überbrücken von Wartezeiten verwenden.[2] Hierdurch begünstigt, kann es schnell passieren, dass ein Onlineshop binnen weniger Minuten mehrere tausend Besucher bedienen muss. Zum Bespiel wenn Nutzer von mydealz.de auf ein attraktives Angebot hinweisen. Um für solche Lastspitzen gewappnet zu sein, muss die eigene Serverinfrastruktur folglich großzügig dimensioniert sein, was wiederum hohe Kosten und größtenteils unnötigen Leerlauf zur Folge hat.

In diesen Fällen kann Cloud Computing, also die Inanspruchnahme von flexiblen, skalierbaren IT-Services, welche über das Internet bereitgestellt werden, eine geeignete Alternative darstellen. Ein Beispiel hierfür ist der Dienst AWS von Amazon, welcher sich großer Beliebtheit erfreut. Grundlage für diese Annahme ist eine aktuelle Studie, die den Marktanteil von AWS am globalen Cloud-Geschäft auf 33 Prozent beziffert.[3] Des Weiteren gab das Unternehmen jüngst eine Steigerung seines Quartalsumsatzes  um 43 Prozent im Vergleich zum Vorjahr an und zählt bekannte Unternehmen wie Netflix oder Airbnb zu seinen Kunden.[4]

Grundlegende Konzepte

Cloud Computing wird als die Bereitstellung von Diensten über ein Netzwerk, i. d. R. das Internet, verstanden. Der Begriff Dienste kann hierbei sowohl für eine Anwendungssoftware (z. B. ein CRM-Tool), als auch für Speicher- bzw. Rechenressourcen stehen.[1] Das NIST (eine US-Behörde für Technologiestandards) definiert Cloud Computing ferner als Modell für einen komfortablen Zugang zu einem konfigurierbaren Pool an Rechenressourcen, welcher kurzfristig in Anspruch genommen werden und mit minimalem Administrationsaufwand betrieben werden kann.[2] Bekannte Anbieter solcher Dienste sind etwa die Amazon Web Services (AWS), die Google Cloud Platform oder Microsoft Azure.

Die Definition wird greifbarer, wenn man die sogenannten Service-Modelle, also mögliche Ausgestaltungen einer Cloud, betrachtet.[4] Es wird an dieser Stelle zwischen drei Service-Modellen differenziert, die sich an unterschiedliche Zielgruppen richten. Infrastructure as a service (IaaS) stellt hierbei die niedrigste Stufe des Cloud Computing dar und betrachtet die Bereitstellung von fundamentalen IT-Ressourcen, wie z. B. virtuellen Maschinen, virtuellem Speicher oder IP-Adressen, wobei das Hauptaugenmerk auf der kurzfristigen Skalierbarkeit dieser Ressourcen liegt.[5] Beispiele für IaaS-Dienste sind Amazon EC2 und die Google Compute Engine (GCE).

Die mittlere Stufe des Cloud Computing stellt das Platform-as-a-service-Modell (PaaS) dar. Ein Beispiel hierfür stellt die Google App Engine dar. Diese richtet sich primär an Entwickler und bietet diesen sogenannte Middleware, also etwa eine (browserbasierte) Entwicklungs- und Laufzeitumgebung, um ihre Apps auf der GCP zu entwickeln und zu betreiben. Dies hat den Vorteil, dass kaum Administrations-Skills vorliegen müssen und man somit relativ komfortabel und zügig erste Ergebnisse umsetzen kann.

Das höchste Service Level im Rahmen des Cloud Computing bilden die sogenannten Software-as-a-Service-Dienste (SaaS). Sie richten sich in der Regel an Endanwender, wobei diese üblicherweise nicht ausmachen können, ob die genutzte Applikation in der Cloud läuft.[6] Beispiele hierfür können Help-Desk-Applikationen oder etwa Google Mail for Businesses sein, wobei diese wiederum vom Betreiber auf Basis von IaaS-Diensten angeboten werden.

Umsetzung mit der Google Cloud Platform

Bevor eine Anwendung auf der GCP erfolgreich umgesetzt werden kann, gilt es zunächst einige grundsätzliche Entscheidungen bezüglich der Infrastruktur zu treffen. Dies betrifft u. a. die Form der Datenspeicherung, das Verhalten von Infrastrukturbestandteilen bei Last sowie weitere Aspekte. Diese Entscheidungen sind nicht trivial, da sie häufig nur aufwändig umzukehren sind und die gängigen IaaS-Anbieter eine Vielzahl von Diensten und Konfigurationsmöglichkeiten anbieten.

Die nachfolgende Abbildung zeigt einen exemplarischen Infrastrukturaufbau auf Basis der GCP für eine umgesetzte Dummy-Anwendung.

Aufbau der Cloud Infrastruktur

Aufbau der Infrastruktur

Load Balancer

Eingehende Nutzeranfragen werden zunächst an einen sogenannten Load Balancer geschickt. Dessen Aufgabe ist es hierbei alle Anfragen gleichmäßig auf die vorhandenen Webserver zu verteilen. Hierzu lassen sich verschiedene kritische Zielparameter festlegen, die bei Überschreitung dazu führen, dass Anfragen an einen anderen Webserver geschickt werden. Im abgebildeten Beispiel wird die Anfrage von Jane an Webserver 1 weitergeleitet während Davids Anfrage von Webserver 2 verarbeitet wird.

Webserver

Bei den Webservern handelt es sich technisch um sogenannte Instanzen bzw. virtuelle Maschinen. Ihre Anzahl passt sich auf Wunsch automatisch der Last, also der Anzahl von Nutzeranfragen, an. Bei der Umsetzung muss hierfür einmalig eine sogenannte Instanzvorlage eingerichtet werden. Diese beinhaltet neben dem Betriebssystem einen Stack, welcher primär aus dem Webserver (Apache) und PHP samt einigen Modulen und dem eigentlichen Programmcode besteht.

MySQL-Datenbank

Die eigentlichen Inhalte der Website – überwiegend nutzergenerierte Inhalte ­– liegen hingegen in einer MySQL-Datenbank ab. Diese wird im Rahmen von Cloud SQL (einem GCP-Datenbankdienst) nahezu vollständig von Google verwaltet. Dies hat den entscheidenden Vorteil, dass sich der Betreiber weder mit Skalierungsfragen, noch mit Datensicherungen befassen muss.[7]

Lasttests

Um zu überprüfen, ob die Infrastrukturbestandteile korrekt skalieren, wurden abschließend  einige Laststests durchgeführt. Ein Lasttest ist definitionsgemäß ein Softwaretest, der eine sehr hohe Last auf dem zu testenden System erzeugt, um dessen Verhalten zu untersuchen.[8] Ein geeigneter Test hierfür ist z. B. loadtest, da seine Benutzung sehr simpel ist. Mit dem Befehl loadtest <url> -c 10 --rps 1000 -t 60 werden eine Minute lang 1.000 Anfragen pro Sekunde von 10 simulierten Clients an die angegebene URL geschickt. Dies sollte umgehend zu einem bemerkbaren Anstieg der Auslastung führen, wie die nachfolgende Abbildung zeigt.

Auslastung und Skalierung

Auslastung und Skalierung

Hierbei stellt der untere Teil die CPU-Auslastung dar, während der obere die Anzahl der Instanzen zeigt. Somit wird ersichtlich, dass die Anzahl der Instanzen zunimmt, sofern Last auf dem System herrscht.

Fazit

Cloud-Dienste stellen eine mögliche Alternative zu konventionellen unternehmenseigenen Infrastrukturen dar und erfreuen sich mittlerweile großer Beliebtheit. Denn Unternehmen können zum einen Kosten einsparen, da nur die in Anspruch genommene Leistung abgerechnet wird, und können zum anderen blitzschnell auf z. B. Besucheranstürme reagieren, da die zugrundeliegende Infrastruktur automatisch skaliert. Dem gegenüber können allerdings juristische bzw. datenschutzrechtliche Bedenken stehen. Dies gilt es daher vor der Umsetzung zu beachten.

Quellen

[1] Vgl. HDE (2018) S. 3

[2] Vgl. HDE (2018) S. 29

[3] Vgl. Synergy Research Group (2018)

[4] Vgl. Amazon (2018); AWS (o. J.)

[5] Vgl. Tutorials Point (o. J.)

[6] Vgl. Tutorials Point (o. J.)

[7] Vgl. GCP Dokumentation: Google Cloud SQL (o. J.)

[8] Vgl. Wikipedia: Lasttest (Computer) (o. J.) 

Persönliche Empfehlungen für Dich!

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.


* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich stimme zu.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.