Auswahl an Cloud-Native Applications

Mit dem richtigen Cloud-Anbieter durchstarten

19.05.2017
Von 
Daniel Klemm ist Senior Analyst bei Crisp Research mit Fokus auf Big Data, Machine Learning, Cloud Computing und Customer Journey. Er hat mehr als 12 Jahre Erfahrung im Bereich verteilter Systeme und dem Gewinnen von Erkenntnissen aus großen Datenmengen. Als Startup CTO konzentrierte sich seine Arbeit unter anderem auf die Bereiche Skalierbare Cloud Architekturen, Marketing Automation sowie Programmatic Advertising.
Bei der Auswahl des richtigen Cloud-Providers spielen vor allem Fragen hinsichtlich Infrastruktur, Plattform-Services und Kosten eine entscheidende Rolle. Dieser Artikel enthält einige Listen zur Entscheidungshilfe.

Cloud-Native-Anwendungen sind Anwendungen, die für den Betrieb in der Cloud entwickelt wurden. Häufig kommt hierbei eine (micro)service-orientierte Architektur zum Einsatz und nicht selten wird die Applikation in Container gepackt. Ein weiteres typisches Merkmal ist der Einsatz von Continuous Software Delivery. Es kommt vor, dass Entwicklungsteams die Verantwortung für Entwicklung und Betrieb tragen.

Der Markt ist groß. Welcher Cloud-Anbieter ist der richtige?
Der Markt ist groß. Welcher Cloud-Anbieter ist der richtige?
Foto: ra2studio - shutterstock.com

Die Wahl des richtigen Cloudproviders ist nicht ganz einfach, denn es gilt eine Reihe von Fragen zu beantworten:

  • Gibt es Anforderungen bezüglich des Rechenzentrumsstandorts (z.B. Datenhaltung in Deutschland)?

  • Wird eine globale Infrastruktur benötigt (internationales Geschäft)?

  • Inwieweit kann ich die Provisionierung von Ressourcen automatisieren?

  • Wie geeignet ist das Cloud-Angebot für Cloud-Native-Anwendungen?

  • Welche Plattform-Services werden geboten, die für das Vorhaben interessant sind?

  • Welche Kosten entstehen durch den Betrieb der Anwendung in der Cloud?

Neben diesen Fragestellungen lohnt es sich auch zu betrachten inwieweit man auf sich allein gestellt ist und welche Möglichkeiten es gibt, den Einstieg leichter zu gestalten. Daher lohnt es sich zu prüfen wie hilfreich die Dokumentation des Angebots ist und welche weitergehenden Ressourcen für Entwickler (Whitepapers, Best Practices, etc.) verfügbar sind.

Darüberhinaus macht es Sinn zu schauen, ob es eine lebendige Community, wie zum Beispiel Meetup, gibt und wie diese organisiert ist. Denn ein Austausch mit anderen Anwendern kann eine wertvolle Hilfe darstellen. Ebenso sollte man die Frage nach den Support-Angeboten des Anbieters (z.B. Zugriff auf Solution Architects) und der Verfügbarkeit von externen Dienstleistern/Beratern betrachten, um sicherzustellen, dass man - falls benötigt - Unterstützung bekommen kann.

Eine allgemeingültige Antwort, welcher Anbieter der geeignetste ist, gibt es nicht. Je nachdem welche konkreten Anforderungen man hat und wie stark man auf Plattform-Services setzen möchte, fällt die Antwort anders aus. Wenn man beispielsweise einen Use Case mit Bilderkennung abbilden möchte, kann es Sinn machen auf einen passenden Plattform-Service zurückzugreifen und so Zeit und Entwicklungskosten zu sparen. Je nach Wichtigkeit kann das die Entscheidung für den einen oder anderen Cloudanbieter maßgeblich beeinflussen.

Optionen der Cloud-Plattform-Auswahl

Im Folgenden sollen kurz einige Optionen für die Anbieterwahl vorgestellt werden - ein Anspruch auf Vollständigkeit wird hierbei in keinster Weise erhoben. Neben den in Deutschland etablierten großen Namen aus den USA, befinden sich mit AliCloud und der Open Telekom Cloud zwei Newcomer, die relativ neu auf dem Deutschen Markt eine Cloud-Lösung anbieten, darunter.

Die Anbieter unterscheiden sich teils deutlich hinsichtlich der geografischen Ausdehnung der Infrastruktur, Größe und der Angebotsvielfalt (Platform Services), die über klassisches Infrastructure-as-a-Service (IaaS) hinausgeht. Auch ist das Mind-Set, mit dem das Cloud-Angebot aufgesetzt wurde, teils stark unterschiedlich, was sich bei intensiverer Beschäftigung mit den Anbietern zeigt. Das ist auch verständlich, denn alle Anbieter haben eine Historie in deren Verlauf sich das Cloud-Angebot entwickelt hat. Gerade die Historie der Unternehmen und der Challenges die man selbst in der Vergangenheit lösen musste, spiegeln sich in den Cloud-Angeboten wieder.

Ausgewählte Public Cloud Anbieter

AliCloud

Amazon Web Services

Google Cloud Plattform

IBM Cloud

Microsoft Azure

Open Telekom Cloud

Herkunft

China

USA

USA

USA

USA

Deutschland

Infrastruktur

global

global

global

global

global

Deutschland

Rechenzentrum in
Deutschland

Ja

Ja

Für 2017 angekündigt

Ja

Ja

Ja

