Was Cloud Hoster von Vögeln und Fischen lernen können

Die Herausforderung für Cloud Hosting Anbieter besteht darin, aus den vielen einzelnen Knoten eine Wolke zu bilden. Insbesondere ist dabei aber wichtig, dass dies möglichst effizient geschieht.
Die Auslastung der Knoten in der Wolke muss immer so hoch gehalten werden, dass dem Betreiber möglichst geringe Kosten entstehen. Denn nur so kann der Betreiber erstens überhaupt existieren, schliesslich muss jedes Unternehmen Gewinne machen. Zweitens ist der Betreiber aber auch nur so in der Lage die eigenen Kosten zu senken und kann einen Teil dieses Vorteils an die eigenen Kunden weitergeben indem die eigenen Preise gesenkt werden.
Die Koordination vieler einzelner Objekte, die Syncronisation, ist dabei ein allgemeines Problem, dass nicht nur im Zusammenhang mit Servern als Knoten beim Cloud Computing auftritt. Warum also, sollte man nicht mal einen Blick über seinen technischen Tellerrand werfen und sich Inspiration in der Natur holen?
Steven Strogatz zeigt am Beispiel von Fischen und Vögeln, wie diese Individuen ihre Handlungen syncronisieren und scheinbar als Einheit handeln. Das Video dazu, dass im Rahmen der TED Talks entstanden ist, erlkärt das Prinzip sehr anschaulich.
Der Schlüssel scheint dabei in der Simplizität der Regeln zu liegen. Dies scheint auf den ersten Blick in der Tiewelt wesentlich einfacher zu sein, als im Hinblick auf Server in den Wolken. Neben verschiedensten Problemen, die zur Nichterreichbarkeit eines Knotens führen können, gibt es noch unzählige Faktoren, die die Geschwindigkeit einzelner Knoten beeinflussen können. Aber vielleicht liegt hier gerade der Ansatz, vielleicht muss man radikal auf zwei Kriterien reduzieren.
Erstens, ist der Server erreichbar, ja oder nein. Zweitens, ist der Server ausgelastet, ja oder nein. Abhängig davon kann dann bestimmt werden ob der Knoten eine Aufgabe die an die Wolke gestellt wurde bearbeiten kann. Auf diese Weise kann die Wolke die Vielzahl der Anfragen schnell beantworten.
Ganz so simpel ist es dann aber wahrscheinlich doch nicht. Wenn ein Knoten nicht erreichbar ist, muss ein weiterer zur Wolke hinzugefügt werden. Wenn er allerdings ausgelastet ist, ist es natürlich für die Kosten entscheidend warum dies so ist. Wenn der Knoten nämlich ausgelastet ist aber nicht an seiner tatsächlichen Kapazitätsgrenze arbeitet geht Rechenleistung verloren. Gerade bei einer Vielzahl von Knoten ist es aber überaus ineffizient einzelne Knoten zu analysieren. Die Chance besteht darin, durch eine Vielzahl identischer Knoten alle zu optimieren, indem man einen optimiert.
Hier zeigt sich, warum Virtualisierung für Cloud Computing unerlässlich ist. Mit Hilfe von Virtualisierung kann eine Trennung zwischen physischer Hardware und Betriebssystem der Knoten erreicht werden, die es erlaubt auf allen Hosts identische Knoten zu betreiben. Dadurch reduziert man den Optimierungsaufwand auf zwei Stellen. Zum einen die Optimierung der Virtualisierungslösungen für die verschiedenen Hardwaregenerationen. Wenn diese Abstraktion hinreichend optimiert ist kann man sich auf die Optimierung der virtuellen Nodes konzentrieren. Auf diese Weise erreicht man hoffentlich, mit minimalem Aufwand ein Höchstmaß an Performance. Et voila, die effiziente Wolke.
Soweit jedenfalls die Theorie. In der praktischen Umsetzung ist das natürlich wesentlich aufwendiger, als es sich hier im Blog darstellt. Der Grundgedanke sollte allerdings immer im Hinterkopf behalten werden. Weil Perfektion wohl unerreichbar ist, muss man simple Regeln finden an Hand derer man optimiert. Dadurch und durch die Vereinheitlichung der einzelnen Teile kann dann ein hinreichend effizienter Aufbau entstehen. Denn Effizienz ist immer das Delta aus Aufwand und Nutzen.









Leave your response!