Multi-Cloud-Architekturen sind die Realität: Microservices sind die Lösung

Das Thema Multi-Cloud-Sourcing nimmt auch in Deutschland immer mehr Fahrt auf. Bereits über 12 Prozent der deutschen mittelständischen Unternehmen beschäftigen sich heute mit dieser Deployment-Variante. In Zukunft planen 36 Prozent der mittelständischen IT-Entscheider mit Multi-Cloud-Architekturen. Dies aus guten Gründen. Einerseits sollte kein Unternehmen alle seine Eier in ein Nest packen. Anderseits existiert der von den Anbietern oft proklamierte One-Stop-Cloud-Shop derzeit nicht - weder wird er in der Zukunft existieren.

Die Kernfrage, die sich beim Multi-Cloud-Sourcing stellt, ist wie sich dies technisch lösen lässt. Vorreiter in diesem Segment sind wieder einmal die US-amerikanischen Cloud-Pioniere. Allen voran der Video On-Demand Anbieter Netflix und seit Neustem auch die Musik Streaming-Plattform Spotify.

Multi-Cloud_Mittelstand

Quelle: Studie ,,Multi-Cloud-Management im deutschen Mittelstand" in Kooperation mit der Nexinto GmbH

Gründe für Multi-Cloud-Umgebungen

Der Einsatz einer breit ausgelegten Cloud-Deploymentstrategie (Multi-Cloud) steht bei Crisp Research permanent im Fokus von Diskussionen, auf Panels oder in Beratungsmandaten mit CTOs und IT-Infrastrukturleitern. Gründe für deren Nutzung sind vielfältiger Natur und IT-Entscheider sollten ein großes Interesse daran haben, Multi-Cloud-Sourcing auf ihre Agenda zu schreiben. Etwaige Cloud-Architekturen helfen dabei den folgenden Herausforderungen zu begegnen:

  • Risikomanagement. Aus Risikomanagementsicht und der Vermeidung eines vollständigen Lock-ins, gehört zu einer ganzheitlichen Cloud-Strategie mehr als einen Anbieter zu berücksichtigen, um das Ausfallsrisiko zu minimieren und darüber hinaus Optionen für einen Wechsel offen zu halten.
  • Kein One-Stop-Cloud-Shop. Es existiert kein Cloud-Anbieter, der über ein vollständiges Portfolio an Services und Lösungen verfügt, welches sämtliche Anforderungen eines Unternehmens erfüllt. Ein vollständiger individueller Cloud-Stack besteht aus Services von mehr als einem Cloud-Anbieter.
  • Innovationspotentiale ausschöpfen. IT-Entscheider, die ihre Fachabteilungen und Entwickler mit Innovationen versorgen wollen, schauen sich bei mehr als einem Anbieter um. Schließlich existiert nicht DIE Innovationsmaschine in der Cloud. Stattdessen bringen immer wieder andere Anbieter neue Service heraus, die einem Unternehmen dabei helfen, schneller erfolgreicher zu sein. Unterschiedliche Innovationen werden somit von mehreren Anbietern bezogen.
  • Compliance-Anforderungen. Insbesondere wenn es um das Thema Daten (Stichwort: Data Gravity) geht, spielen Multi-Cloud-Szenarien eine wichtige Rolle. So lassen sich bspw. rechtlich behaftete Daten bei einem Anbieter speichern, der die notwendigen juristischen Rahmenbedingungen (Datenschutz, Datenlokalität) sicherstellen kann. Die Services eines weiteren Anbieters greifen dann auf die Daten zu, ohne diese zu bewegen. Die Rechenleistung und Innovation kommt dann sozusagen zu den Daten und die Daten müssen nicht dorthin bewegt werden.
  • Performance-Probleme. Performance gehört in der Cloud zu einer der großen Herausforderungen, wenn es darum geht, Services und Daten schnell an den Kunden auszuliefern (Stichwort: Latenz). Werden die jeweiligen Services und Daten in die Nähe der entsprechenden Zielkunden gebracht, lässt sich diese Hürde damit umgehen. Dies muss insbesondere dann berücksichtigt werden, wenn ein Cloud-Anbieter in einem Ländermarkt nicht mit einem eigenen Rechenzentrum vor Ort ist. So lässt sich ggf. auf einen weiteren Anbieter ausweichen, der bereits vor Ort ist, um die Kunden performant zu bedienen.

