Über unsMediaKontaktImpressum
Christina Kraus 18. Juni 2019

Multi-Cloud-Management – Agilität vs. Kontrolle

Alle Unternehmen aus traditionellen Industrien, wie der Automobil-, Finanz- oder Energieindustrie entwickeln sich nunmehr zu Softwareunternehmen. Während sie die Infrastruktur mit der Nutzung von Cloud oft outsourcen, ist es maßgeblich, dass sie ihre Kompetenzen im Bereich der Softwareentwicklung innerhalb der Organisation stärken.

Diese Vorgehensweise ist sinnvoll, denn nur mit ihrer tiefgehenden Marktkenntnis, den über Jahre gesammelten Daten und einem leistungsfähigen Softwareentwicklungsprozess können sie am Markt langfristig bestehen bleiben. Denn der Druck von außen ist groß. Innovative digitale Geschäftsmodelle verändern gesamte Industrien in kürzester Zeit. Davor gilt es sich zu schützen.

Die Cloud-Infrastruktur, auf der die entwickelten Softwareanwendungen laufen, ist dabei nur Commodity; ein Rohstoff – kein Differentiator. Sie bringt die erforderliche Elastizität, Skalierbarkeit und preisliche Flexibilität und dies für alle, die sie nutzen. Insbesondere, da sich der Public-Cloud-Markt mit AWS, Azure und Google auf wenige Anbieter konzentriert, ist eine Differenzierung allein durch die Nutzung der Cloud längst nicht mehr möglich.

Was zählt ist Software-Delivery-Performance

Wichtig ist hingegen, wie schnell die Organisation in der Lage ist, Softwareneuentwicklungen an den Markt zu bringen. So untersucht der State of DevOps-Report schon seit mehreren Jahren, unter welchen Umständen Unternehmen im Bereich der Softwarebereitstellung besonders performant sind und wie man diese Leistung überhaupt vergleichbar messen kann [1].

Dazu dienen in erster Linie die folgenden vier Metriken:

  1. Lead Time: Beschreibt die Zeit vom Code Commit zum Laufen des Codes in der Produktion
  2. Deployment Frequency: Beschreibt die Häufigkeit der Deployments/Releases
  3. Mean Time to Restore: Beschreibt die Zeit bis zur Wiederherstellung im Falle eines Ausfalls
  4. Change Fail Percentage: Beschreibt die Anzahl der Deployments die zu Ausfällen führen

Besonders gut abschneidende Unternehmen haben dementsprechend eine sehr geringe Lead Time (weniger als eine Stunde) und hohe Deployment Frequency (mehrmals pro Tag). Ebenso sind die beiden Stabilitätsmetriken Mean Time to Restore (weniger als eine Stunde) und Change Fail Percentage (0-15 %) niedriger als im Schnitt.

Wie verbessere ich meine Software-Delivery-Performance?

Der Schlüssel zur Erzielung solcher Ergebnisse ist die Automatisierung von manuellen Prozessen, sowie eine organisatorische Transformation. Mit einer DevOps-Organisation bündeln Unternehmen die Verantwortung einer Softwareanwendung in einem einzelnen Team mit Kompetenzen aus Softwareentwicklung und Anwendungsbetrieb und reduzieren somit die Kommunikation zwischen verschiedenen funktionalen Abteilungen. Mit Continuous Integration/Continuous Deployment kann mit Tools wie Concourse CI, GitLab oder Jenkins der Deploymentprozess automatisiert werden. Dies bringt nicht nur Beschleunigung in Form von erhöhter Produktivität, sondern auch mehr Konsistenz, da jede Änderung sauber dokumentiert und im Fall von Fehlern auf die zuletzt funktionierende Version zurückgegangen werden kann, was wiederum zu besserer Stabilität in den Anwendungen führt.

Doch nicht nur im Softwareentwicklungsprozess selbst ist Automatisierung erforderlich. Im Report wurde ebenfalls herausgefunden, dass Unternehmen, die bei der Cloud-Einführung die Einhaltung der klassischen 5 Cloud-Charakteristika berücksichtigen, mit 23 Mal höherer Wahrscheinlichkeit zur leistungsfähigsten Gruppe der Elite-Performer gehören.

