KEINE ÜBERRASCHUNG: CLOUD BRINGT FLEXIBILITÄT FÜR ENTWICKLER

Von Pierre-Yves Ritschard, CTO von Exoscale
Clouds Code

 

Einer der größten Vorteile der Cloud ist ihre Flexibilität und vor allem ihre Skalierbarkeit. So kann die Unternehmens-IT die Ressourcen bereitstellen, die die Nutzer auch tatsächlich in Anspruch nehmen. Dabei gibt es einige Faktoren, die berücksichtigt werden müssen. Einige davon betreffen den auf der Cloud ablaufenden Code, die Architektur und den laufenden Betrieb.

Skalierung der Cloud

Für die Skalierung einer Cloud gibt es im Wesentlichen drei Ansätze. Der erste ist die vertikale Skalierung. In diesem Fall werden die gegebenen Ressourcen erweitert – also dem virtuellen Server wird mehr CPU-Leistung, Arbeitsspeicher oder Speicherplatz hinzugefügt. Dieser Ansatz ist der einfachste, da lediglich Systemkomponenten hinzuzufügen sind, die Administration bleibt dieselbe. Anwendungsfelder hierfür sind beispielsweise der Einsatz von relationalen Datenbank-Systemen. Der zweite Ansatz ist die horizontale Skalierung. Hierbei bleibt die Beschaffenheit eines virtuellen Servers gleich, ihm wird eine zweite Instanz hinzugefügt. Typischer Anwendungsfall dafür ist ein Webserver. In diesem Fall ist die Administration etwas anspruchsvoller. Die Lasten werden unter den virtuellen Servern mittels eines Load Balancers verteilt. Schließlich gibt es den diagonalen Ansatz, der eine Kombination aus horizontalem und vertikalem Modell entspricht. In diesem Fall werden zunächst die Kapazitäten eines Servers erweitert, bevor ein zweiter Server hinzugezogen wird. Hier wird der Aufwand für die Administration begrenzt, da durch die Phase der vertikalen Skalierung einiges an Ressourcenbedarf aufgefangen wird.

Mooresches Gesetz gültig?

Nutzt man virtuelle Server um beispielsweise Softwareentwicklung zu betreiben, ist die Versuchung groß, bei Erreichen eines Performance-Engpasses einfach die Server zu skalieren – und dies immer und immer wieder. Dass sich Entwickler oft auf den technischen Fortschritt verlassen, ist ein Ergebnis des Mooreschen Gesetzes. Es besagt, dass sich die Komplexität integrierter Schaltkreise mit minimalen Kosten für die Komponenten alle 12 bis 24 Monate verdoppeln. Als der Namensgeber dieser Regel, Gordon Moore, das Gesetz formulierte, verstand er unter Komplexität die Anzahl der Schaltkreiskomponenten auf einem integrierten Schaltkreis. Jedoch hat sich diese Regel etwas abgeschwächt. Heute unterscheidet sich beispielsweise ein modernes Notebook von einem drei Jahre alten Gerät nicht wesentlich. Es finden sich heute möglicherweise ein besseres Display oder ein sparsamerer Umgang mit der Energieversorgung. Der Chipsatz und die Ausstattung mit Arbeitsspeicher dürften jedoch heute oftmals äquivalent zu einem drei Jahre alten Modell sein.
Flexibilität in der Cloud-Umgebung

Was sich allerdings geändert hat ist die Anzahl der Kerne in jedem einzelnen Rechner. Dies zieht aber nach sich, dass in der Anwendungsprogrammierung das Threading immer wichtiger wird. So unterstützt Java Multithreading und bietet gleichzeitig Funktionen für den sicheren Ablauf paralleler Threads. Dieses Thema ist bereits gut dokumentiert. Der Programmieransatz ist oft weniger komplex und erfordert viele Prozesse. Daraus resultiert, dass nicht mehr nur der vertikale Skalierungsansatz maßgeblich ist, sondern auch fortschrittliche Skalierungsmodelle, wie etwa die horizontale Skalierung, nutzbar werden. Dazu sollten Entwicklungsumgebungen derart gestaltet sein, dass sie maschinenübergreifend Ressourcen nutzen können – was insbesondere eine Cloud-Umgebung bietet. Hier steht eine programmierbare Umgebung zur Verfügung, die mittels Dienstprogrammen angepasst werden kann. Auf diese Weise werden nur die Ressourcen genutzt – und auch bezahlt – die tatsächlich in Anspruch genommen werden. Die technische Umsetzung der Kapazitätsplanung erfolgt dabei seitens des Cloud-Anbieters. Die Nutzung eines Cloud-Dienstes für die Entwicklung hat darüber hinaus den Vorteil, dass die Entwicklungsplattform nicht selbst angeschafft werden muss – der Preis für die Inanspruchnahme der Entwicklungsumgebung kann so besser und präziser in die Entwicklungskosten eingerechnet werden.

Damit können sich Entwickler auf ihre Kernaufgaben konzentrieren, ohne sich um die Plattform kümmern zu müssen. Die Wartung der Entwicklungsserver würde sonst ebenfalls beim Entwicklerteam angesiedelt sein, mit allen Nebeneffekten wie etwa einem vierundzwanzigstündigen Notdienst.

 

continue reading at it-daily.net