Um ein besseres Verständnis für Multi-Cloud-Szenarien zu bekommen, hilft es, sich das Lieferkettenmodell aus der Automobilindustrie als Beispiel heranzuziehen. Ein Automobilhersteller setzt auf unterschiedliche (z.T. redundante) Lieferanten, die ihn mit einzelnen Komponenten, Baugruppen oder fertigen Systemen beliefern. Am Ende fügt der Automobilhersteller die Just-in-time gelieferten Teile in seinen Montagewerken zusammen.

Ein Multi-Cloud-Szenario adaptiert die Idee der Automobilindustrie, indem mit mehr als einem Cloud-Anbieter (Cloud-Zulieferer) zusammengearbeitet wird, um am Ende alle Services aus dieser Cloud-Supply-Chain in die eigene Cloud-Applikation bzw. Cloud-Umgebung zu integrieren.

Multi-Cloud-Computing_Cloud-Supply-Chain

Im Rahmen der Cloud-Supply-Chain stehen drei unterschiedliche Lieferebenen zur Verfügung, die sich für die Entwicklung einer Cloud-Applikation oder dem Aufbau einer Cloud-Umgebung einsetzen lassen:

  • Microservice: Microservices sind granulare Dienste wie Microsoft Azure Notification Hub, Microsoft Azure Scheduler, Amazon Route 53 oder Amazon SQS, die sich nutzen lassen um eigene Cloud-Native Applikationen zu entwickeln. Microservices lassen sich jedoch auch als Teil einer Anwendung integrieren, die in einer eigenen Umgebung betrieben wird und sich durch die Funktionalität des Microservice erweitern lässt.
  • Module: Ein Modul kapselt ein Szenario für einen bestimmten Anwendungsfall ab und stellt damit eine fertige Teilanwendung zur Verfügung. Hierzu gehören bspw. Microsoft Azure Machine Learning und Amazon Kinesis. Module lassen sich wie Microservices für die Entwicklung bzw. die Integration von Anwendungen nutzen, bieten aber einen größeren Umfang hinsichtlich ihrer Funktionalität.
  • Complete System: Bei einem Complete System handelt es sich um eine SaaS-Applikation, also eine vollständige Anwendung, die sich direkt im Unternehmenskontext nutzen lässt, aber noch anhand von Schnittstellen zu anderen bestehenden Systemen integriert werden muss.

Eine Cloud-Umgebung bzw. Cloud-Applikation greift im Multi-Cloud-Modell auf mehr als einen Cloud-Zulieferer zurück und integriert hierbei mehrere Microservices, Module und Complete Systems unterschiedlicher Anbieter. In diesem Modell entwickelt ein Unternehmen den Großteil seiner Umgebung/ Applikationen selbst und erweitert die Architektur um weitere externe Services, deren Aufwand zu groß wäre, um sie intern extra neu zu entwickeln.

Die Cloud-Supply-Chain ist ein wichtiger Bestandteil der „Digital Infrastructure Platform“ (DIP) und sollte berücksichtigt werden, um von der Vielfalt unterschiedlicher Cloud-Infrastrukturen, -Plattformen und -Applikationen zu profitieren. Fertige Lösungsszenarien (Cloud Module) erleichtern es zudem den Entwicklungsaufwand zu reduzieren und geben Anstöße für neue Ideen.

Netflix und Spotify sind die Vorreiter der Multi-Cloud-Bewegung

