Direkt zum Inhalt
Hybrid- & Multi-Cloud

Den eigenen Weg finden: Erfolg in einer verteilten Multi-Cloud-Welt

31. Januar 2021
Richard Seroter

Director of Outbound Strategy and Engagement

GCP testen

Profitieren Sie von einem 300 $-Guthaben, um Google Cloud und mehr als 20 zu jeder Zeit kostenlose Produkte kennenzulernen.

JETZT TESTEN

Warum verwenden wir mehrere “Dinge”, wenn wir doch nur eine bestimmte Anforderung zu erfüllen haben? Nun, manchmal haben wir einfach keine andere Wahl. Meine Vermögenswerte etwa befinden sich nicht alle an einem Ort, da mein Arbeitgeber mein Rentenkonto nicht bei dem Finanzinstitut führt, bei dem ich mein privates Konto habe. In anderen Fällen variieren wir absichtlich. Ich könnte meine gesamte Kleidung in einem einzigen Laden kaufen, jedoch – ob nun aufgrund von Geschmack, Bequemlichkeit oder anderen Gegebenheiten – kaufe ich Schuhe in einem Geschäft, Hemden in einem weiteren Shop und andere Oberbekleidung wiederum woanders. 

Schaut es in Ihrer IT-Abteilung genauso aus? Ich wette, Sie haben für ein beliebiges Problem mehrere Lösungen, abhängig von der organisatorischen Dynamik, Entscheidungen für bestimmte Technologien und derzeitigen Kundenanforderungen. Dasselbe geschieht nun wieder mit Public Clouds: Die Statistiken zeigen, dass die meisten von Ihnen mehr als einen Anbieter nutzen.

Zwischen den Public Clouds bestehen deutliche Unterschiede. Doch gibt es natürlich auch Gemeinsamkeiten: Jeder Public-Cloud-Provider bietet virtuelles Computing, Speicherplatz und Netzwerkfunktionen sowie Middleware-Dienste wie Messaging. Jede Cloud stellt aber auch neuartige Dienste zur Verfügung, die anderswo nicht erhältlich sind. Außerdem wird jede Cloud in unterschiedlichen geografischen Regionen betrieben. Einige Clouds bieten andere Funktionen für Sicherheit, Datenhoheit und hybride Nutzung. Auch die Nutzerfreundlichkeit bei Entwicklertools, Webportalen und Automatisierungsfunktionen ist nicht überall gleich, sodass für die verschiedenen Teams in Ihrem Unternehmen unterschiedliche Clouds in Frage kommen können. 

Die Nutzung mehrerer Clouds mag immer üblicher erscheinen, doch in der Praxis gibt es hierbei durchaus Hürden. Es gibt unterschiedliche Tools, Kompetenzen und Paradigmen, mit denen Sie sich vertraut machen müssen. Aber keine Panik: Ihre Entwickler:innen müssen nicht direkt jedes letzte Detail jeder Cloud kennen. Konzentrieren Sie sich weiterhin auf Ihr Ziel, Ihren Kund:innen Nutzen zu bieten. Sie sollten Ihre Technikteams allerdings entsprechend vorbereiten, damit Ihr Unternehmen die Multi-Cloud optimal nutzen kann. Was sollten Sie also tun, falls Sie ein technisches Team leiten? Ich stelle Ihnen im Folgenden einige allgemeine Tipps vor, die Ihnen bei Ihrem Ansatz für die Einführung einer Multi-Cloud behilflich sein können. Vergessen Sie dabei nicht, dass es keine universell gültige Lösung gibt, sondern vielmehr eine für Ihr Unternehmen zum aktuellen Zeitpunkt richtige Lösung. 

Fokussieren Sie sich weiterhin auf übertragbare Kompetenzen

Ihre Software wird nicht durch die Wahl Ihrer Cloud definiert. Eine solche Aussage würde man vielleicht nicht von einer Person erwarten, die für einen Public-Cloud-Anbieter tätig ist, aber es ist die Wahrheit. Die meisten Voraussetzungen, die für das Erstellen erstklassiger Software gelten, gehen über einzelne Implementierungsziele deutlich hinaus.

Auf welche Kompetenzen kommt es bei der Softwareentwicklung also wirklich an? 

  • Beschäftigen Sie sich eingehend mit einer oder mehreren Programmiersprachen. Entwicklerinnen und Entwickler sollten ein gutes Verständnis davon haben, wie ein effizienter, modifizierbarer und testbarer Code geschrieben wird. 

  • Optimieren Sie Ihre Entwicklungsumgebung, einschließlich Ihrer IDE, experimenteller Sandboxes und des Ablaufs der Versionskontrolle. 

  • Lernen Sie die Verwendung eines Front-End-Frameworks wie Angular oder Flutter. 

  • Informieren Sie sich darüber, für welche Anwendungsfälle sich eine relationale Datenbank eignet, und für welche eine schemalose Datenbank in Betracht gezogen wird.

  • Finden Sie die richtigen Vorgehensweisen heraus, um Anwendungen in Paketen zusammenzufassen und Container zu verwenden. 

  • Erweitern Sie Ihr Wissen zu modernen Architekturen rund um Mikrodienste, Mikro-Front-Ends, Ereignisstream-Verarbeitung, JAMstack, APIs und Service Mesh.

  • Lernen Sie, wie Sie eine vollständige Continuous-Integration-Pipeline erstellen, durch die Ihr Team schnelles Feedback erhält. 

