Microservices als technische Basis

Multi-Cloud-Architekturen sind die Realität

11.03.2016 von René Büst
Immer mehr Unternehmen setzen auf Multi-Cloud-Szenarien, um die Vorteile des Cloud-Modells voll auszuschöpfen. Die technische Basis dafür bilden Microservices.

Das Thema Multi-Cloud-Sourcing nimmt auch in Deutschland immer mehr Fahrt auf. Schon mehr als zwölf Prozent der mittelständischen deutschen Unternehmen beschäftigen sich heute mit dieser Deployment-Variante. Für die Zukunft planen 36 Prozent der mittelständischen IT-Entscheider mit Multi-Cloud-Architekturen. Dafür gibt es gute Gründe. Einerseits sollte kein Unternehmen alle Eier in ein Nest packen. Andererseits gibt es den von Anbietern oft proklamierten One-Stop-Cloud-Shop derzeit nicht, was sich auch in der Zukunft kaum ändern dürfte.

Die Kernfrage beim Multi-Cloud-Sourcing lautet in der Regel, wie es sich technisch umsetzen lässt. Vorreiter in diesem Segment sind wieder einmal die US-amerikanischen Cloud-Pioniere, allen voran der Video-On-Demand-Anbieter Netflix und seit kurzem auch die Musik-Streaming-Plattform Spotify.

Favorisierte Cloud Deployment Modelle
Foto: Crisp Research AG, 2015

Gründe für Multi-Cloud-Umgebungen

Der Einsatz einer breit angelegten Cloud-Deployment-Strategie (Multi-Cloud) steht bei Crisp Research permanent im Fokus von Diskussionen, auf Panels oder in Beratungsmandaten mit CTOs und IT-Infrastrukturleitern. Die Gründe für deren Nutzung sind vielfältig. IT-Entscheider sollten das Thema Multi-Cloud-Sourcing auf ihre Agenda nehmen, denn es hilft bei der Bewältigung unterschiedlichster Herausforderungen:

Risikomanagement. Aus Risikomanagement-Sicht und zur Vermeidung eines vollständigen Lock-ins gehört es zu einer ganzheitlichen Cloud-Strategie, mehr als einen Anbieter zu berücksichtigen. So lässt sich das Ausfallsrisiko minimieren, darüber hinaus hält man sich Optionen für einen Wechsel offen.

Kein One-Stop-Cloud-Shop. Es gibt keinen Cloud-Anbieter, der über ein vollständiges Portfolio an Services und Lösungen verfügt, das sämtliche Anforderungen eines Unternehmens erfüllt. Ein kompletter 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 die eine große Innovationsmaschine in der Cloud nicht. 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 etwa rechtlich sensible 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 die Innovation kommt dann sozusagen zu den Daten, und nicht umgekehrt.

• 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 Services und Daten in die Nähe der entsprechenden Zielkunden gebracht, lässt sich diese Hürde 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 gegebenenfalls 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 anzusehen. Ein Automobilhersteller setzt auf unterschiedliche, zum Teil 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 oder Cloud-Umgebung zu integrieren.

Illustration einer Multi-Cloud-Umgebung (Cloud Supply Chain)
Foto: Crisp Research AG, 2015

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 oder 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 mithilfe von Schnittstellen zu anderen bestehenden Systemen integriert werden muss.

Eine Cloud-Umgebung oder 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.

Im Video: Microservices als Architekturmuster

Zum Video: Multi-Cloud-Architekturen sind die Realität

(Quelle: video2brain, (Trainer: Christopher Janietz)

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 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 unter anderem der hochverfügbare Betrieb der virtuellen Netflix-Infrastruktur auf der Amazon Cloud sichergestellt wird. Die sogenannte Simian Army ist Teil des Netflix OSS, eine Sammlung aller Netflix Services, die unter einer Open-Source-Lizenz zur Verfügung stehen. Der deutsche eCommerce-Anbieter Zalando geht mit seinem 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 den Vorzeigekunden von AWS. Der Streaming-Anbieter nutzt bevorzugt den Object Storage Amazon S3, um dort die riesigen Mengen an Musikdateien zu speichern. Hinzu kommt das Content Delivery Network (CDN) Amazon CloudFront, über das die Musik dann zum Kunden gestreamed wird. Im Rahmen seiner neuen Cloud-Infrastruktur-Strategie geht Spotify nun dazu über, neben AWS auch Services von der Google Cloud Platform (GCP) einzusetzen. Mithilfe 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 zusammen, bestehend aus verschiedenen Services von AWS und Google. 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 die Continuous Delivery-Plattform "Spinnaker" veröffentlicht. Damit ist es dem Unternehmen 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 quelloffenen 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, die sich individuell anpassen und erweitern lassen. Ein Stage ist ein granular abgeschlossener Prozess, der eine Aufgabe während des Deployments übernimmt, beispielsweise das Erstellen eines Images, das Bereitstellen des Images oder das 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. Je nach Anforderung einer Applikation lassen sich weitere Server zu einer Server-Gruppe hinzufügen oder auch anpassen.

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 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 Teilfunktion 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 sind:

• Bessere Skalierbarkeit: Wird ein Teilservice einer Applikation zu einem bestimmten 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 Teilservice aus, beeinflusst er damit nicht die gesamte Applikation sondern nur die Funktionalität, die er abbildet. Das kann bedeuten, dass ein Teilausfall 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 Teilservices 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 Teilservices einer Gesamt-Applikation über mehrere Cloud-Anbieter hinweg verteilen, um so 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 beispielsweise 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. (wh)