Zwei Unternehmen, die den Nutzen von Multi-Cloud-Szenarien für sich entdeckt haben, sind Netflix und Spotify. Nachdem Netflix zu Beginn mit eigenen Rechenzentrumsressourcen begonnen hat, um sein Video On-Demand Angebot bereitzustellen, wurden immer mehr Funktionen auf die Cloud-Infrastruktur der Amazon Web Services (AWS) ausgelagert. Hierfür hat sich Netflix ein riesiges Set an Tools und Services entwickelt, mit denen u.a. der hochverfügbare Betrieb der virtuellen Netflix-Infrastruktur auf der Amazon Cloud sichergestellt wird. Die sogenannte Simian Army  ist Teil des, eine Sammlung aller Netflix Services, die unter der Open Source Lizenz zur Verfügung stehen. Der deutsche eCommerce-Anbieter Zalando geht mit seinem eigenen Framework STUPS.io einen ähnlichen Weg. Nach nun mehr sieben Jahren(!) ist Netflix jetzt All-in mit der Amazon Cloud gegangen. Als letzte Applikationen wurden im Januar 2016 die Infrastruktur für die Abrechnung sowie die Services für das Daten-Management der Kunden und Mitarbeiter auf die AWS Cloud migriert.

Spotify gehört ebenfalls zu einem der Vorzeigekunden von AWS. Der Streaming-Anbieter nutzt bevorzugt den Object Storage Amazon S3, um dort die riesigen Datenmengen an Musikdateien zu speichern, und das Content Delivery Network (CDN) Amazon CloudFront, über das die Musik dann zum Kunden gestreamed werden. Im Rahmen seiner neuen Cloud-Infrastruktur-Strategie geht Spotify nun dazu über, neben AWS ebenfalls Services von der Google Cloud Platform (GCP) einzusetzen. Anhand von Google BigQuery sollen die während der Nutzung entstehenden Nutzer-Daten erfasst und analysiert werden. Das Projekt soll innerhalb der kommenden 18 Monate abgeschlossen werden. Hingegen sollen die Musikdateien weiterhin in Amazon S3 gespeichert werden und über Amazon CloudFront zu den Nutzern gelangen.

Spotify baut sich somit eine Multi-Cloud-Umgebung bestehend aus verschiedenen Services von AWS und Google auf. Wie Spotify dies technisch umsetzen wird, ist noch nicht bekannt. Ein anderes Unternehmen, welches sich mit Multi-Cloud-Szenarien beschäftigt, ist wieder einmal Netflix. Dessen Multi-Cloud-Lösung ist bereits fertig und nennt sich „Spinnaker“.

Spinnaker hilft Netflix beim Multi-Cloud-Sourcing

Bereits im November 2015 hat Netflix „Spinnaker“, eine Continuous-Delivery- Plattform veröffentlicht. Damit ist es Netflix möglich, neue Funktionen und Updates in sehr kurzen Release-Zyklen über mehrere Cloud-Infrastrukturanbieter auszurollen. Neben Amazon Web Services ist Netflix hierzu eine Partnerschaft mit der Google Cloud Platform, Microsoft Azure und der Open-Source Platform-as-a-Service (PaaS) Lösung Cloud Foundry eingegangen. Spinnaker beinhaltet Funktionen für das Deployment-Management sowie das Cluster-Management. Hiermit ist es Netflix aktuell möglich, Releases und ganze Clusterverbände simultan auf der AWS und Google Cloud mit ein und demselben Funktionsumfang bereitzustellen. Die Unterstützung für Microsoft Azure ist noch in Arbeit.

Das Spinnaker Deployment-Management definiert eine sogenannte Pipeline, die wiederum in eine Abfolge von 15 Stages untergliedert ist, und die sich individuell anpassen/ erweitern lassen. Ein Stage ist ein granular abgeschlossener Prozess, der eine Aufgabe während des Deployments übernimmt, z.B. Erstellen eines Images, Bereitstellen des Images oder Zerstören einer Server-Gruppe.

Das Spinnaker Cluster-Management besteht aus den Bereichen Server-Group, Security-Group, Load Balancer und dem Cluster. Hierüber lässt sich der gesamte Cluster steuern und je nach Anforderung einer Applikation, weitere Server zu einer Server-Gruppe hinzufügen oder anpassen. Damit schafft sich Netflix die Möglichkeit, Blue-Green-Deployment Strategien („Trash your Servers“) durchzuführen.