Diese einzelnen Punkte beziehen sich auf wertvolles, übertragbares Wissen, das nur wenig von der Cloud abhängt, die Sie letztendlich nutzen.

Bitte verstehen Sie mich nicht falsch: Es empfiehlt sich durchaus, Kompetenzen in den Bereichen neuartiger Cloud-Dienste zu entwickeln. Jede Cloud ist anders und es gibt gute Gründe, warum Authentifizierung, Bereitstellung und Nutzung dieser leistungsstarken Dienste bei jeder Cloud unterschiedlich funktioniert. Eine Anwendung, die für eine Cloud entwickelt wurde und dort großartig läuft, wird in einer anderen sehr viel schlechter laufen. Vergessen Sie bei solchen Herausforderungen jedoch nicht, dass es immer um Ihre Software und um Ihre Kund:innen geht. Die Public Clouds sollen Ihnen dienen, nicht umgekehrt.

In allen Umgebungen die „schlankste funktionsfähige Plattform“ nutzen

Allzu oft stellen Organisationen komplexe, undurchsichtige Plattformen zur Verfügung und hoffen, dass Entwickler:innen diese bereitwillig nutzen. Das ist der falsche Weg, ein sogenanntes „Antimuster“. Mittlerweile erkennen Unternehmen jedoch bessere Alternativen.

Die Autoren des Buchs Team Topologies werben für die Idee der schlanksten funktionsfähigen Plattform (Thinnest Viable Platform, TVP), um die Entwicklung zu beschleunigen. In vielen Organisationen steht am Anfang einer TVP Kubernetes, das eine umfassende, konsistente API für containerisierte Arbeitslasten mitbringt. Möglicherweise ist es sinnvoll, Knative als Layer über dieser TVP einzusetzen, damit die Entwicklungsteams eine anwendungsorientierte Oberfläche erhalten, die die zugrunde liegende Komplexität von Kubernetes verbirgt. Danach können Sie den Cluster um ein eingebettetes Service Mesh erweitern, damit Ihre Entwickler:innen keinen infrastrukturorientierten Code schreiben müssen – clientseitiges Load-Balancing, Service Discovery, Wiederholungen, Sicherungen und so weiter. (Hinweis: Wenn Sie die eben genannten Elemente kombinieren und noch einige weitere hinzufügen, erhalten Sie Anthos. Aber das nur nebenbei.)

Sie gelangen auf diesem Weg zu einer leistungsstarken Basisplattform, die sich aus Open-Source-Standardlösungen zusammensetzt. Hierbei erhalten Sie nicht einfach nur Open Source-Lösungen, sondern Standardlösungen, also Projekte, die von einem gewaltigen Netzwerk unterstützt werden und mit vielen anderen Lösungen zusammenarbeiten – denken Sie nur an Kubernetes, Istio, Envoy, Tekton und Cloud Native Buildpacks. So können Sie für all Ihre Kompatibilitätsziele eine identische Plattform ausführen und auf erstklassige Infrastruktur und Dienste aufbauen. Ihre Entwicklungsteams können sich auf den Unterbau verlassen und ihre Aufmerksamkeit auf die Funktionen der einzelnen Umgebungen richten, die Mehrwert bieten.

Die richtige Cloud (und die richtigen Dienste) anhand der Anforderungen Ihrer Anwendung auswählen

Fassen wir einmal zusammen: Sie konzentrieren sich auf übertragbare Kompetenzen und haben eine grundlegende Plattform, die die konsistente Ausführung von Software in beliebigen Umgebungen erleichtert. Jetzt müssen Sie sich entscheiden, wo die Software dann tatsächlich ausgeführt werden soll.

Ihre Entwickler:innen schreiben vielleicht Software, die vollständig cloudunabhängig ist und überall ausgeführt werden kann. Das ist eine schwierige Aufgabe, aber nehmen wir einmal an, Sie haben es getan. In diesem Fall müssen Ihre Entwicklungsteams keine schwierigen Entscheidungen im Vorfeld treffen. In einigen Fällen benötigen Sie vielleicht vorab Kenntnisse über die Zielumgebung. Im Folgenden einige Beispiele:

  • Ihre Anwendung ist abhängig von besonderen Funktionen für KI, Datenverarbeitung, IoT oder branchenspezifischen APIs — beispielsweise in der Medienbranche oder dem Gesundheitswesen.

  • Sie müssen Ihre Anwendung in einer festgelegten Region hosten und daher eine bestimmte Wahl hinsichtlich Cloud, Rechenzentrum oder Partnereinrichtung treffen.

  • Ihre Anwendung muss sich in der Nähe einer bestimmten Datenquelle befinden – beispielsweise von SaaS-Systemen, Rechenzentren von Partnern, mobilen Nutzern – und den am nächsten gelegenen Host verwenden.

Bereiten Sie einen gut erprobten Entscheidungsbaum vor, um Ihren Teams die Abstimmung zu erleichtern, wenn es darum geht, neuartige versus Standarddienste zu verwenden und festzulegen, welche Cloud für die jeweilige Arbeitslast am sinnvollsten ist. Bei der Wahl der Cloud und benötigter Dienste kann eine fachliche Beratung sehr hilfreich sein. Hierzu können Sie sich an unsere Experten von Google wenden oder mit unserem umfangreichen Netzwerk an Partnern zusammenarbeiten, die Sie auf Ihrem Weg mit bewährter Expertise begleiten. Die Entscheidung liegt bei Ihnen.

Gepostet in