Wie Capgemini Continuous Deployment in Software-Produktionen einsetzt

Publish date:

In diesem Interview berichtet Marvin Weck, Application Consultant, wie er mithilfe von Continuous-Deployment Integrationsprobleme behebt, Änderungen umsetzt und die Time-to-Market-Zeitspanne von Software-Produkten verkürzt.

Continuous Integration, Continuous Delivery und Continuous Deployment sind aktuell große Buzzwords. Marvin, kannst du uns erklären, was genau hinter den Begriffen steckt und wie sie zusammenhängen?

Continuous Deployment beschreibt eine Methode der Software-Entwicklung und -Veröffentlichung, bei der verschiedene Techniken, Prozesse und Werkzeuge genutzt werden, um den gesamten Prozess kontinuierlich zu optimieren. Grundsätzlich gilt: Die drei Begriffe Integration, Delivery und Deployment bauen aufeinander auf.

Bei der ersten Stufe, Continuous Integration, geht es darum, Integrationsprobleme zu vermeiden. In der Praxis arbeitet jeder Entwickler separat an seinem Projektteil. Wenn die Teile dann am Ende zusammengefügt werden, kommt es oft vor, dass bestimmte Dinge nicht funktionieren. Continuous Integration hilft das zu vermeiden, indem Änderungen mehrmals täglich in die Gesamt-Software integriert werden. So sehen wir früher, ob alles zusammenpasst oder nicht.

Die zweite Stufe, Continuous Delivery, erweitert die Continuous Integration. Nachdem die Continuous-Integration-Pipeline durchgearbeitet wurde, verpflanzen wir die Anwendung in eine Testumgebung. Hier werden verschiedene, aufeinander aufbauende Testverfahren durchgeführt. Am Ende liegt ein fertiges Paket vor, welches an die Produktion gegeben werden kann.

Von der dritten Stufe, Continuous Deployment, sprechen wir, wenn alle genannten Verfahren komplett automatisiert ablaufen. Vom Bereitstellen einer Änderung durch den Entwickler bis zur Produktion gibt es keine Stelle, an der manuell eingegriffen wird. Das System steuert sich selbst.

Capgemini Senior Software-Ingenieur

Du arbeitest bei Capgemini im Project-Technique-Support-Team. Worin besteht eure Aufgabe und wie setzt ihr Continuous Deployment ein?

Wir sind ein Team aus technischen Experten mit Sitz in Ratingen in der Nähe von Düsseldorf. Wir kommen immer dann zum Einsatz, wenn es bei einem Projekt technische Herausforderungen gibt, die zusätzliche Unterstützung erfordern. Continuous Development setzen wir ein, um Änderungen möglichst schnell produktiv zu schalten und die Time-to-Market-Zeitspanne von Software zu verkürzen.

Welche Vorteile bietet Continuous Deployment im Vergleich zu herkömmlichen Entwicklungszyklen?

Werden Software-Releases nur selten durchgeführt, wird ein Release zu einer großen bedeutenden Aktion. Zudem werden dadurch oft sehr große Mengen an Änderungen eingespielt. Mit Continuous Deployment wird ein Release „alltäglich“ und es werden immer nur sehr kleine Änderungen durchgeführt. Außerdem laufen die Prozesse automatisiert ab, das spart viel Zeit gegenüber manuellen Releases.

Und nicht zuletzt ermöglicht Continuous Deployment den Entwicklern, selbst einzuschätzen, ob ihre Änderungen auch in der Produktion funktionieren. Auf diese Weise werden Entwicklung und Produktion viel enger verzahnt und der Programmierer fühlt sich besser in den Gesamtprozess eingebunden.

Welche Voraussetzungen sollten für Continuous Deployment in einem Unternehmen gegeben sein?

Die wichtigste Voraussetzung für Continuous Deployment ist ein kulturelles Umdenken: Der Prozess erfordert, dass Menschen und Unternehmen sich auf die Deployment-Pipeline einstellen und sehr genau arbeiten. Damit Anwendungen fehlerfrei den Prozess durchlaufen, müssen viele automatisierte Tests geschrieben werden. Wird dies nicht gemacht, werden Fehler bis in die nächste Stufe übertragen. Die Fehlerbehebung hat entsprechend oberste Priorität.

Welchen Herausforderungen begegnen euch bei der Arbeit?