Microservices sind die Basis von Multi-Cloud-Architekturen

Die Frage, warum Netflix sich anhand von Spinnaker dem Multi-Cloud-Sourcing widmen kann, ist mit einem Wort beantwortet: Microservice-Architektur. Anstatt einen Monolithen, also einen starren und unflexiblen „Applikationsklotz“, zu entwickeln, setzt Netflix auf eine voneinander lose gekoppelte Landschaft einzelner Microservices, die miteinander integriert das massiv skalierbare und ausfallsichere Netflix On-Demand Angebot ergeben.

Ein Microservice repräsentiert eine abgeschlossene Funktionalität und wird unabhängig entwickelt und betrieben. Es handelt sich dabei um eine kleine, eigenständige Softwarekomponente (Service), die eine Teil-Funktion innerhalb einer großen, verteilten Softwareapplikation bereitstellt. Ein Microservice lässt sich somit unabhängig bereitstellen und skaliert autonom und selbständig. Auf Microservices basierende Applikationsarchitekturen sind modularisiert und lassen sich einfacher und schneller um neue Funktionen erweitern und im Laufe des Lebenszyklus warten. Die Vorteile einer Microservice-Architektur zeichnen sich durch die folgenden Eigenschaften aus:

  • Bessere Skalierbarkeit: Wird ein Teil-Service einer Applikation zu einem Zeitpunkt mehr in Anspruch genommen als die anderen, ist er in der Lage eigenständig zu skalieren, ohne die restlichen Teile der Applikation negativ zu beeinflussen.
  • Höhere Verfügbarkeit der gesamten Applikation: Fällt ein Teil-Service aus, beeinflusst er damit nicht die gesamte Applikation sondern nur die Funktionalität, die er abbildet. Das kann bedeuten, dass ein Teil-Ausfall keine direkte Außenwirkung hat, wenn es sich dabei um einen Backend-Service handelt.
  • Bessere Agilität: Änderungen, Verbesserungen und Erweiterungen lassen sich unabhängig von der Funktionalität der gesamten Applikation vornehmen und ohne andere Teil-Services zu beeinträchtigen.
  • Continuous Delivery: Die Änderungen, Verbesserungen und Erweiterungen lassen sich regelmäßig vornehmen, ohne dass für die gesamte Applikation ein Update vorgenommen werden muss beziehungsweise ohne die gesamte Applikation in den Wartungsmodus zu schicken.

Ein weiterer Vorteil einer Microservice-Architektur: Ein Microservice lässt sich in mehr als einer Applikation einsetzen. Einmal entwickelt kann er später für eine Funktion in vielen weiteren Applikationsarchitekturen sorgen.

Multi-Cloud-Umgebungen treiben die Innovationsfähigkeit

Microservice-Architekturen, wie die von Netflix, sind die entscheidende Basis für den Aufbau von echten Multi-Cloud-Umgebungen auf Infrastruktur- und Plattformebene. Nur damit lassen sich einzelne Teil-Services einer Gesamt-Applikation über mehrere Cloud-Anbieter hinweg verteilen, um anhand dessen das Risiko eines Ausfalls oder Lock-ins zu minimieren. Weiterhin besteht damit die Möglichkeit sämtliche Funktionen und Platform-Services, die von verschiedenen Anbietern bereitgestellt werden, in Gänze zu nutzen, um damit von innovativen und neuen Platform-Services zu profitieren. Sofern bei einem Anbieter z.B. ein Platform-Service nicht zur Verfügung steht oder dessen Funktionsumfang oder Performance nicht ausreichend ist, kann der Service von einem anderen Anbieter verwendet werden.

Das Beste Beispiel hierfür ist Spotify. Hätte der Streaming-Anbieter einen Analytics-Service bei AWS gefunden, der den eigenen Anforderungen entspricht, wäre Google BigQuery wahrscheinlich nie zum Zuge gekommen. Stattdessen bedient sich Spotify nun bei Google und baut damit eine Multi-Cloud-Umgebung auf Infrastrukturebene auf.