Die Begriffe beschreiben sehr ähnliche Konzepte und Verantwortlichkeiten und sind im Allgemeinen ein Synonym. Der Begriff "DevOps" ist ein relativ neuer Begriff, der auf der Devopsdays Ghent 2009-Konferenz und den nachfolgenden Devopsdays-Veranstaltungen populär wurde . Es ist am besten in diesem Diagramm beschrieben :
Auf der anderen Seite ist Software Configuration Management ein weit verbreiteter Begriff innerhalb des Berufs und leitet sich von dem nicht softwarespezifischen Begriff Configuration Management ab . Auf Software Configuration Management wird häufig im Kontext des Software-Engineerings verwiesen. Eine einfache Definition gibt Roger Pressman in "Software Engineering: A Practitioner's Approach" :
Es handelt sich um eine Reihe von Aktivitäten, die darauf abzielen, Änderungen zu kontrollieren, indem die voraussichtlich zu ändernden Arbeitsprodukte identifiziert, Beziehungen zwischen ihnen hergestellt, Mechanismen für die Verwaltung verschiedener Versionen dieser Arbeitsprodukte definiert, die auferlegten Änderungen kontrolliert sowie die vorgenommenen Änderungen überprüft und darüber berichtet werden.
Obwohl alle Begriffe, auf die Sie verweisen, vage sind, scheint DevOps nur eine weniger formale Art zu sein, mehr oder weniger dieselben Prinzipien wie Configuration Management oder Software Configuration Management zu beschreiben, wenn man sie aus der Perspektive eines Softwareentwicklers betrachtet. Dies gilt insbesondere für die Priorisierung eng verbundener Teams :
DevOps ist eine Reaktion auf das wachsende Bewusstsein, dass es eine Trennung zwischen dem gibt, was traditionell als Entwicklungsaktivität und dem, was traditionell als Betriebsaktivität angesehen wird. Diese Trennung äußert sich häufig in Konflikten und Ineffizienz.
In demselben Artikel werden die Ähnlichkeiten mit SCM erwähnt:
Das Hinzufügen zur Wand der Verwirrung ist das allzu häufige Missverhältnis bei Entwicklungs- und Betriebswerkzeugen. Werfen Sie einen Blick auf die beliebten Tools, die Entwickler täglich anfordern und verwenden. Dann werfen Sie einen Blick auf die beliebten Tools, die Systemadministratoren täglich anfordern und verwenden. Mit ein paar bemerkenswerten Ausnahmen, wie Bug-Tracker und vielleicht SCM , ist es zweifelhaft, dass Sie großes Interesse daran haben, die Tools der jeweils anderen oder eine signifikante Integration zwischen ihnen zu verwenden. Selbst wenn sich die Tooltypen überschneiden, unterscheiden sich die Implementierungen häufig in jeder Gruppe.
In Bezug auf die Verwendung der Begriffe ist Ihr Vergleich nicht wirklich sinnvoll:
- SCM ist eine Teilmenge von CM, kein Konkurrenzbegriff,
- DevOps ist ein ziemlich neuer Begriff, kein Grund, ihn mit etablierten Begriffen zu vergleichen.
- DevOps stammt (offensichtlich) aus Developer Operations, wird jedoch selten als solches erweitert.
Als langjähriger Senior Software Configuration Manager (10+) höre ich, dass die Begriffe in einer Vielzahl von Situationen des realen Lebens nicht übereinstimmen. Aufgrund der relativen Natur der Positionen ist dies nicht ungewöhnlich für nichttechnisches Personal. Sie haben beide spezifische Rollen, Bedürfnisse und Anforderungen, die ähnlich sind, sich aber meiner Meinung nach klar unterscheiden lassen.
Ich glaube, der beste Weg, die Aufteilung dieser Rollen zu beschreiben, besteht darin, sich auf ihre Relativität zur Interaktion zu konzentrieren. Aus diesem Grund konzentriert sich das Software Configuration Management auf die internen Systeme und Umgebungen sowie auf die Integration, Bereitstellung, Freigabe und Verwaltung von Quellcode. Als Entwickler konzentriert sich DevOps mehr auf den betrieblichen Aspekt der externen Anwendungsarchitektur, wobei ein klares Verständnis des Codes, wie er verwendet werden soll, und der Praxis seiner Umgebung erhalten bleibt. Wenn die Leistung eines Computers Anzeichen einer Verschlechterung aufweist, die Kommunikation zwischen mehreren Anwendungen fehlerhaft ist, die Business-to-Business-Kommunikation (BtB) und / oder Architekturbeschränkungen in Bezug auf eine Produktionsumgebung bestehen, wenden Sie sich an den Developer Operations Lösung.
Nach meiner Erfahrung kann der Software Configuration Manager in der Regel auch diese Aufgaben ausführen. Dabei geht es jedoch nicht mehr um das Verfolgen, Verwalten und Bereitstellen von Umgebungskonfigurationen und Softwarerevisionen. Verwaltung der Software, die die Aufgabentrennung, Fehler- und Fehlerverfolgung, Projektverfolgung sowie den Lebenszyklus und Workflow der Softwareentwicklung ermöglicht. Diese Aufgaben stehen nicht im Mittelpunkt von Developer Operations und sind daher weniger wichtig, können aber dennoch ausgeführt werden.
Ich habe viele Fälle der Verwirrung von jedem gesehen, und in jedem gibt es einige begrenzte Überschneidungen. Am wichtigsten ist es jedoch, die Unterschiede zwischen den Zuständigkeiten der einzelnen unabhängigen Positionen in Bezug auf ihren primären Schwerpunkt zu berücksichtigen. In erster Linie beim Umgang mit intern genutzten Systemen und Hardware zur Verwaltung der Konfiguration von Umgebungen und der Produktfreigabe sollten Sie einen Software Configuration Manager aufsuchen. Wenn Sie sich andererseits mit der Systemleistung, Überwachung, Untersuchung und Diagnose der von Ihren Kunden verwendeten Systeme befassen, sollten Sie sich an Developer Operations oder DevOps wenden.
Nun, dies ist nicht als Schimpfen oder als endgültige Antwort gemeint, sondern vielmehr als persönliche Identifizierung der Unterschiede zwischen den einzelnen Positionen. Ich würde gerne wissen, ob es mir gut geht oder ob diese Antwort die Dinge klarer macht.
quelle
Es würde Ihnen schwer fallen, eine solide Definition für DevOps zu finden. Es ist eher eine Idee als eine Aufgabe. Und es ist zu neu, als dass sich alle darüber einigen könnten, was es genau bedeutet. Trotzdem, hier ist meine Meinung.
DevOps ist eigentlich nur ein neuer Begriff für das Konfigurationsmanagement, aber er wurde gewählt, um zu zeigen, dass es sich bei der Rolle nicht um eine Einpersonenrolle handelt, sondern um eine Zusammenarbeit zwischen dem Entwicklungsteam und dem Betriebsteam.
In der Vergangenheit wurde das Konfigurationsmanagement ausschließlich vom Entwicklungsteam durchgeführt und dann an den Betrieb übergeben, der alles mit tiefem Misstrauen betrachtete. Das ist fair genug, um ehrlich zu sein. Sie sind dafür verantwortlich. Sie sind die ersten, die um 4 Uhr morgens angerufen werden, wenn es schief geht. Sie sollten sich wirklich an der Entwicklung beteiligen.
quelle
Dies ist die einfache Klärung der Frage: DevOps ist ein Begriff, der zur Beschreibung der Koordination oder Beziehung zwischen der Entwicklung (Entwicklung der Programmcodes in der Entwicklungsumgebung) und dem Betrieb (Gewährleistung einer maximalen Verfügbarkeit der Produktionsumgebung) verwendet wird.
Software Configuration Management ist ein Mittel, um diese Koordination zu erreichen. SCM umfasste Tools und Techniken für das Management der Automatisierung des Prozesses des Übergangs von der Entwicklung zur Produktion (Betrieb).
Zusammenfassend verbindet SCM Dev und Ops.
quelle
Ich sehe, dass DEVOPs am Ende der operativen Ausführung ist - Deployment-Automatisierungsskripte, Umgebungs-Buildouts, so etwas. SCM hingegen befasst sich mit der Produktintegrität und der effektiven Verwaltung und Nachvollziehbarkeit von Änderungen an den Produkten. Ich habe ALM immer als Teil von SCM angesehen. Wie um alles in der Welt können Sie Änderungen an einem Produkt verwalten, wenn Sie keine Ahnung haben, welche Treiber für die Änderung verantwortlich sind oder wer sie vorgenommen hat? Bereitstellungs-Frameworks können auf beiden Seiten fallen - und welche Seite immer von den regulatorischen Anforderungen der Organisation abhängt, für die Sie arbeiten. Schließlich möchten Sie, dass ein Entwickler in der Lage ist, einen schnellen Hack auszuführen, der bedeutet, dass Ihr Dialysegerät nur zu 99,99% ordnungsgemäß funktioniert. der Zeit, oder brauchen Sie diese Situation, um Ihren Website-Code zu hacken, weil Ihre Entwickler fest codierte IP-Adressen haben?
quelle