Anzahl Plattform
Services

mittel

hoch

hoch

hoch

hoch

niedrig

Das größte Angebot an Plattform-Services haben AWS, Google, Microsoft und IBM, welches auch die Anbieter sind, die eine globale Infrastruktur haben. Die Telekom kommt eher für den Einsatz in Europa infrage und Alibaba wird spannend, wenn man Infrastruktur in Asien benötigt. Als Besonderheit kann die AliCloud einen Rechenzentrumsstandort im Nahen Osten aufweisen. Globale Infrastruktur ist ein dehnbarer Begriff, daher macht es Sinn, bei der Auswahl genauer hinzuschauen, wie die Standorte der Rechenzentren auf dem Globus verteilt sind.

Eignung für Cloud-Native Applikationen und digitale Workloads

Cloud-Native-Anwendungen sind ganz allgemein Anwendungen, die gezielt für den Einsatz in der Cloud entwickelt werden. Das kann man auf unterschiedliche Weise tun. Häufig wird allerdings als Gemeinsamkeit einem service-orientierten Ansatz gefolgt. Hierbei werden Funktionalitäten in Services gekapselt, über die typischerweise mittels REST-API kommuniziert wird. Für ein einfaches Setup und leichten Betrieb kann man auf Plattform-as-a-Service (PaaS) Angebote zurückgreifen.

Sind die Services betont klein gehalten, spricht man von Microservice-Architekturen, wo die einzelnen Services gerne in Container gepackt werden. Wachsender Popularität erfreut sich auch “Function-as-a-Service” (FaaS), wo kleinste Code-Snippets als Funktionen implementiert und deployed werden. Hierbei spricht man von Serverless Computing, wenn ein Cloud Service genutzt wird, der Provisionierung und Management der Infrastruktur weg abstrahiert. Function-as-a-Service kommt häufig bei Event-Driven Architekturen zum Einsatz. Grundsätzlich kann man die populären Betriebsmodelle nach Belieben zusammenmixen und auch Plattform-Services und externe APIs mit einbeziehen.
Im Extremfall gibt es dann auch Services mit wenig eigener Logik, deren Zweck sich eher darauf beschränkt, APIs miteinander zu verbinden. Man spricht dann auch etwas scherzhaft von API-Plumbing. Das ist dann das, was früher Glue Code war, nur in der verteilten Service Welt.

Übersicht Cloud-Native Basics

AliCloud

Amazon Web
Services

Google Plattform
Cloud

IBM Cloud

Microsoft
Azure

Open
Telekom
Cloud

Plattform-as-a-Service
Angebot

Nein

Ja

Ja

Ja

Ja

Nein

Docker-Cluster Eigenbetrieb

Möglich

Möglich

Möglich

Möglich

Möglich

Möglich

Docker Management Service

Ja

Ja

Ja

Ja

Ja

Ja

Function-as-a-Service
Eigenbetrieb

Möglich

Möglich

Möglich

Möglich

Möglich

Möglich

Serverless Angebot

Nein

Ja

Ja

Ja

Ja

Nein

Bei allen betrachteten Anbietern kann man sein Docker-Cluster selbst managen, während alle Anbieter zudem eine mehr oder weniger brauchbare Option anbieten, mit wenig Aufwand ein Cluster zum Laufen zu bekommen. PaaS-Angebote finden sich ebenso bei den bekannten US-Anbietern wie FaaS/Serverless-Angebote. Bei den anderen beiden Anbietern muss man sich entsprechend selbst darum kümmern, etwas Vergleichbares zu betreiben.

Häufige Building Blocks in Cloud-Native-Applikationen zum Speichern von Daten sind unter anderem ein Object Storage sowie Relationale oder NoSQL Datenbanken. Messaging ist in verteilten System ein ganz wichtiges Thema. Für das Bereitstellen von APIs kommen gerne Management Lösungen wie API Gateways zum Einsatz, über die sich idealerweise Authentifizierung und Monitoring sauber abbilden lassen. In der Tabelle wird die Verfügbarkeit dieser wichtigen Kernkomponenten als gemanagter Service, bei dem die Verantwortung für den Betrieb ausgelagert ist, pro Anbieter aufgetragen. Je nach persönlicher Präferenz bezüglich eines Vendor-Lock-In wird man auf derartige Services setzen oder darauf verzichten.

Übersicht Basic Building Blocks als Service

AliCloud

Amazon Web Services

Google Cloud Plattform

IBM Cloud

Microsoft Azure

Open Telekom Cloud

Object Storage

Ja

Ja

Ja

Ja

Ja

Ja

Relational Database

Ja

Ja

Ja

Ja

Ja

Ja

NoSQL Database

Ja

Ja

Ja

Ja

Ja

Nein

Messaging

Ja

Ja

Ja

Ja

Ja

Ja

API Gateway

Nein

Ja

Ja

Ja

Ja

Nein

Cloud-Native-Anwendungen können grundsätzlich auf allen Clouds betrieben werden. Der Unterschied liegt im Aufwand für Setup und Betrieb. Das betrifft sowohl die Environments für die Anwendungen, als auch die Basis Building-Blocks wie Queue-Services und Managed Databases bis hin zu umfangreicheren Mobile- oder IoT-Backend-Lösungen, die einem zur Verfügung stehen.
Zudem lohnt sich ein Blick auf die Entwicklertools und Angebote für Continuous Delivery sowie die APIs zur Provisionierung von Ressourcen bei der Wahl des passenden Anbieters.