Das Thema Cloud hat in den letzten Jahren mehr und mehr an Bedeutung gewonnen. Begriffe wie Cloud Computing, Skalierbarkeit oder Serverless sind aus dem Sprachgebrauch in der IT-Branche nicht mehr wegzudenken. Vor allem die drei großen Anbieter dieser Services – Amazon, Microsoft und Google – sorgen durch immer neue Funktionen und Erweiterungen ihrer Angebote für schier endlose Möglichkeiten. 

Eine Arbeitsgruppe bei OVSoftware hat sich neben ihrer tagtäglichen Arbeit einmal intensiv mit diesem Thema auseinandergesetzt. Im folgenden Artikel berichtet Julian über die Ergebnisse. 

Zukunft Cloud - das wollten wir genauer wissen!

Die weltweiten Umsätze mit Cloud-Infrastruktur-Services lagen 2020 bei ca. 130 Milliarden US-Dollar [1].  2019 waren es noch knapp 100 Milliarden. Anbieter wie Amazon (AWS) bieten aktuell mehr als 200 Services unterschiedlichster Art an. Da ist es nicht einfach, den richtigen Service für einen Usecase zu finden. Oder als Entwickler zu entscheiden, ob eine Entwicklung komplett oder teilweise in die Cloud ausgelagert werden kann. Auch hier spielt die Wahl des Anbieters eine Rolle.

Soll die Anwendung später produktiv genutzt werden, so sind noch weitere Aspekte von Bedeutung. Was sind die Kosten für den Service? Wie ist die Performance? Ist der Service gut dokumentiert? Wie lässt er sich überwachen?

Um der Antwort auf diese Fragen näher zu kommen, haben wir hier beispielhaft einige Teilbereiche genauer untersucht.

Services

Für einen Überblick über die verschiedenen Services haben wir zunächst einmal das Angebot der drei größten Anbieter (AWS, Azure, GCP) verglichen. Hierbei können die angebotenen Services grob in folgende Kategorien unterteilt werden:

Cloud

Alle Anbieter haben diese Bereiche in ihrem Portfolio und bieten verschiedenste Services dazu an. Hierbei unterscheiden sich die Services in ihrer Benamung und Ausprägung. Grundsätzlich werden aber bei allen Anbietern die gleichen Kernfeatures angeboten. 

Ist der Anwendungsfall jedoch sehr speziell, lohnt sich ein genauer Blick in das Produktportfolio, um den passenden Service und Anbieter zu finden. Grundsätzliche Anforderungen, wie das Speichern von Daten, oder das Hosten von VMs, werden bei allen Anbietern erfüllt.

Performance

Leider gibt es im Bereich der Performance bisher kaum wissenschaftliche Studien oder fundierte Aussagen. In einer bereits 2018 durchgeführten Studie wurden die drei großen Cloudanbieter in Bezug auf Skalierbarkeit, Coldstart (die Zeit, die der erste Aufruf einer Funktion benötigt) und Lebenszeit (Dauer, die eine erzeugte Instanz existiert) verglichen. Da sich das Angebot und die verwendeten Mechanismen jedoch ständig weiterentwickeln, sind die 2018 festgestellten Werte nicht mehr sehr aussagekräftig.

Unsere eigenen Erfahrungen beim Testen der verschiedenen Features haben gezeigt, dass AWS und GCP scheinbar besser skalieren und auch der Coldstart deutlich geringer ist als bei Azure.

Kosten

Neben den angebotenen Services ist auch der Preis bei der Entscheidung für einen Anbieter ein relevanter Indikator. Wir haben daher versucht, für einige ausgewählte Services wie die Serverless Functions oder den Betrieb von Docker Containern die Preise der verschiedenen Anbieter zu vergleichen. Hierbei mussten wir feststellen, dass sich die Preismodelle an einigen Stellen unterscheiden und teilweise sehr unübersichtlich sind. 

So fallen die Kosten oft pro Aufruf oder Nutzungsdauer an. Gleichzeitig werden aber fixe Kosten für Netzwerkkomponenten oder Schnittstellen berechnet. Dies macht es im Vorfeld sehr schwierig, Services miteinander zu vergleichen oder vorab eine Aussage über die Kosten zu treffen.

Bei allen Anbietern lassen sich die Kosten der laufenden Services überwachen. So kann zumindest rückblickend festgestellt werden, wie hoch die Kosten für die Nutzung waren und darauf basierend die zukünftigen Kosten geschätzt werden.

Nutzbarkeit und Dokumentation

Grundsätzlich lässt sich festhalten, dass wir bei allen Anbietern in der Lage waren, die gewünschten Services zu erstellen und auszuführen. Alle liefern hilfreiche Dokumentation mit Schritt für Schritt Anleitungen, die den Einstieg vereinfachen.

  • GCP ist hierbei vor allem durch eine gute Dokumentation und gute Docker-Services aufgefallen.
  • Azure konnte mit einem sehr hilfreichen Youtube-Chanel punkten. Zudem haben uns die Erfahrungen, die wir bereits aus bestehenden Projekten im Bereich von VMs bei Azure sammeln konnten, hier den Einstieg erleichtert. 
  • AWS überzeugt durch eine sehr große Vielfalt an Services, was die Plattform aber auch unübersichtlich macht. Es ist teilweise schwierig, den richtigen Service oder die richtige Einstellung zu finden.

Fazit

Grundsätzlich haben wir festgestellt, dass der Einsatz von Cloudanwendungen in einigen Bereichen eine gute Alternative zur klassischen Entwicklung ist. Es gibt viele neue Möglichkeiten, Software zu entwickeln und sehr flexibel an die Bedürfnisse des jeweiligen Projektes anzupassen. Das gilt sowohl für den vollständigen Betrieb einer Softwarelösung in der Cloud wie auch für das Auslagern einzelner Teile.

Alle drei großen Anbieter haben ihre Vor- und Nachteile. Es gilt also gut abzuwägen, bei welchem Anbieter eine Lösung betrieben werden soll. 

In Zukunft werden diese Technologien mehr und mehr auch in der „klassischen“ Softwareentwicklung Einzug halten und schon bald aus keinem Entwicklungsprojekt mehr wegzudenken sein.

Quellen

[1] https://www.statista.com/chart/18819/worldwide-market-share-of-leading-cloud-infrastructure-service-providers/