Was ist DevOps?
Das Wort DevOps ist eine Kombination aus den Begriffen Entwicklung (Development) und Betrieb (Operations), das einen gemeinsamen Ansatz für die Aufgaben der Anwendungsentwicklungs- und IT-Betriebsteams eines Unternehmens darstellen soll. Entwickler sind in die Belange des operativen Betriebs ihres Systems involviert, ebenso wie sich Mitarbeiter des Betriebs mit Entwicklungsaspekten befassen. Ziel ist es, durch integriertes Agieren rascher und qualitativ bessere Software bereitzustellen und damit verschiedene Probleme traditioneller Vorgehensweisen (Trennung Entwicklung – Test – Betrieb) zu vermeiden.
Im weitesten Sinne ist DevOps eine Philosophie, die eine bessere Kommunikation und Zusammenarbeit zwischen diesen Teams – und anderen – in einem Unternehmen fördert.
Obwohl DevOps keine Technologie ist, wenden DevOps-Umgebungen gängige Methoden und Technologien an. Dazu gehören unter anderem:
- Continuous Integration (CI) und Continuous Delivery (CD) oder Continuous Deployment mit Schwerpunkt auf Aufgabenautomatisierung. Das Continuous-Integration-Tool initialisiert Prozesse, sodass Code in einem gemeinsamen Repository so oft wie nötig ohne manuellen Aufwand erstellt, getestet und validiert werden kann. Continuous Delivery erweitert diese automatischen Schritte durch Tests auf Produktionsebene und Konfigurations-Setups für das Release-Management. Continuous Deployment geht noch einen Schritt weiter und umfasst Tests, Konfiguration und Bereitstellung sowie Überwachungs- und potenzielle Rollback-Funktionen.
- Systeme und Tools, die die Einführung von DevOps unterstützen, einschließlich Softwareentwicklung, Echtzeitüberwachung, Incidentmanagement, Ressourcenbereitstellung, Konfigurationsmanagement und Kollaborationsplattformen.
- Cloud Computing und Container, die gleichzeitig mit DevOps-Methoden implementiert werden. Container sind isolierte Laufzeiten auf einem freigegebenen Betriebssystem und bieten eine Abstraktion, die es ermöglicht, dass Code auf verschiedenen zugrunde liegenden Infrastrukturen von der Entwicklung über das Testen und Staging bis hin zur Produktion gleich ausgeführt werden kann.
DevOps kann mit Agile und anderen Softwareentwicklungen sowie mit IT-Service-Management-Frameworks wie ITIL, Projektmanagement-Richtlinien wie Lean und Six Sigma und anderen Strategien koexistieren.
DevOps verfolgt einen zyklischen Prozess der kontinuierlichen, iterativen Entwicklung und verbessert entscheidend:
- Die Produktqualität: Der zyklische, iterative Charakter von DevOps stellt sicher, dass Produkte kontinuierlich getestet werden, während vorhandene Fehler behoben und neue Probleme identifiziert werden. Vieles davon wird vor jeder Produktivsetzung behandelt, was zu häufigen Releases führt, die es DevOps ermöglichen, Software rascher, mit weniger Fehlern und besserer Verfügbarkeit bereitzustellen.
- Die Verwaltung der Bereitstellung: DevOps integriert Aufgaben der Softwareentwicklung und des IT-Betriebs und ermöglicht es Entwicklern oft, jede Softwareversion mit wenig oder gar keinem Eingreifen der IT-Abteilung bereitzustellen und zu verwalten. Die Bereitstellung kann je nach den individuellen Zielen des Projekts in einer lokalen Infrastruktur oder in öffentlichen Cloud-Ressourcen erfolgen.
DevOps und die Organisation
DevOps und DevOps-Praktiken verbessern die Softwarequalität und die Ergebnisse von Entwicklungsprojekten. Diese können sein:
- Zusammenarbeit und Kommunikation. DevOps beseitigt viele der traditionellen organisatorischen Silos und Barrieren. DevOps-Praktiken bringen Entwickler, IT-Betrieb, Führungskräfte und Anwendungsbeteiligte zusammen, um sicherzustellen, dass die zu erstellende Software so konzipiert, entwickelt, getestet, bereitgestellt und verwaltet wird, dass sie für das Unternehmen und die Benutzer am besten geeignet ist.
- Entwicklungsergebnisse. DevOps verfolgt einen zyklischen Prozess der kontinuierlichen, iterativen Entwicklung. Traditionelle Entwicklungsmethoden, wie z. B. die Wasserfallentwicklung, kodifizieren Anforderungen und Ergebnisse Monate oder Jahre vor dem eigentlichen Entwicklungsprozess. DevOps-Projekte beginnen in der Regel klein mit minimalen Funktionen („MVP“ – Minimal Viable Product) und verfeinern und fügen dann während des gesamten Projektlebenszyklus systematisch Funktionen hinzu. Dies ermöglicht es dem Unternehmen, besser auf sich ändernde Märkte, Benutzeranforderungen und Wettbewerbsdruck zu reagieren.
- Produktqualität. Der zyklische, iterative Charakter von DevOps stellt sicher, dass Produkte kontinuierlich getestet werden, während vorhandene Fehler behoben und neue Probleme identifiziert werden. Vieles davon wird vor jeder Veröffentlichung behandelt, was zu häufigen Releases führt, die es DevOps ermöglichen, Software mit weniger Fehlern und besserer Verfügbarkeit im Vergleich zu Software, die mit traditionellen Paradigmen erstellt wurde, bereitzustellen.
- Verwaltung der Bereitstellung. DevOps integriert Aufgaben in der Softwareentwicklung und im IT-Betrieb und ermöglicht es Entwicklern oft, jede Softwareversion mit wenig oder gar keinem Eingreifen der IT-Abteilung bereitzustellen und zu verwalten. Dadurch werden IT-Mitarbeiter für strategischere Aufgaben frei. Die Bereitstellung kann je nach den individuellen Zielen des Projekts in einer lokalen Infrastruktur oder in öffentlichen Cloud-Ressourcen erfolgen.
Eine gut ausgeführte DevOps-Umgebung ermöglicht es einem Unternehmen, wettbewerbsfähigere und qualitativ hochwertigere Softwareprodukte schneller auf den Markt zu bringen, mit geringerem Support- und Wartungsaufwand als bei herkömmlichen Entwicklungsmethoden.
ResultONE kann mit Ihnen die erfolgreiche DEVOps- Reise gestalten!