Was ist DevOps?
Entwicklungsoperationen (DevOps) vereinen und automatisieren die Bemühungen der Softwareentwicklung und IT-Operationen. Das bedeutet, dass die beiden Teams, die früher getrennt voneinander arbeiteten, nun zusammenarbeiten, um eine effiziente und qualitativ hochwertige Lieferung zu gewährleisten.
DevOps kombiniert kulturelle Prinzipien, Taktiken und Ressourcen, die die Fähigkeit der Organisation erhöhen, Apps und Dienstleistungen zu liefern. Es entwickelt und steigert die betriebliche Effizienz im Vergleich zu herkömmlichen Softwareentwicklungs- und Technologiemanagementprozessen. Um so effektiv wie möglich zu arbeiten, greifen Ingenieure oft auf DevOps-Plattformen zurück, um kontinuierliche Lieferung durchzuführen und zu verwalten.
Die bemerkenswertesten DevOps-Kulturen und -Praktiken basieren auf Beiträgen aller Anwendungsbeteiligten: Plattform- und Infrastruktur-Engineering, Sicherheit, Compliance, Governance, Risikomanagement, Geschäftsbereiche, Endbenutzer und Kunden.
Arten von DevOps
Die Rolle von DevOps ist ziemlich allgemein, da sie einen Ansatz zur Erstellung und Bereitstellung von Software beschreibt. Die Anpassung dieser Methodik für verschiedene Abteilungen und Aufgaben führt zu guten Ergebnissen. Nachfolgend sind einige der spezifischen Bereiche aufgeführt, in denen DevOps integriert wurde:
- NetDevOps/NetOps bringt DevOps-Praktiken in die Netzwerk-Welt. Mehr Konfiguration wird durch softwaredefinierte Netzwerke automatisiert. NetDevOps bietet mehrere Vorteile, die von der Einfachheit der Bereitstellung durch Netzwerkautomatisierung bis hin zu strengeren Qualitätskontrollen und Tests reichen, die mit einem kontinuierlichen Bereitstellungsansatz durchgeführt werden.
- DevSecOps/SecOps integriert Sicherheit und Software. Es hilft Sicherheitsanwendungen, reaktionsfähiger und sicherer zu werden, da Bedrohungen erkannt werden können, sobald sie auftreten.
- DataOps ist eine Methode, bei der Teams, die an Datenanalysen arbeiten, die Qualität und Durchlaufzeit verbessern, ähnlich wie DevOps dies für die Softwareentwicklung getan hat.
- CloudOps wendet DevOps-Prinzipien auf eine cloud-native Umgebung an. Da Cloud-Anbieter vollständig programmierbare Anwendungsprogrammierschnittstellen (APIs) auf ihren Systemen bereitstellen, ist die Automatisierung dieser Bereitstellungen recht einfach.
- ChatOps ist verantwortlich dafür, Bots in den Vordergrund zu stellen. Es ermöglicht Bots, automatisierte Aufgaben basierend auf natürlicher Spracheingabe auszuführen. ChatOps arbeitet daran, Workflows zu erstellen, um einen höheren Automatisierungsgrad zu ermöglichen.
- AIOps/MLOps ist ein Ansatz für NetOps, SecOps und DevOps, der künstliche Intelligenz (KI) und maschinelles Lernen (ML) verwendet, um Systeme zu integrieren und IT-Operationen zu automatisieren. Mit dieser Technologie können Systeme Probleme erkennen, Alarme senden, Tickets öffnen und andere Aufgaben ohne menschliches Eingreifen ausführen.
- NoOps steht für „keine Operationen". Das Konzept hier ist, dass Entwickler alles in der IT-Abteilung mit einer Selbstbedienungsinfrastruktur automatisieren. Diese Idee automatisiert die Operationen vollständig, während DevOps-Prinzipien für Tests und kontinuierliche Verbesserung sowie kontinuierliche Bereitstellung (CI/CD) verwendet werden.
DevOps-Stufen
DevOps-Lebenszyklusphasen und Darstellungen können sich je nach Produkt unterscheiden, aber sie lassen sich normalerweise auf diese Phasen reduzieren:
- Planung: Entwickler entwickeln neue Funktionen und Funktionalitäten für die Veröffentlichung. Die Ideen stammen aus priorisiertem Endbenutzer-Feedback, Fallstudien und Beiträgen aller internen Stakeholder. Das Ziel ist es, den Wert des Produkts zu maximieren, indem Funktionen produziert werden, die das gewünschte Ergebnis liefern.
- Entwicklung: In dieser Phase testen, codieren und erstellen Entwickler neue und verbesserte Funktionen basierend auf Benutzerstories und Backlog-Elementen. Es ist üblich, Techniken wie Pair Programming, Peer-Code-Reviews und testgetriebene Entwicklung (TDD) zu kombinieren. Bevor sie ihren Code im kontinuierlichen Lieferprozess weitergeben, führen Entwickler häufig die "innere Schleife" auf ihren lokalen Arbeitsstationen aus, indem sie den Code schreiben und testen.
- Kontinuierliche Lieferung/Integration: Der neu gestaltete Code wird in den bestehenden integriert, getestet und für die Bereitstellung verpackt. Beispiele für routinemäßige Automatisierungsaufgaben sind das Auschecken des Codes aus einem Quellcode-Repository, das Zusammenführen von Codeänderungen in eine "Master"-Kopie und die Automatisierung der Kompilierung, Unit-Tests und ausführbaren Verpackung. Wenn es um ein Binär-Repository geht, sollten Unternehmen diese Phase für die nächste Stufe speichern.
- Kontinuierliche Bereitstellung: Der neu gestaltete Code, der in den bestehenden integriert wurde, durchläuft automatisierte Tests und wird automatisch in die Produktionsumgebung freigegeben. Der Integrationslaufzeit-Build-Output wird in eine Laufzeitumgebung gestartet, typischerweise eine Bereitstellungsumgebung, in der automatisierte Tests auf Qualität, Sicherheit und Datenschutz durchgeführt werden. Entwickler können Probleme erkennen und beheben, wenn sie Fehler finden, bevor Endbenutzer sie sehen. Häufige Umgebungen für Entwicklung, Test und Produktion benötigen jeweils strengere Qualitätskontrollen als die vorherige. Bei der Bereitstellung in einer Produktionsumgebung ist es normalerweise am besten, mit einer kleinen Untergruppe von Benutzern zu beginnen, bevor man auf alle Benutzer erweitert, sobald die Zuverlässigkeit festgestellt wurde.
- Betrieb: Diese Phase tritt ein, sobald die Funktionen in eine Produktionsumgebung geliefert und in Betrieb genommen werden. Die Überwachung des Verhaltens, der Leistung und der Verfügbarkeit der Funktionen garantiert, dass die Funktionen für Endbenutzer einen Wert schaffen. Unternehmen müssen sicherstellen, dass das Netzwerk, der Speicher, die Plattform, der Computer und die Sicherheitslage in Ordnung sind. Der Betrieb garantiert, dass die Funktionen ordnungsgemäß funktionieren und es keine Dienstunterbrechungen gibt. Wenn etwas schief geht, alarmiert der Betrieb die Teams über den Vorfall, damit die entsprechenden Mitarbeiter eine Lösung implementieren können.
- Lernen/kontinuierliches Feedback: In dieser Phase wird Feedback von Endbenutzern und Kunden basierend auf den Funktionen, der Funktionalität, der Leistung und dem Geschäftswert gesammelt. DevOps nimmt dieses Feedback, um Verbesserungen und Funktionen für die nächste Veröffentlichung zu planen. Es bedeutet auch, dass Entwickler vergangene Vorfälle aktiv vermeiden können. Diese Phase stellt sicher, dass es eine kontinuierliche Verbesserung gibt.
- Kontinuierliches Testen: Eine effektive Möglichkeit, Risiken und Schwachstellen zu identifizieren, ist das Testen, das es der IT ermöglicht, Gefahren zu akzeptieren, zu reduzieren oder zu beseitigen.
- Sicherheit: DevOps integriert Sicherheit von Anfang an, wenn Sicherheitsprobleme am einfachsten und kostengünstigsten zu beheben sind. Dies geht für den Rest des Entwicklungszyklus weiter. "Shift left" ist der Begriff, der für diesen Ansatz zur Sicherheit verwendet wird.
- Compliance: Dieser Schritt wird am besten in den frühen Phasen des Entwicklungslebenszyklus behandelt. Regulierte Sektoren bieten oft Beobachtbarkeit, Rückverfolgbarkeit und Zugangsanforderungen für die Bereitstellung und Verwaltung von Funktionen. Um dies zu erreichen, sollten Richtlinien im kontinuierlichen Lieferworkflow und in der Laufzeitumgebung geplant, entwickelt, getestet und durchgesetzt werden.
Vorteile von DevOps
DevOps bedeutet, dass Entwicklungs- und Betriebsteams nicht mehr isoliert sind. Sie bieten ihren Nutzern viele Vorteile, darunter:
- Kurze Entwicklungszyklen und schnelle Innovation.
- Verringerte Rollbacks, Bereitstellungsverzögerungen und Wiederherstellungszeiten.
- Bessere Interaktion und Zusammenarbeit.
- Verbesserte Leistung.
- Neue Möglichkeiten für beruflichen Fortschritt.
- Häufigere Bereitstellungen.
DevOps vs. Agile
DevOps vereint Entwicklungs- und Betriebsteams. Agile ist eine kontinuierliche Strategie, die Zusammenarbeit, Kundenfeedback und schnelle Veröffentlichungen betont. Während DevOps ständiges Testen und Liefern betont, arbeitet Agile an laufenden Änderungen.
Agile benötigt kein großes Team, aber DevOps erfordert eine etwas größere Gruppe. DevOps verwendet sowohl "Shift-Left" als auch "Shift-Right", während Agile nur das "Shift-Right"-Prinzip verwendet.
DevOps zielt auf End-to-End-Geschäftslösungen und schnelle Umsetzung ab, während Agile sich auf die Softwareentwicklung konzentriert. Es konzentriert sich auf funktionale und nicht-funktionale Vorbereitung, während DevOps mehr auf betriebliche und geschäftliche Bereitschaft ausgerichtet ist.
Erfahren Sie mehr über Agile, um den Projektmanagementstil zu verstehen, der Ziele durch inkrementellen Fortschritt erreicht.

Sagar Joshi
Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.