Heute übernehmen die meisten Unternehmen eine Form von DevOps und Konfigurationsmanagementphilosophie. Sie automatisieren ihre Pipelines. Einige Unternehmen konzentrieren sich möglicherweise auf Software -Release -Prozesse, während sich andere möglicherweise stärker auf das größere Prozessmanagement konzentrieren.
Release Engineering wird oft mit DevOps verwechselt. Es gibt einen guten Grund. Die Rollen und Verantwortlichkeiten überschneiden sich oft. DevOps können als Superet of Release Engineering angesehen werden.
Release Engineering
Release Engineering ist eine Disziplin, die sich auf die Bereitstellung von Software konzentriert. Es versucht, Software von besserer Qualität zu einer zuverlässigen und vorhersehbaren Geschwindigkeit zu machen. Sein Mandat ist die Verbesserung der Software -Erstellung und -freigabe -Pipeline. Hier sind einige Dinge Release Engineering betont:
- Implementiert Versionskontrolle - Release Engineering versucht, dem Code Rückverfolgbarkeit und Zuverlässigkeit hinzuzufügen. Der Code wird also in Versionsrepositorys wie Git, SVN, Perforce usw. beibehalten. Entwicklungsteams verwenden diese Versionskontrollsysteme, um die Codeentwicklung besser zu verfolgen.
- Automatisiert Build- und Release -Pipelines - Freisetzungstechnik konzentriert sich darauf, Automatisierungswerkzeuge zu finden, um die Geschwindigkeit und Zuverlässigkeit des Freigabeprozesses zu verbessern. Vom ersten Code-Commit in die Versionskontrolle bis zum Endprodukt, das den Kunden erreicht, verbessert Release Engineering den Prozess weiterhin. Continuous Integration and Continuous Delivery (CI/CD) spielt eine wichtige Rolle in modernen automatisierten Build/Release -Systemen.
- Konfigurationsverwaltung - Wenn der Softwarecode durch verschiedene Zyklen der Entwicklung, Test, Staging und Produktion bewegt wird, stellt das Konfigurationsmanagement sicher, dass die Produktattribute im gesamten Software -Lebenszyklus konsistent sind.
- Produktion und Bereitstellung - Jede Software, die an den Kunden in einer Produktionsumgebung übergeht, muss eng mit seinem Ursprung verbunden sein. Wenn es also ein Problem gibt, können Unternehmen es wieder an die Quelle zurückverfolgen.
DevOps
DevOps hat ein breiteres Mandat. Es konzentriert sich darauf, eine funktionsübergreifende Zusammenarbeit zwischen Teams zu schaffen.
In der Vergangenheit arbeiteten Entwicklungsteams und Betriebsteams in ihren eigenen Silos. Als Entwicklungsteams ihren Code in der Produktion einsetzten, gäbe es hitzige Diskussionen darüber, wer Verantwortung für Produktionsprobleme übernehmen würde. Außerdem möchte das Entwicklungsteam die neuesten und coolsten Funktionen, die eingesetzt werden, während das Betriebsteam von Risiken nicht eingehen möchte. Es führte zu ständigen Konflikten zwischen den beiden Gruppen.
Der Zweck von DevOps -Praktiken war es, Entwicklung und Operationen näher zusammenzubringen. Hier sind einige Dinge, auf die sich DevOps konzentrieren:
- Infrastrukturaufbau und Bereitstellung - traditionell die geplanten und bereitgestellten IT -Abteilungen und Bereitstellungen in der Infrastruktur. DevOps Philosophie fördert einen Entwickler-zentrierten Ansatz. Die Pipeline wird erstellt, um den Entwicklungsprozess zu erleichtern, um die verschiedenen Phasen durchzuführen und reibungslos zu zyklieren. Entwickler haben mehr Verantwortung dafür, wie sich ihre Anwendungen in der Produktion verhalten.
- Konfigurationsverwaltung - DevOps -Teams sehen eine breitere Ansicht des Konfigurationsmanagements. Während Release Engineer. Ziel ist es, der gesamten Organisation zu helfen, einen glatteren Betrieb durch Automatisierung durchzuführen.
- CI/CD - kontinuierliche Integration und kontinuierliche Lieferung ist ein großer Teil der DevOps -Philosophie. Eine reife DevOps -Praxis verwendet CI/CD, um herkömmliche IT -Aufgaben zu automatisieren, indem die Infrastruktur als Code verwendet wird.
- Organisatorische Überwachung und Verbesserungen - DevOps -Praktiken betonen das Sammeln von Daten zu Prozessen zur Analyse und Verbesserung. Das Sammeln von Daten, das Umwandeln in umsetzbare Intelligenz und die Verwendung der aktuellen Prozesse ist eine wichtige Verantwortung für DevOps.
Abschließend
Aufgrund des Schnittpunkts der Bedenken hinsichtlich der Verbesserung der Softwareprozessverbesserungen ist Release Engineering häufig mit DevOps verwechselt. Aber DevOps haben einen größeren Umfang. Während Release Engineering als separate Abteilung leben kann, erfordert DevOps eine stärkere Integration in den gesamten Workflow des Unternehmens. Es ist einfacher, eine Release -Ingenieurpraxis einzurichten, da die Schritte konkret sind. DevOps erfordert ein Verständnis des organisatorischen Verhaltens, der Arbeitskultur und der Infrastruktur. Bei erfolgreicher DevOps geht es nicht nur um das Produkt, sondern um die gesamte Organisation.
Weiteres Studium
Auf dem Weg zu Definitionen für die Veröffentlichungstechnik und DevOps