Top-Themen:

In Kooperation mit

DevOps – Kontinuität von Entwicklung bis Produktion

© Nagler & Company
Share on linkedin
Share on facebook
Share on twitter
Share on whatsapp
Share on telegram
Share on email
DevOps – die Verschmelzung von Development und (IT-)Operations – spiegelt die aktuelle Vorgehensweise der Software-Erstellung wider und repräsentiert die letzte Stufe einer Evolution von Methodenzur Entwicklung, Wartung und Inbetriebnahme von Software-Paketen.

Während es gegen Ende des letzten Jahrtausends durchaus noch üblich war, z.B. einen Programmfehler zu korrigieren und (nach erfolgreichem Test) mit einer Diskette im Aktenkoffer zum Kunden zu gehen und dort die korrigierte Version auf den betroffenen PC zu installieren, ist ein solches Vorgehen heute undenkbar. Die Systemlandschaften der Kunden sind heute um ein Vielfaches komplexer und somit gilt es, mit jeder Software-Installation die Auswirkungen auf das Gesamtsystem zu berücksichtigen, Versions-Transparenz sowie Dokumentationsvollständigkeit ebenso im Auge zu behalten wie etwaige Auswirkungen auf Performance und Anwender-Berechtigungen – und vieles anderes mehr. 

Diesen Erfordernissen wird durch DevOps insofern Rechnung getragen, als die Entwicklung von Software und deren festgelegte Prozesse zum Ausrollen in Produktion gleichsam wie ineinandergreifende Zahnräder des Gesamtprozesses betrachtet werden. 

Dem Aspekt der „Continuity“ kommt hier auf drei Ebenen besondere Bedeutung zu: 

Continuous Integration

Innerhalb der Systemlandschaft eines Unternehmens finden üblicherweise zahlreiche Entwicklungsprozesse parallel statt. Während das Schreiben des Software-Code noch eine sehr individuelle Sache ist, beginnt schon mit dem Erstellen eines Software-Programmes (dem „Build“), die Integration mit anderen Komponenten. Abschluss einer erfolgreichen Integration eines Codeteils ist der erfolgreiche Durchlauf von Unittests, welche vom Entwickler ebenso kontinuierlich entwickelt werden. 

Continuous Delivery

Nach der Erstellung des Softwarepaketes erfolgt die Auslieferung. Während die kontinuierliche Auslieferung auf Testumgebungen noch dem Entwickler hilft, Codeänderungen zu erproben, kann eine schnelle Auslieferung auf Integrationsumgebungen den Fachbereich frühzeitig einbinden. Ebenso können hier Software-Pakete, welche parallel von verschiedenen Abteilungen erstellt worden sind, frühzeitig getestet werden. 

Continuous Deployment

Dies ist praktisch die Königsdisziplin der Kontinuität im Zusammenhang mit DevOps. Hier ist das Ziel, mehr oder minder ohne Unterbrechung auf vollautomatisierte Art und Weise verlässliche und vollständig getestete Software in Produktion zu nehmen. 

Dabei wird über zahlreiche Automatismen sichergestellt, dass jedes Stück Software die vorgegebenen Prozesse durchläuft, bevor es in der Produktion ankommt – insbesondere wird über mehrstufige Regressionstests sichergestellt, dass die modifizierte Software keine negativen Auswirkungen auf bestehende Funktionalitäten haben. Mit den angesprochenen Automatismen erreicht man ein straffes und effizientes Abhandeln besagter Prozesse, was häufige Integrations-Aktivitäten ermöglicht – mit dem letztendlichen Ziel, solche Integrationen nahezu kontinuierlich durchzuführen. Dadurch vermeidet man „große“ Releases (mit all den ihnen innewohnenden Risiken). 

Um dies zu ermöglichen, bedarf es der Berücksichtigung mehrerer Komponenten:

  • Agile Entwicklung
    Um neue Software nahezu kontinuierlich ausrollen zu können, ist es erforderlich, die Entwicklung in kleineren definierten Schritten voranzutreiben. Hierfür ist die klassische Wasserfall-Methode relativ ungeeignet. Agile Methoden (wie Scrum oder Kanban) bieten sich aufgrund ihres iterativen Vorgehens hier ebenso an wie etwaige Hybrid-Methoden, die auf kontinuierliche Einbindung der Stakeholder setzen.
  • Automatisierte Tests
    Das kontinuierliche Ausrollen der Software setzt umfangreiche Tests voraus, durch welche sichergestellt wird, dass keinerlei negative Auswirkungen ins produktive System eingespeist werden. Diese Tests müssen aus Zeitgründen vollautomatisch ablaufen und ebenso automatisch im Fehlerfall eine Benachrichtigungskette anstoßen.
  • Kulturelle Veränderungen
    Auch wenn es ein Ziel von DevOps ist, möglichst viele technische Prozesse zu automatisieren, dürfen zwischenmenschliche Aspekte nicht außen vor gelassen werden. Häufig sind Fach‑, Entwicklungs- und insbesondere Operationsabteilungen autark und räumlich getrennt. Kommunikation findet nur bei Problemen statt. Viele Prozesse sind komplex und zeitaufwendig, insbesondere wenn manuelle Schritte notwendig sind. Bei der Einführung von DevOps ist es wichtig, dass alle Abteilungen an einem Strang ziehen und die Kommunikation erhöht wird, dann werden alle von dem neuen Ansatz profitieren.

Nagler & Company hat in all diesen Bereichen –Continuous Integration, Continuous Delivery und Continuous Deployment – langjährige Erfahrung auf internationaler Ebene vorzuweisen – unser Know-How entwickelt sich mit den Ideen und Lösungen im Markt weiter.

Change is Constant – sprechen Sie uns an.

Das könnte Sie auch interessieren

Folgen Sie ForumF auf LinkedIn?

Alle News von ForumF.at finden Sie auch im Business-Netzwerk LinkedIn.

Wöchentlich die wichtigsten News

Melden Sie sich für den kostenlosen Newsletter an und erhalten Sie jeden Donnerstag die aktuellsten News aus der österreichischen Finanzmarketingszene direkt in Ihrem Posteingang.

In Kooperation mit

FMVÖ