DevOps

Agile Software-Entwicklung und Prozessautomatisierung

Von der Idee bis zur Freigabe von Softwareprodukten

Der Unternehmensalltag ist bestimmt durch immer mehr Software – ob in der

   DevOps für eine optimale Zusammenarbeit in der Verwaltung Verwaltung
   DevOps für eine optimale Zusammenarbeit in der Forschung Forschung
   DevOps für eine optimale Zusammenarbeit in der Produktion Produktion

Die unterschiedliche Software und Funktionen müssen immer schneller, in kurzen Intervallen bereitgestellt werden.

DevOps für eine optimale Zusammenarbeit von Softwareentwicklung und operationalen IT-Teams. Von der Entwicklung, dem Test, über die Bereitstellung einer Software bis zur optimalen Ausführung.

Die IT-Entwicklung muss die Performance und Stabilität der Anwendung in immer kürzeren Releasezyklen gewährleisten. Auch unser Kunde, ein Unternehmen im Automotive Umfeld, hat eine Vielzahl von Anwendungen mit unterschiedlichen Funktionen in verschiedenen Fachbereichen im Einsatz. Die Vielzahl an unterschiedlichen Applikationen permanent funktionsfähig zu betreiben und schnell an sich ändernde Anforderungen von Fachabteilungen, Kunden und Märkten anzupassen, ist eine herausfordernde Aufgabe.

DevOps für eine agile Softwareentwicklung.

Software
   DevOps für eine agile Softwareentwicklung um Software schneller und zuverlässiger zu erstellenschneller und zuverlässiger erstellen,
   DevOps für eine agile Softwareentwicklung um Software zu testen und freizugebentesten und freigeben
um damit den Softwareentwicklungsprozess maßgeblich zu verbessern. 

Mit Hilfe von
   DevOps - Integration (CI) um Bereiche der Softwareentwicklung zu automatisierenContinuous Integration (CI),
   DevOps - Continuous Delivery um Teile der Softwareentwicklung zu automatisierenContinuous Delivery und
   DevOps - mit Hilfe von Continuous Deployment (CD) lassen sich Phasen der Softwareentwicklung automatisierenContinuous Deployment (CD)
lassen sich sämtliche Phasen (Testing, Configuration, Integration, Deployment, Monitoring) der Softwareentwicklung automatisieren.

DevOps  zur Beschleunigung des Entwicklungsprozesses.
Durch eine effektivere Prozessgestaltung kann flexibler auf Änderungen reagiert werden.

Im Rahmen der Planung und Umsetzung der DevOps Strategie haben wir gemeinsam mit unserem Kunden eine Continuous Integration and Continuous Deployment (CI/CD) Pipeline implementiert, die nun nach jeder Änderung die Pipeline startet und der Code die Phasen Build, Test und Deployment durchläuft.

Ein wichtiger Punkt war die Testautomatisierung, ein wesentlicher Bestandteil der CI/CD-Pipeline. Mit Microservices für eine Teilfunktion oder einem Service kommt man dem schnellen und schlanken Vorgehen der CI/CD-Pipeline entgegen. Anpassungen sind schneller und unabhängig von den anderen Komponenten umsetzbar. Die Effizienz der Entwicklung erhöht sich, wenn nur ein geschlossener Funktionsumfang je Microservice abgebildet wird. Zum einen können mehrere agile Units parallel an Services arbeiten und zum anderen können Microservices als eigene Prozesse, virtuelle Maschinen oder Docker-Container laufen. Container haben den Vorteil, dass sie unabhängig von dem darunterliegenden Betriebssystem funktionieren und die Orchestrierung mit Tools, wie z. B. Kubernetes sehr einfach ist.

Für die CI/CD-Pipline sind Microservices als Softwarearchitektur ideal geeignet. Sobald die Eckpunkte für einen Service feststehen, erfolgt die Umsetzung. Alle neuen Codes der Entwickler werden im System zur Versionsverwaltung abgelegt und aktivieren damit die Pipeline. Indem lediglich eine Änderung pro Source-Code Version durchgeführt wird, können Störungen den entsprechenden Neuerungen leichter zugeordnet werden. Für kurze Bereitstellungszyklen eignet sich die Modulierbarkeit von Systemen in Form von Microservices hervorragend. Und da für jeden Pipeline-Abschnitt ein erfolgreicher Test zu durchlaufen ist, steigt die Qualität der Software Stück für Stück - je weiter ein Softwarestand in der CI/CD-Pipeline voranschreitet, desto höher die Qualität. Und nachträgliche Korrekturen der Software, die viel Zeit und Mühe bedeuten würden, lassen sich dadurch vermeiden. Denn am Ende der Pipeline steht ein Softwarepaket, dessen Qualität gesichert ist und das produktionsreif sowie installierbar ist.

DevOps  unterstützt bei der Prozessoptimierung zwischen Softwareentwicklung und operationalen IT-Teams und beseitigt Barrieren für eine zuverlässige und zeitnahe Softwarenutzung.

Die Durchlaufzeit einer Softwareidee bis hin zur Produktivsetzung wird durch Continuous Delivery erheblich reduziert. Dabei sind der agile Prozessrahmen, Microservices und Automatisierungstools wichtige Elemente.

Mit dem Entwicklungsteam unseres Kunden haben wir die nötigen Infrastrukturen designt, um für einen reibungslosen Betrieb zu sorgen. Durch den Einsatz von Containeranwendungen, Microservices und dynamischen Infrastrukturen sowie den DevOps Tools  sorgen wir für die Orchestrierung und Automatisierung der IT-Infrastruktur, um Software stabil und kontrolliert auszuliefern.