Release Management für Infrastruktur [geschlossen]

7

Verwendet jemand Release-Management-Prinzipien für die Systemadministration der Infrastruktur auf die gleiche Weise wie für die Softwareentwicklung?

Ich bin seit mehr als 10 Jahren im Bereich der Systemadministration tätig und muss mich noch einem Unternehmen stellen, das Release-Management-Prinzipien verwendet, um die Serverinfrastruktur und die Anwendungskonfiguration so zu verwalten, wie es für die Softwareentwicklung erfolgt. Dinge wie das Externalisieren von Konfigurationen, das Überprüfen von Konfigurationen in und aus einem versionierten Repository, die automatisierte Bereitstellung von Konfigurationen auf Systemen, die Förderung durch geeignete Nicht-Produktumgebungen, automatisierte Komponententests von Komponenten usw.

Ich bin gespannt auf die Anwendungen und Prozesse, mit denen diese Konfigurationen und Bereitstellungen verwaltet werden. Auch wenn jemand Versionshinweise für eine Konfigurationsbereitstellung erstellt?

Zusätzlicher Kommentar - Ich stimme zu, dass das blinde Abonnieren eines methodischen Rahmens Sie nicht zu einer besseren Organisation macht, und das frage ich nicht. Ich versuche festzustellen, ob es bestimmte Konzepte gibt, die für die Systemadministration genauso gelten können wie für die Softwareentwicklung. Wenn ich beispielsweise eine Konfigurationsänderung an einem System in Prod vornehmen möchte, woher weiß ich dann, dass das, was ich in Dev getestet habe, wirklich zu Prod verschoben wurde? Ich würde sagen, wenn Sie ein System hätten, auf dem diese Konfiguration in ein Repository eingecheckt, versioniert und dann automatisch auf einem System in prod bereitgestellt wurde, würde dies einen großen Beitrag dazu leisten, sicherzustellen, dass die Dinge ordnungsgemäß funktionieren, sobald sie für die Produktion bereitgestellt werden.

BoxerBucks
quelle

Antworten:

5

Ich verbringe ziemlich viel Zeit damit, über dieses Problem nachzudenken. Bei meiner großen Internetfirma ist meine Aufgabe das interne Release-Management der Software, die auf unseren vielen Servern ausgeführt wird. Wir haben tatsächlich eine Menge Arbeit geleistet, um zu versuchen, Release-Management-Prinzipien auf die Infrastruktur- oder Systemadministration anzuwenden. Während unser Software-Verpackungssystem für die Außenwelt verfügbar ist, sollten die allgemeinen Prinzipien dieselben sein.

Hier ein Beispiel: Früher musste ein Administrator beim Einrichten von Webservern daran denken, die VIP-Adresse als Alias ​​für die Loopback-Adresse festzulegen, um den Computer in Rotation zu versetzen. Wir haben ständig damit gekämpft, dass Maschinen ausgetauscht und dieser wichtige Schritt übersehen wurde. Das Ergebnis wäre ein Server, der bereit sitzt, aber den Datenverkehr nicht bedienen kann, da er von der VIP als ausgefallen markiert wurde.

Die von uns verwendete Lösung war ein Softwarepaket, das wir in unsere allgemeinen Versionen integriert haben. Wir haben ein Template-System, das Serverfarm-spezifische Einstellungen für jede der etwa 600 Farmen generiert. Diese Einstellungen werden dann vom Verpackungssystem angewendet, wenn das entsprechende Softwarepaket installiert wird.

In diesem relativ einfachen Paket, das wir erstellt haben, wurde einfach die Einstellung pro Farm übernommen und im System-Loopback festgelegt. Dadurch wurde das Problem, dass Systeme versehentlich von der VIP als heruntergefahren markiert wurden, vollständig beseitigt.

Wir haben diese Methode auch auf andere Teile des Systems angewendet. Das Ergebnis war, dass wir einen Großteil der Systemkonfiguration schrittweise in unser Software-Release-System verschoben haben. Wir erstellen und vertreiben Software-Releases, die alle erforderlichen Softwarepakete enthalten. Diese Pakete übernehmen wiederum die Einstellungen pro Farm und wenden sie an, um Dinge wie die Loopback-Adresse zu korrigieren.

