Suchen

Cloud fördert Agilität Agile Entwicklungspraktiken und Continuous Delivery

| Autor / Redakteur: Eberhard Wolff * / Florian Karlstetter

Cloud wird meistens nur unter dem Aspekt der Kostenreduktion wahrgenommen. Zusammen mit agilen Entwicklungspraktiken und Ansätzen wie Continuous Delivery ergeben sich jedoch weitere wichtige Vorteile.

Firmen zum Thema

Ein häufig übersehener Vorteil einer Cloud-basierten Infrastruktur ist die Erfüllung des Wunsches nach Agilität.
Ein häufig übersehener Vorteil einer Cloud-basierten Infrastruktur ist die Erfüllung des Wunsches nach Agilität.
(Bild: holdosi - Pixabay.com / CC0 )

Im Bereich „Public Cloud“ geben Google und Amazon den Ton an. Nicht nur im Bankenbereich sprechen jedoch datenschutzrechtliche und regulatorische Bedenken gegen die Verarbeitung von Kundendaten in der Cloud – obwohl die Nutzung von Outsourcing-Angeboten schon lange üblich ist. Oft wird dennoch das Thema Cloud-Infrastruktur erst gar nicht näher verfolgt.

Was dabei übersehen wird: Es ist möglich, eine eigene private Cloud-Infrastruktur im eigenen Rechenzentrum aufzubauen. Mit Hilfe einer „Private Cloud“ können auch in der eigenen Infrastruktur Ressourcen viel schneller und flexibler zur Verfügung gestellt werden, und zwar als Ergebnis eines automatisierten Prozesses – eine deutliche Vereinfachung der bisherigen Abläufe, die oft Monate dauern.

Für den Betrieb einer „Private Cloud“ existiert eine Vielzahl Lösungen, auch aus dem Open-Source-Bereich. Eine solche Plattform ist dann genauso sicher wie eine klassische Infrastruktur.

Vorteile einer Cloud-Plattform

Deutlich werden die Vorteile an der Geschichte der Amazon-Cloud. Interne Untersuchungen zeigten, dass Amazons Entwicklungsteams etwa 70 Prozent ihrer Zeit mit der Einrichtung skalierbarer Infrastrukturen und der Produktivschaltung neuer Versionen verbrachten. Das war ineffizient und hatte weitreichende Konsequenzen: Um schnell neue Features in Produktion zu bringen, musste die Arbeit auf mehr Schultern verteilt werden. Das war teurer und verkomplizierte die Steuerung der Teams und Prozesse.

Um dieses Problem zu lösen, hat Amazon seine Cloud-Plattform entwickelt – und zwar zunächst nur für die interne Nutzung. So konnte den Projekten eine skalierbare Infrastruktur angeboten werden und gleichzeitig die Produktivschaltung der Projekte erheblich vereinfacht werden. Letztendlich konnten sich die Entwicklungsteams auf die Implementierung neuer Features konzentrieren. Erst später wurde diese Plattform auch für die Allgemeinheit geöffnet und dadurch eine Kostenreduktion erreicht.

Ein weiterer Vorteil der Cloud ist eine Reduktion der Zeitspanne von der Idee für ein neues Feature bis zur Bereitstellung in Produktion, weil neue Server viel schneller zur Verfügung gestellt werden können. Das kann einen wichtigen Vorsprung gegenüber klassischen Wettbewerbern sichern und sorgt auch für schnelle Reaktionen auf Anforderungen anderer Projekte.

Auf Prozessebene werden diese Ziele mit agilen Entwicklungsansätzen verfolgt. In agilen Projekten werden in Intervallen von zwei bis vier Wochen neue Produktinkremente fertig gestellt, die bereit für einen Produktiveinsatz wären. Dem stehen jedoch gerade bei Banken oft Release-Pläne gegenüber, die auf wenige Termine im Jahr hin ausgerichtet sind, zwischen denen oft mehrere Monate liegen. Die Produktivstellung neuer Funktionen, die bereits implementiert worden sind, verzögert sich dadurch deutlich.

Diese Diskrepanz erklärt sich neben den komplexen Infrastrukturen auch dadurch, dass die Bereitstellung einer neuen Umgebung klassisch sehr zeitaufwändig ist. Beispielsweise müssen Server für Kapazitätstests, welche manuell eingerichtet und konfiguriert werden, oft Wochen im Voraus beantragt werden.

Eine Cloud-Plattform dagegen bietet für Entwickler ein Self-Service-Portal, in dem sie Entwicklungs- oder Testumgebungen selbst anfordern können. Neue virtuelle Maschinen oder Applikationsserver für Last- oder Kapazitätstest stehen so automatisiert innerhalb von Minuten statt Wochen bereit und können flexibel erweitert werden.