In vielen Unternehmen herrscht noch Skepsis gegenüber einer völligen Automatisierung des Software-Entwicklungsprozesses. Speziell Entwickler, die früher in die Auslieferung einer Anwendung involviert waren, haben Vorbehalte, bestimmte Aufgabenteile an Werkzeuge abzugeben. Teilweise haben unsere Kunden auch Richtlinien, die vorsehen, dass Anwendungen vor ihrer Produktion in einer Kundenumgebung getestet werden müssen. Bis in die Produktion gehen daher noch wenige Kunden; wir machen eher „Continuous Delivery“ und stellen dem Kunden entsprechend (teilweise mehrmals täglich) ein getestetes Paket zur Verfügung, das er dann selbst in Produktion bringen kann.

Continuous Deployment Phasen

Wie erleichtert ihr dem Kunden den Einstieg in das Thema Continuous Deployment?

Ganz wichtig: Wir drängen den Kunden zu nichts. Wenn der Kunde anfangs noch keine völlige Automatisierung wünscht, dann richten wir uns danach. Continuous Deployment muss immer kundenspezifisch umgesetzt werden, um erfolgreich zu sein.

Außerdem haben wir bei Capgemini die „ProductionLine“ entwickelt. Das ist ein vorgefertigter Werkzeugkoffer mit allen Tools, die für Continuous Integration benötigt werden. So stellen wir den Projekten in wenigen Minuten eine funktionierende Werkzeugkette zur Verfügung. Basierend darauf können wir schnell mit dem zweiten Schritt starten und Prozesse implementieren. Hier kommen dann weitere Continous-Deployment-Tools zum Einsatz.

Welche Voraussetzungen sollten Software-Entwickler mitbringen, die bei Capgemini mit Continuous Deployment arbeiten wollen?

Tatsächlich fallen die Anforderungen an Software-Entwickler in diesem Feld etwas aus dem Rahmen. Der Grund: Die ganze Deployment-Pipeline ist gewissermaßen ein „Projekt im Projekt“ und nutzt andere Technologien und Programmiersprachen, als üblicherweise in Projekten verwendet werden. Da geht es um Spezialbereiche, die an Unis selten gelehrt werden. Den Großteil ihrer Kenntnisse müssen die Entwickler sich deshalb vor Ort bei Capgemini aneignen. Das ist aber kein Problem. Capgemini hat eine eigene Laufbahn für Application Consultants mit verschiedenen Einstiegsmöglichkeiten, Karrierestufen und Weiterbildungsmöglichkeiten. Welche genauen Laufbahnen es bei Capgemini gibt, zeigt unser Karrieremodell.

In jedem Fall sollten sich Bewerber zu allen Themen rund um DevOps und Automatisierung auf dem Laufenden halten, sich mit Infrastruktur-Technologien auseinandersetzen und bestenfalls schon mit Continuous Integration gearbeitet haben. Auf dieser ersten Stufe lernt ein Entwickler schon viele wichtige Arbeitsweisen und vor allem das richtige Mindset kennen. Auf dieser Basis können Neueinsteiger bei Capgemini dann sehr gut aufbauen.

Vielen Dank für das Interview.

Wenn Sie wie Marvin die Automatisierung von Software-Produkten vorantreiben möchten, bewerben Sie sich auf unsere Stelle des Senior Software Engineers. Auf unserem Jobportal erwarten Sie viele weitere anspruchsvolle Positionen.

Weitere Posts

Automotive

IT-Architekt in Stuttgart: Herausforderungen im Zentrum der Automobilbranche

Capgemini Karriere
Date icon Januar 17, 2019

Ein Solution-Architekt berichtet über die IT-Herausforderungen in der Automobilbranche und...

Consumer Products & Retail

NRF 2019: Trends & Kuriositäten der weltgrößten Handelsmesse

Achim Himmelreich
Date icon Januar 15, 2019

Vom Amazon-Laden bis zu Unterwasserdrohnen, plus Podcast „Predictions 2019“

Intelligent Automation

Über intelligente Automatisierung, virtuelle Lieferzentren…und Kindergärten

Tim Ulrich
Date icon Januar 11, 2019

Einen Roboter als Arbeitskraft zur Hand zu haben ist schön und gut, aber wie kriegt man ihn...

cookies.

Mit dem Fortsetzen des Besuchs dieser Website akzeptieren Sie die Verwendung von Cookies.

Für mehr Informationen und zur Änderungen der Cookie-Einstellungen auf Ihrem Computer, lesen Sie bitte Privacy Policy.

Schließen

Cookie Information schließen