Es kommt also nicht nur darauf an, dass man Cloud-Technologien einsetzt, sondern auch wie diese in die Unternehmensorganisation integriert werden.

Die 5 Cloud-Charakteristika, das sind laut NIST eine breite Netzwerkanbindung, Ressourcen Pooling, schnelle Elastizität, das Pay-Per-Use-Abrechnungsmodell und On-Demand-Self-Service [2]. Sie machen den Charme des rasant wachsenden Public-Cloud-Angebots aus, da Entwickler sehr agil binnen Minuten Accounts erstellen und Ressourcen zur Bereitstellung ihrer Anwendungen beziehen können.

Bei der Integration der Cloud-Plattformen in die Unternehmensorganisation stehen dem On-demand-Self-Service jedoch häufig langwierige, manuelle Prozesse entgegen. Sie sollen dazu dienen, die benötigte Kontrolle in Bezug auf Sicherheit und Kosten im Cloud-Umfeld zu bewahren. Dabei fordern sie häufig das Zusammenspiel verschiedener Abteilungen und bremsen – unter anderem durch komplexe Freigabeprozesse und zahlreiche personelle Abhängigkeiten – die Entwicklung aus. Somit besteht für Unternehmen das Risiko, dass trotz großer Investitionen in die Cloud-Adoption der gewünschte Effekt – die schnelle und kosteneffiziente Entwicklung neuer digitaler Anwendung – ausbleibt.

Was sind die Herausforderungen in der Cloud-Adoption?

Neben der technischen Integration von Cloud-Technologien spielt der kulturelle und organisatorische Wandel innerhalb des Unternehmens – hin zu einer DevOps-Organisation – eine wichtige Rolle. Auch die Entwicklung neuer digitaler Geschäftsmodelle erfordert neue Kommunikationswege zwischen Fachabteilung und IT, sodass Mitarbeiter vor zahlreichen Veränderungen stehen. Eine gute Umsetzung der technischen Integration von Cloud-Plattformen in die Organisation kann diesen Wandel unterstützen. Wichtig ist es hierbei, die Mitarbeiter in den Vordergrund zu stellen und die Nutzung der neuen Technologien so einfach wie möglich zu gestalten. Denn nicht bei allen ist die Cloud-Transformation willkommen. Umso wichtiger ist es, die Hürde zur Nutzung zu senken und Know-how zur cloud-nativen Entwicklung zu vermitteln. Schlanke und schnelle Prozesse können hier helfen.
Das erfordert Umdenken: Weg von präventiven Maßnahmen wie langwierigen Kostenfreigabeprozessen, hin zu detektiven Fähigkeiten innerhalb der Technologie. Bleiben wir beim Beispiel der Cloud-Kosten, kann es sich zum Beispiel schon positiv auswirken, wenn der Entwickler Transparenz über die durch seine Aktivitäten entstandenen Kosten hat und er somit die Verantwortung dafür trägt und bewusst damit umgeht.

