VERANSTALTUNGEN

it-sa 2018
09.10.18 - 11.10.18
In Nürnberg

plentymarkets Omni-Channel Day 2018
12.10.18 - 12.10.18
In Kassel

Digital Marketing 4Heroes Conference
16.10.18 - 16.10.18
In Wien und München

4. Esslinger Forum: Das Internet der Dinge
17.10.18 - 17.10.18
In Esslingen

Automate IT
18.10.18 - 18.10.18
In Frankfurt am Main

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.

Monitoring-Kontrollfunktionen wichtig

Um ein möglichst gutes Verständnis für das Laufzeitverhalten und die Leistungsfähigkeit einer Applikation zu bekommen, ist es heute nicht mehr ausreichend, über exzellentes Standard-Monitoring zu verfügen, sondern es ist zusätzlich auch notwendig, entsprechende Monitoring-Kontrollfunktionen direkt in die Applikation zu integrieren. Bei einer Applikation, vor der eine Warteschlange Informationen abarbeitet, ist es wichtig zu wissen, wie viele Einträge erfolgreich weiterverarbeitet werden konnten – und wie viele nicht. Mit Hilfe von internem Applikations-Monitoring ist es schnell und ressourcenschonend möglich, diese Fehler zu finden, ohne dabei langwierig große Datenmengen auswerten zu müssen. Zu diesem Zweck gibt es eine Reihe von Tools, die diesen effizienteren und ressourcenschonenderen Ansatz perfekt unterstützen.

Für die Abbildung laufender Prozesse in der Entwicklungsphase eignet sich beispielsweise Prometheus. Die Lösung erstellt Prozesslandkarten und Prozessdiagramme auch als Weblösung. Mit deren Hilfe können Entwickler in ihren Anwendungen Defizite abstellen, Laufzeiten verkürzen und damit Kosten senken sowie die Effizienz nachhaltig steigern beziehungsweise durch Add-Ons weitere Funktionen realisieren. Mit der Auswertung der Analyse solcher Tools können Entwickler ihren Code schlank und effizient gestalten. Die Strukturprotokollierung eignet sich ferner auch dazu, einen tieferen Einblick in die Auswirkungen der Arbeitsweise der Anwendungen zu gewinnen.

Letztendlich sind es gerade Cloud-Ressourcen, die die Entwicklungsarbeit nicht nur effizienter, sondern auch flexibler gestalten. Durch ihre Skalierbarkeit und die Fähigkeit zur granularen Abrechnung lassen sich Anwendungsfälle nicht nur besser skaliert darstellen, auch die genauere Budgetierung von Softwareprojekten wird wesentlich erleichtert.

Pierre-Yves RitschardPierre-Yves Ritschard, CTO von Exoscale

www.exoscale.com

 

GRID LIST
Karsten Glied

Das Ende der deutschen Cloud von Microsoft

Datensicherheit so flüchtig wie eine Wolke? Zum Ende von Microsofts Cloud-Angebot mit…
Sync- and Share

EFSS-Lösung mit neuen Gruppenfunktionen

Mit enormer Schnelligkeit schreitet die Entwicklung der Sync- und Sharing-Lösung Seafile…
Tb W190 H80 Crop Int B832998369895bb41c87df282df5d403

Sommer-Release: Neue ownCloud-Version 10.0.9

Mit Version 10.0.9 erhalten über 25 Millionen ownCloud-Nutzer noch mehr Freiheiten, um…
Tb W190 H80 Crop Int D6a9107bd8d29c8d6ab6ee522dbd2af3

nlx.net – die Cloudplattform der netlogix

Seit Frühjahr 2017 bietet der Nürnberger IT-Dienstleister unter der Marke nlx.net eigene…
Tb W190 H80 Crop Int 5a636064a6afad93349f1fc57fb4ddaa

Sichere Daten mit SaaS Backup für Office 365

Im Jahr 2017 reifte bei der Profi Engineering Systems AG die Entscheidung, einen…
Tb W190 H80 Crop Int Def4294cf47182d57a9356b883ae5df4

Dos & Don‘ts: Hinweise für die Migration in die Cloud

In der Cloud arbeitet es sich effizienter – sie ist skalierbar, flexibel und spart…
Smarte News aus der IT-Welt