Continuous Integration und Continuous Deployment

Server alleine reichen aber nicht – die entwickelte Software muss als installierbares Artefakt zur Verfügung stehen und auf der Infrastruktur ausgebracht werden.

Um aus dem Source Code ein Artefakt zu erzeugen, nutzen Projekte heute Continuous Integration (CI): Da ein Zusammenbringen getrennt entwickelter Software-komponenten gegen Projektende meist einen großen Aufwand erforderte, weil die Module getrennt voneinander entwickelt wurden und schlecht aufeinander abgestimmt waren, ist man zu einer fortlaufenden Integration der Komponenten übergegangen.

Jede Änderung an der Codebasis löst einen neuen Build aus, in dem alle Module zusammengeführt und weitestgehend automatisch miteinander getestet werden. Integrationsprobleme werden so frühzeitig erkannt und können direkt behoben werden, statt zum Projektende hin zu Verzögerungen zu führen.

Für die Software muss aber noch eine Umgebung bereit gestellt und das System darauf installiert werden. Dieser Schritt kann ebenso ständig und weitgehend automatisiert ausgeführt werden, so dass man von Continuous Delivery (CD) spricht. So können Test-Umgebungen per Mausklick zur Verfügung gestellt werden.

Da eine Produktivschaltung letztendlich nur das Deployment in eine weitere Umgebung ist, verliert diese auch viel von ihrem Schrecken. Wie zuvor die Integration von Software-Modulen durch Continuous Integration wesentlich vereinfacht wurde, schickt sich CD an, dies auch für die Produktionseinführung zu tun.

Umsetzung alternativer Betriebskonzepte

Die einfachere Bereitstellung und Verwaltung von Infrastrukturkomponenten erleichtert darüber hinaus die Umsetzung alternativer Betriebskonzepte und Releasestrategien: Da eine Umgebung auf Knopfdruck erstellt werden kann, wird die vorübergehende Bereitstellung paralleler Versionen deutlich einfacher.

So ist es möglich, den Anforderungen anderer Projekte gerecht zu werden oder Produktivschaltungen neuer Versionen mit minimaler Ausfallzeit zu ermöglichen, indem die alte Umgebung sukzessive im laufenden Betrieb von einer neuen Version abgelöst wird (Blue-Green-Releases). Ebenso lassen sich neue Features experimentell mit einer Teilmenge von Benutzern evaluieren, welche einfach auf einen entsprechend konfigurierten Klon der Produktionsumgebung geleitet wird (Canary Releases).

Der Einsatz einer zentralen CI- und CD-Infrastruktur befördert auch eine Konsolidierung und Harmonisierung der internen Prozesse für unterschiedliche IT-Projekte. Die in einer zentralen Plattform mögliche Automatisierung reduziert den Aufwand und entlastet Entwickler von sich wiederholenden Aufgaben wie dem Aufsetzen einer neuen Testumgebung. Dadurch wird eine Konsolidierung aus den Projekten heraus erstrebenswert.

Pipelines

Gerade bei bereits länger laufenden Projekten stellt sich die Frage, wie die Vorteile von Cloud, Continuous Integration und Continuous Integration realisiert werden können. Die Bereitstellung einer Software kann man als Pipeline verstehen: Der Weg einer Änderung geht vom Kompilieren über die verschiedenen Entwickler-, Integrations- und System-Tests schließlich in Produktion.

Der Durchlauf durch die Pipeline kann bis hin zu einigen Monaten dauern und umfasst manuelle, automatisierte und halbautomatisierte Schritte. Durch eine Analyse können die Optimierungspotentiale durch Einsatz von Continuous Integration, Continuous Delivery und Cloud identifiziert werden. Die Pipeline kann so optimiert werden, um sie zuverlässiger zu machen und den Durchlauf zu beschleunigen. Allerdings ist dabei nicht immer eine vollständige Automatisierung wirtschaftlich sinnvoll oder notwendig.

Fazit

Ein häufig übersehener Vorteil einer Cloud-basierten Infrastruktur ist die Erfüllung des Wunsches nach Agilität – und nicht unbedingt nach einer Kostenreduktion. Dieses Konzept kann auch in Form von „Private Clouds“ im eigenen Rechenzentrum umgesetzt werden. Dann sind die Vorteile auch für Banken im Kerngeschäft nutzbar.

Zu diesen Vorteilen gehört ein verkürztes Time to Market, eine effizientere Nutzung vorhandener Entwicklungsressourcen sowie eine Vereinheitlichung und Komplexitätsreduktion im Betrieb von Applikationen – und damit eine deutliche Risikominimierung.

* Eberhard Wolff ist Architecture & Technology Manager bei adesso.

(ID:44368318)