Agile Entwicklungspraktiken und Continuous Delivery

Cloud – privat, sicher und agil

Seite: 2/2

Anbieter zum Thema

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 - sei es, um 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 können neue Features experimentell mit einer Teilmenge von Benutzern evaluiert werden, 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 Konso-lidierung 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.

(ID:39548100)