Es gilt also Wege zu finden, die Entwicklern Agilität in ihrer täglichen Arbeit zu bieten, ohne dabei Kontrolle einzubüßen. Konkret ergeben sich für Unternehmen bei der Integration einer neuen Cloud-Plattform folgende Fragestellungen:

  1. IAM (Identity und Access Management) – Wie kommen Entwickler an die Cloud-Ressourcen, auf denen die Anwendung später laufen soll? Wie werden Zugriffsrechte verwaltet, um sie auf ein Minimum (Principle of least privilege) zu beschränken ohne dabei Produktivität einzubüßen? Ein erster Schritt ist hier die Integration mit dem lokal eingesetzten Identity Provider um Entwicklern einen Single-Sign-On-Zugang (SSO) zur Cloud zu ermöglichen und somit die Zugriffsstruktur effizient und sicher zu gestalten. So können diese mit einem einzigen Set an Zugangsdaten auf verschiedenste Services innerhalb des Unternehmens zugreifen. Ebenso werden Zugänge automatisiert entzogen, wenn Mitarbeiter das Unternehmen verlassen. IAM ist eine sehr sicherheitskritische Komponente der Cloud-Integration und erfordert spezifische Kenntnisse der verschiedenen Cloud-Anbieter.
  2. Tenant Management – Wie wird die Erstellung eines Cloud-Accounts automatisiert und zentral verwaltet, um nicht unnötig administrative Ressourcen für manuelle Routinetätigkeiten zu binden? Wie gebe ich Usern Zugriff auf die Tenants? Wie behalte ich die Gesamtkontrolle über aktive Tenants und deren Kosten und Rechte? Es ist wichtig zu beachten, dass dies kein einmaliger Prozess, wie beispielsweise eine Kontoeröffnung bei der Bank, ist, der leicht automatisiert werden kann. Cloud-Tenants oder Cloud-Projekte haben einen volatilen Lebenszyklus. Oft ist die Erstellung mit der Einspielung einer Standardkonfiguration verbunden. Im Anschluss werden User auf den entsprechenden Tenant zugelassen, die die darin enthaltenen Ressourcen verwalten. Konfigurationen, User und Ressourcen verändern sich kontinuierlich und mit Fortschreiten der Entwicklung, sodass es sinnvoll ist, Anpassungen selbständig, aber auch auditierbar, durchführen zu können.
  3. Policies – Mangelnde Transparenz und Fehler in der Konfiguration von Cloud-Accounts sind ein großes Risiko für Sicherheit und Compliance. Das bestätigt auch eine neue Studie der Cloud Security Alliance [3]. Aber wie stellt man eine initial korrekte Konfiguration sicher und überprüft diese kontinuierlich und automatisiert im Zeitverlauf, um Sicherheitsvorfälle und Complianceverstöße zu vermeiden? Diese Frage stellen sich insbesondere Unternehmen aus regulierten Branchen, wie der Finanzbranche, da die Nutzung von Cloud-Technologien hier besonders reglementiert ist und strengen Dokumentierungspflichten unterliegt. An erster Stelle steht die Definition einer sicheren Standard-Konfiguration, die die Risiken gering hält, beispielsweise durch die geographische Beschränkung der Cloud-Nutzung, um die Daten in Europa zu halten. Über eine Cloud-Management-Plattform kann im nächsten Schritt die automatisierte Konfiguration der Cloud-Accounts vorgenommen und gemonitored werden.
  4. Kostenmanagement – Wie behält man den Überblick über die Kosten, insbesondere bei der Verwendung verschiedener Cloud-Anbieter? Wie ordnet man diese einzelnen Projekten zu? Wie identifiziert man Einsparpotenziale, die aufgrund provisionierter, aber nicht aktiv genutzter Ressourcen entstehen? Häufig fehlt es Unternehmen an Transparenz, um diese Fragen zu beantworten. Eine Zuordnung der Cloud-Kosten zu Projekten fällt somit schwer. Hinzu kommen Kosten für unter dem Radar erstellte Cloud-Accounts, sogenannter Schatten-IT [4]. In Großunternehmen soll diese laut Gartner 30-40 Prozent der IT-Kosten ausmachen, eine Everest-Studie rechnet damit, dass sogar bis zu 50 Prozent der IT-Kosten durch Schatten-IT verursacht werden [5]. Um die Kosten der Cloud-Nutzung unter Kontrolle zu halten, müssen diese zunächst an jener Stelle sichtbar sein, an der sie verursacht werden. So sollten auch Entwickler Transparenz über die in ihren Cloud-Projekten entstehenden Kosten haben, nur so können diese bewusst gesteuert werden.

Besonders bei großen Unternehmen können diese Themen enorme Komplexität mit sich bringen. Denn diese weisen in der Regel eine sehr heterogene und langjährig gewachsene IT-Infrastruktur vor, haben viele Nutzer und Anwendungen, sowie lang etablierte Prozesse, die im Zweifel nicht auf die Agilität moderner Cloud-Technologien ausgerichtet sind. So kann es schon mal vorkommen, dass die Bereitstellung eines Cloud-Accounts mehrere Monate dauert oder aber verschiedene Ansprechpartner aus mehreren Abteilungen in den Prozess involviert sind, zum Beispiel ein Entwickler, ein Administrator und ein Kostenverantwortlicher. Das hat lange Liegezeiten zur Folge und erschwert die Dokumentation und Auditierbarkeit solcher Vorgänge. Meist sind verschiedene Systeme involviert, aus denen die Informationen zusammengesetzt und weiterverarbeitet werden müssen.