Dies bleibt ein ziemlich hochrangiger Mechanismus. Es gibt andere Systeme, die sicherstellen, dass das Basisbetriebssystem auf einem Server geladen ist und dass Sysadmin-Benutzerkonten installiert sind. Sobald Sie diese Ebene überschritten haben, bemühen wir uns jedoch sehr, alle möglichen Systemkonfigurationen in Einstellungen zu verschieben, die dann von Paketen gelesen werden. Wir sind sehr zufrieden mit diesem Ansatz für die Verwaltung von ca. 10.000 Servern.

Phil Hollenback
quelle
1

Dies ist aus mehreren Gründen eine Art geladene Frage.

Erstens gibt es keine Möglichkeit, Software zu entwickeln. Einerseits verfügen Sie über traditionelle, wasserfallähnliche Modelle, bei denen die Anforderungen im Voraus erfasst werden und die Software einem sehr starren, unveränderlichen Lebenszyklus bis zum Abschluss einer Hauptversion folgt. Auf der anderen Seite haben Sie Agile-Modelle, bei denen es möglicherweise alle ein oder zwei Wochen eine neue Version gibt. Nach meiner Erfahrung spiegelt sich das erstere tendenziell im Unternehmenssoftwaremodell (ERP-Systeme und dergleichen) wider, während sich das letztere tendenziell in kleineren, weniger komplexen Systemen (LAMP-Stacks usw.) widerspiegelt.

Zweitens: Nur weil Sie ein methodisches Framework abonnieren können, heißt das nicht, dass Sie sich Unternehmenskatastrophen wie ITIL und COBIT ansehen sollten (zumindest dann, wenn Unternehmen naiv in die Implementierung einfließen, ohne zu überlegen, was sie tatsächlich tun und warum ). Der richtige Weg, um ein IT-Problem anzugehen, besteht darin, herauszufinden, wie hoch Ihr Return-on-Investment für eine mögliche Prozessverbesserung tatsächlich sein wird, und dann zu entscheiden, ob es implementiert werden soll. Wenn Sie blind für die Anforderungen Ihres Unternehmens und die Arbeitsabläufe der Mitarbeiter sind, die zur Unterstützung seiner Technologie beitragen, werden Sie nichts anderes erreichen, als eine Menge Zeit und Geld für etwas zu verschwenden, weil Sie in einem Blog eines Mannes gehört haben, dass dies der Fall ist eine "Best Practice" für jemanden in seiner jeweiligen Situation zu einem bestimmten Zeitpunkt. Wenn du'

Sicher, es gibt viele Geschäfte, die sich dieser Mentalität zumindest in irgendeiner Form anschließen. Es ist der ganze Grund, warum Projekte wie Puppet, Chef und Cfengine existieren. Ob sie alles tun, worüber Sie sich erkundigen, ist eine Frage des Grades - wie es sein sollte.

jgoldschrafe
quelle
Danke, ich schätze den Einblick. Ich würde denken, dass Sie vielleicht nicht alle Framework-Konzepte abonnieren, aber einige davon scheinen zumindest theoretisch sehr nützlich zu sein. Es liegt an Ihnen, klug zu sein, wie Sie sie in die Praxis umsetzen.
BoxerBucks
1

Wir verwenden Puppet , um alle unsere Konfigurationen zu verwalten. Zusätzlich zu den historischen Daten von Puppet überprüfen wir auch unsere Konfigurationen in SVN.

sreimer
quelle
Danke - das habe ich mich gefragt. Wie Benutzer Konfigurationen in ihren Umgebungen verwalten.
BoxerBucks
0

Ich benutze Git für Softwareentwicklungszwecke, aber ich benutze es auch für alle Konfigurationen und praktisch jeden Text, von dem ich Versionen behalten muss. Dann benutze ich entweder Git Push oder Rsync, um Sachen zu bewegen. Ich glaube nicht, dass solche Dinge von Admins viel benutzt werden, weil es (meiner Erfahrung nach) nicht so viele Überkreuzungen zwischen den Leuten in jeder Disziplin gibt.

Iain
quelle
Ich glaube auch nicht, dass Systemadministratoren dies verwenden, deshalb habe ich mich gefragt. Ich denke, wir könnten davon profitieren, wenn wir dies tun und die Konfigurationen als Release mit einer Version und einem Bereitstellungsmechanismus behandeln.
BoxerBucks