Berechnen von Auslastungsmustern
Wäre der Datenverkehr zu einer Cloudressource (wie einem virtuellen Computer oder einer Gruppe von virtuellen Computern) oder einer Web-App konstant, wäre eine Skalierung nicht erforderlich. Ein Cloudadministrator könnte einfach die zur Verarbeitung der Last erforderliche Anzahl von Instanzen bereitstellen und fertig. Doch die Auslastungsmuster von Datenverkehr sind in aller Regel schwankend, manchmal auf vorhersehbare Weise und manchmal nicht. In der Praxis muss ein Administrator die Auslastung der von ihm verwalteten Ressourcen diagnostizieren und mithilfe von Skalierung sicherstellen, dass das System die Nachfrage erfüllen kann.
Bevor in der nächsten Einheit die Skalierungsmethoden erläutert werden, erfahren Sie hier, warum eine Skalierung überhaupt erforderlich ist. Dafür werden im Folgenden einige der gängigsten Auslastungsmuster für virtuelle Computer und andere Cloudressourcen beschrieben.
Konstantes Wachstum
Einer der Hauptgründe für eine Skalierung ist das von der Nachfrage gesteuerte konstante Wachstum. In Abbildung 1 wird der Datenverkehr auf der Website eines Unternehmens über einen Zeitraum von 24 Monaten aufgezeigt. Das Unternehmen wächst schnell, und der Datenverkehr auf der Website spiegelt dies wider. Wenn wir davon ausgehen, dass ein Webserver 5.000 Anforderungen pro Zeiteinheit verarbeiten kann, beginnt das Unternehmen mit möglicherweise drei oder vier Webservern, benötigt aber zwei Jahre später ungefähr 20, um mit der zunehmenden Nachfrage Schritt zu halten und seine Kunden weiterhin gut bedienen zu können.
Abbildung 1: Konstantes Wachstum
Ein konstantes Wachstum gehört zu den am einfachsten zu kompensierenden Auslastungsmustern, da Änderungen konstant und schrittweise erfolgen. Eine Skalierung könnte vermutlich mithilfe physischer Server durchgeführt werden, da es möglich ist, vorauszusagen, wann der nächste Server (oder eine Gruppe von Servern) benötigt wird. Dies gewährt eine Vorbereitungszeit von mehreren Wochen, wenn nicht sogar Monaten. Cloud Computing ermöglicht es jedoch, neue virtuelle Server innerhalb weniger Minuten online zu schalten. Und auch wenn der Trend über 24 Monate hinweg ein konstantes und vorhersagbares Wachstum aufzeigt, kann die Auslastung innerhalb kürzerer Zeiträume erheblich schwanken. Cloud Computing ist viel anpassungsfähiger an Mikrotrends als die Skalierung mit physischen Servern.
Ständig schwankende Auslastungen
Die von Cloud Computing angebotene schnelle Flexibilität ist von entscheidender Bedeutung, wenn die Auslastung in relativ kurzer Zeit auf unvorhersehbare Weise schwankt. Abbildung 2 zeigt die Auslastung einer Website über einen Zeitraum von 24 Stunden. Wenn wir wieder davon ausgehen, dass ein Server 5.000 Anforderungen pro Zeiteinheit verarbeiten kann, variiert die Anzahl der benötigten Server im Verlauf des Tages zwischen zwei und 16. Wir könnten diesen Datenverkehr nutzen, indem wir 16 virtuelle Webserver jederzeit online lassen, aber denken Sie daran, dass Clouddienstanbieter für VMs auch im Leerlauf Gebühren erheben. Die übermäßige Kapazität würde nicht nur Energie verschwenden, sondern auch die Kosten ungefähr verdoppeln.
Abbildung 2: Ständig schwankende Auslastungen
Zyklische Auslastungen
Abbildung 3 zeigt eine Auslastung, die sich in einem regulären und einigermaßen vorhersagbaren Muster vergrößert und verringert, z. B. nimmt die Nachfrage während der Arbeitszeiten zu und am Abend und in der Nacht wieder ab. Wenn die Auslastung ihren Höchstwert erreicht, werden ungefähr 20 Server benötigt, um die Nachfrage zu bewältigen, wobei wieder von 5.000 Anforderungen pro Zeiteinheit pro Server ausgegangen wird. Es ist nicht sinnvoll, physische Server 24 Stunden am Tag immer wieder ein- und auszuschalten. Virtuelle Server können hingegen problemlos mit einem Zeitplan bereitgestellt und wieder deaktiviert werden, um sicherzustellen, dass die Serverkapazität ungefähr dem Bedarf entspricht. Physische Server, die sich täglich 12 Stunden im Leerlauf befinden oder nur leicht ausgelastet sind, stellen unerwünschte Investitionsausgaben und einen unnötigen Energieverbrauch dar. Virtuelle Server sind ebenfalls mit Kosten verbunden, aber ihre Bereitstellung kann aufgehoben werden, wenn sie nicht benötigt werden, und bei Bedarf sind sie schnell wieder aktiviert.
Abbildung 3: Zyklische Auslastung, die sich alle 24 Stunden wiederholt
Unvorhersehbare Spitzenwerte
Eines der schwierigsten Muster, mit dem man sich aus Kosten- und Wartungsgesichtspunkten auseinandersetzen muss, ist das Vorkommen von unvorhersehbaren Spitzenwerten (Abbildung 4). Wenn Spitzenwerte vorhersagbar sind, z. B. wenn die Website einen Pizzalieferservice betreibt, der an Wochenenden und Feiertagen stärker ausgelastet ist, dann kann zusätzliche Kapazität eingeplant werden. Wenn sie jedoch nicht vorhersagbar sind, müssen wir jederzeit darauf vorbereitet sein, mit ihnen umzugehen.
Abbildung 4: Unvorhersehbare Spitzenwerte
Wenn es zu hohen Kosten kommt (die Kosten der Server, die zur Bewältigung von Spitzenlasten bereitgestellt werden, die bei geringem Datenverkehr jedoch relativ wenig ausgelastet sind), können diese im Bereich oberhalb der Kurve und einer durch den höchsten Punkt gezogenen horizontalen Linie dargestellt werden. In diesem Fall sind die Kosten für die Bereitstellung von 100.000 Anforderungen pro Zeiteinheit für die Auslastung in Abbildung 4 erheblich höher als diejenigen für die Bereitstellung derselben Kapazität in Abbildung 3.
Wenn wir das Ausmaß der Spitzennachfrage (nicht notwendigerweise den Zeitpunkt der Nachfrage) vorhersehen können, ohne uns dabei um die Kosten zu kümmern, können wir jederzeit für ausreichend Kapazität sorgen, indem wir genügend Server für die höchsten Auslastungen bereitstellen. Mit Cloud Computing können wir Ressourcen online schalten, wenn sie benötigt werden, und sie offline schalten (und verhindern, dass Gebühren für sie anfallen), wenn dies nicht der Fall ist. Diese Flexibilität wird durch die Skalierung von Cloudressourcen erreicht. Sehen wir uns das Konzept der Skalierung genauer an, und auch, warum es ein wichtiger Faktor für die Wirtschaftlichkeit von Cloud Computing ist.