Ein weiterer Treiber der Komplexität ist die im Enterprise-Segment häufig angestrebte Multi-Cloud-Strategie. Ohne sauber definierte und verwaltete Prozesse vervielfacht sie die Integrationskomplexität aufgrund der Heterogenität der verschiedenen Plattformen.

Warum eine Cloud nicht genug ist

Mehr als 81 Prozent der Großunternehmen setzen laut einer Studie auf eine Multi-Cloud-Strategie [6]. Die Gründe dafür sind vielfältig:

Strategisch ist es durchaus sinnvoll, eine Multi-Cloud-Strategie zu verfolgen. Zum Einen reduziert sie die Abhängigkeit zu einem einzelnen Anbieter und damit dessen Preis- und Produktpolitik. Zum Anderen ist die Entwicklung des Cloud-Markts so dynamisch, dass das Risiko bei einer Single-Cloud-Strategie auf das "falsche Pferd" – also eine nicht zukunftsfähige Technologie zu setzen – zu groß ist. Daher ist eine Diversifizierung, ähnlich wie bei einem Aktienportfolio, zu empfehlen, um Flexibilität und Unabhängigkeit zu bewahren.

Doch auch praktisch spricht vieles für eine Multi-Cloud-Strategie. So unterscheiden sich die Technologieanforderungen verschiedener Anwendungen stark. Um eine Anwendung zur explorativen Datenanalyse zu entwickeln und hier schnell erste Ergebnisse zu erzielen, bietet es sich zum Beispiel an, bestehende Analytics-Frameworks wie Googles Tensorflow oder Azures Machine Learning Studio zu nutzen. Für die Bereitstellung einer Datenbank für den internen Gebrauch im Unternehmen hingegen werden virtuelle Maschinen eingesetzt, über die dann beispielsweise ein Galera-Cluster gespannt werden kann.

Hinzu kommt ein weiterer Faktor: Die persönlichen Vorlieben und das Know-how der Entwickler. Wer bereits Erfahrungen mit bestimmten Anbietern hat, wird deutlich produktiver arbeiten, wenn er diese weiterhin einsetzen und seine Kenntnisse vertiefen kann. Hat ein Unternehmen also die Flexibilität, Mitarbeitern innovative Technologien zur Verfügung zu stellen und Freiheiten in der Technologiewahl zu gewähren, steigert dies die Attraktivität als Arbeitgeber und vergrößert den Talentpool aus dem es schöpfen kann.

Jede Cloud ein eigenes Silo

Trotz der vielen Vorteile muss jedoch die Heterogenität der Cloud-Angebote adressiert werden, um den dadurch entstehenden Integrationsaufwand zu reduzieren.

Vergleicht man das Service-Angebot der großen Public-Cloud-Anbieter, bieten diese Cloud-Infrastruktur-Services auf verschiedenen Ebenen an. Von IaaS-Services wie Amazons EC2 oder Google Compute, über heterogene PaaS-Dienste wie Elastic Beanstalk oder Google App Engine, hin zu hochspezifischen Services, zum Beispiel zur Gesichtserkennung oder Managed Blockchain. Besonders letztere sind häufig Trigger bei der Auswahl der im Unternehmen genutzten Cloud-Anbieter – ein sogenannter Best-of-Breed-Ansatz. Ein späterer Umzug gestaltet sich für Anwendungen, die diese Services nutzen, meist schwer, da sie oft bewusst proprietär gehalten werden, um eine Bindung an den Anbieter zu erreichen. Eine Reduktion der Komplexität durch eine Vereinheitlichung auf Service-Ebene ist somit stark limitierend, da nur noch Services angeboten werden können, die cloud-übergreifend verfügbar sind. Neue Services müssten stets individuell integriert werden, was es selbst bei den drei großen Public-Cloud-Anbietern und dem rasant wachsenden Service-Angebot sehr schwierig macht, einen aktuellen Stand zu halten.

Die großen Cloud-Anbieter unterscheiden sich nicht nur auf Service-Ebene, auch organisatorisch divergieren die Angebote stark. Dies beginnt bei der SSO-Integration, über die Hierarchiestruktur und Konfiguration der Cloud-Tenants, die Vergabe von Rechten sowie die Verwaltungs- und Steuerungsmöglichkeiten in Bezug auf Cloud-Kosten.

All diese Themen müssen erarbeitet und für jede Plattform implementiert werden. Dafür fehlen unternehmensintern oft die Ressourcen, da Mitarbeiter hierfür sehr spezifisches Plattformwissen benötigen. Die Integration einer weiteren Plattform ist so meist mit einem langfristigen Integrationsprojekt verbunden. Während dieser Zeit fehlen wiederum Ressourcen, für die Entwicklung neuer marktrelevanter Anwendungen.

Um dies zu umgehen ist eine Vereinheitlichung der Prozesse auf organisatorischer Ebene durchaus sinnvoll, da sie die Technologieeinführung beschleunigt und agiles Arbeiten ermöglicht, ohne das Cloud-Service-Angebot einzuschränken. So gibt es mittlerweile Anbieter von Multi-Cloud-Management-Plattformen, wie zum Beispiel meshcloud, die cloud-übergreifend einheitliche Governance-Strukturen anbieten und den Integrationsprozess damit drastisch beschleunigen können.  

Ein Gewinn an Agilität und Geschwindigkeit ist der Haupttreiber der Cloudadoption in Großunternehmen.

Cloud-übergreifende Prozesse einheitlich und einfach zu gestalten hat gleich mehrere Vorteile. Durch die Automatisierung der Routine-Prozesse können Entwickler ihren Fokus auf das Kerngeschäft des Unternehmens legen, die Entwicklung neuer Features und Anwendungen. Die Integration über verschiedene Cloud-Anbieter hinweg erhöht aber auch die Transparenz, was die Auditierung von Zugriffen deutlich leichter macht.

Viele Unternehmen nennen außerdem fehlendes Know-how auf Entwicklerseite als eine der größten Herausforderungen bei der Cloud-Transformation. Je einfacher die Bereitstellung verschiedener Services ist, desto geringer auch die Hürde für "Cloud-Neulinge", sich an den Technologien zu probieren und zu experimentieren. Mit sogenannten Sandboxen kann man Entwicklern beispielsweise sichere und kostenseitig beschränkte Spielwiesen zur Verfügung stellen und die neuen Technologien näher bringen. Häufig bietet die IT auch Onboarding-Seminare zu den jeweiligen Plattformen an, um die Nutzung weiter zu fördern und Teams in die Lage zu versetzen, eigenständig damit zu arbeiten.

Fazit

Ein Gewinn an Agilität und Geschwindigkeit in der Softwareentwicklung ist der Haupttreiber der Cloudadoption in Großunternehmen. Dabei ist die Integration der neuen Technologien für die Unternehmen eine besondere Herausforderung. So ist es wichtig sicherzustellen, dass organisatorische Prozesse grundlegende Cloud-Kriterien, wie On-demand-Self-Service nicht außer Gefecht setzen, da sonst die Gefahr besteht, dass trotz Transformation der gewünschte Geschwindigkeitsgewinn ausbleibt. Es muss also eine Balance zwischen Agilität und Kontrolle gefunden werden, die es Entwicklern erlaubt, produktiv zu arbeiten, während IT-Entscheider aus Sicherheits- und Kostengesichtspunkten die Kontrolle über die Infrastruktur des Unternehmens behalten. Multi-Cloud-Management-Plattformen dienen dazu, die Komplexität von Multi-Cloud-Umgebungen zu reduzieren. Sinnvoll ist dies insbesondere auf organisatorischer Ebene: Einheitliches Identitäts- und Zugriffsmanagement, automatisierte Erstellung und Konfiguration von Cloud-Accounts, sowie cloud-übergreifendes Kostenmanagement, beschleunigen die Adoption neuer Technologien stark.

Quellen
  1. Puppet: State of DevOps Report 2018
  2. National Institute of Standards and Technology
  3. Cloud Security Alliance: Cloud Security Complexity: Challenges in Managing Security in Hybrid and Multi-Cloud Environments
  4. Unter dem Radar: Risikofaktor Schatten-IT
  5. Everest Group: How to Eliminate Enterprise Shadow IT
  6. FlexeraBlogs: State of the Cloud 2018

Autor
Kommentare (0)

Neuen Kommentar schreiben