Frage SysAdmin & Entwickler: Verantwortlichkeiten [geschlossen]


Was ist, wenn es um einen Produktions-Webserver geht, Best Practice für Verantwortlichkeiten für den Sysadmin & Entwickler? Insbesondere denke ich über die Aktualisierung / Installation von Software nach. (Nach meinem Verständnis sollte der Entwickler keinen Root-Zugang auf dem Produktionsserver haben.)

Auf einem Produktions-Webserver läuft Wordpress und muss auf die neueste Version aktualisiert werden. Wer ist für die Aktualisierung verantwortlich?

Was ist, wenn die Entwickler benutzerdefinierte gehackte Plugins oder benutzerdefinierte Kerndateien in der App (in diesem Beispiel WP) haben?


26
2017-09-06 21:01


Ursprung


Wo sind die Dokumente des Entwicklers auf den Plugins und wo sind die Backups der Kerndateien und wann wurden die Backups und die Dokumentation zum letzten Mal in Ihrer Entwicklungsumgebung getestet? - ForgeMan
Was ist mit rollenbasierten Berechtigungen? geben Sie ihnen einen sicheren, geprüften Zugang zu dem, was sie tun müssen, ohne den Server zu verschrauben. - allruiz


Antworten:


Ich habe herausgefunden, dass in den meisten Fällen, wenn SIE derjenige sind, der für den physischen Server verantwortlich ist, es am besten ist, den Entwicklern keinen Root-Zugriff zu gewähren.

Dies ist ein bisschen eine "Heilige Krieg" -Debatte, denn ich bin sicher, dass Sie Entwickler finden werden, die anderer Meinung sind. Ich war persönlich auf beiden Seiten dieser Debatte.

Mein Hauptargument dafür, den Entwicklern (sogar 100% vertrauenswürdigen Entwicklern) keinen Root-Zugriff zu geben, liegt darin, dass sie meistens ein Paket benötigen, um XYZ richtig arbeiten zu lassen. Sie gehen voran und installieren es ... oder rekonfigurieren etwas, das bereits vorhanden ist, damit es funktioniert ... oder ... naja ... Sie bekommen die Idee.

Monate vergehen ... der Server muss neu installiert oder neu erstellt werden ... und plötzlich weiß niemand mehr, warum "es auf dem alten Server funktioniert, aber nicht auf dem neuen."

Die Antwort ist natürlich, dass die Dokumentation, die Sie betrachten, nicht all die kleinen Pakete und Verbesserungen enthält, die die Entwickler gemacht haben, um das System beim ersten Mal funktionsfähig zu machen.

Es kann ein Schmerz in der a $$ für beide Seiten sein ... aber wenn der Sysadmin für den Server, die Pakete und die Dokumentation verantwortlich ist ... und der Entwickler ist verantwortlich für die Entwicklung und die Software ... ich denke du ' Ich finde es war es am Ende wert.

Wenn der Entwickler ein benutzerdefiniertes Plugin, Modul, Konfiguration, Tweak ... braucht, kein Problem ... tue es für sie ... aber DOKUMENTATION, damit du es beim nächsten Mal reproduzieren kannst.


21
2017-09-06 21:21



Wie wäre es mit einer Situation, wie ich sie beschrieben habe, bei der der Root-Zugriff nicht benötigt wird, um eine Anwendung zu aktualisieren (wie Wordpress). Wer sollte derjenige sein, der dafür verantwortlich ist, es auf dem neuesten Stand zu halten? - Josh Brower
In diesem speziellen Fall ist es im Grunde Politik (dh. Management-Entscheidung). In meiner Organisation wäre es der Sysadmin, der dafür verantwortlich ist, dass die Server gepatcht und auf dem neuesten Stand gehalten werden und in diesem Fall Wordpress aktualisiert wird. Der Sysadmin hat die Aufgabe, den Server sicher zu halten. Klingt für mich wie (gerade in diesen Tagen) Wordpress auf dem neuesten Stand zu halten ist ein Teil davon. - KPWINC
Wenn Sie einen verwalteten Server in einem Hosting-Unternehmen hätten, würden sie Wordpress wahrscheinlich nicht abdecken. Als Faustregel gilt, wer die Software installiert hat, ist dafür verantwortlich. Aysadmins würde OS, Webserver usw. installieren. Entwickler würden Wordpress installieren. - ollybee


goldene Regel: Lassen Sie nicht zu, dass Nicht-Administratoren etwas berühren, das Sie nicht kaputt machen wollen und für das Sie verantwortlich gemacht werden.

Entwickler sollten Zugang zu einer Testumgebung haben. Sobald ihre Arbeit bereit ist, in die Produktionsmaschine gebracht zu werden, sollte sie an den sys admin übergeben werden. Wenn die Entwickler ihre Arbeit gemacht und das Verfahren ordnungsgemäß dokumentiert haben, wird alles gut gehen. Wenn nicht, müssen sie ihre Rückseiten getreten haben, um nicht angemessen zu prüfen.


16
2017-09-07 00:08



Amen! Eine magische Art, einen Entwickler dazu zu bringen, wegzugehen ... Fragen Sie: "Funktioniert das auf der Dev-Umgebung?" oder "Wo ist dein Bauplan?" - ForgeMan


Ich war auch in diesem Kampf. Meine Antwort ist, dass derjenige, der für die Verfügbarkeit des Servers verantwortlich ist, derjenige ist, der für alle Updates, Änderungen usw. verantwortlich sein soll. Nobodoy sollte diese Funktionen auf dem Server ausführen können. Wenn es Ihre Aufgabe ist, sicherzustellen, dass der Server betriebsbereit ist und wenn der Chef Sie für den Server verantwortlich und verantwortlich hält, liegt es in Ihrer Verantwortung, diesen Server zu warten und zu sichern.

Die meisten Entwickler werden dir sagen, dass sie Zugriff auf die Admin-Ebene benötigen und die meisten von ihnen werden mir nicht zustimmen, aber ich bin diejenige, die es um 2 Uhr morgens neu starten muss, wenn es auflegt, muss es nachher neu erstellen ein fehlgeschlagenes Update, die Ausfallzeit wird gegen meine Abteilung usw. berechnet. Ich muss dem CIO für alles, was Auswirkungen auf unser SLA hat, antworten. Daher bin ich der Einzige, der Zugriff auf die Admin-Ebene erhält. m verantwortlich für alle Komponenten, Updates, Änderungen usw.


12
2017-09-06 23:30



Hier! Hier! : - D 2 - 3 Uhr morgens ist keine lustige Zeit, um sich mit etwas verzogenem Wechsel zu beschäftigen. (Gesehen dort gesehen es ... visudo löste es). - ForgeMan
Ich mag die Idee, dass "wer für die Betriebszeit des Servers verantwortlich ist, derjenige ist, der für alle Updates, Änderungen verantwortlich sein sollte" - Es macht viel Sinn. - Josh Brower


Ich stimme 100% zu. Dev sind die meiste Zeit nicht bewusst, wie Syadmin Dinge funktionieren. Wenn sie etwas brauchen, fragen sie dich, das ist alles. Sie denken darüber nach, wie und wann und Sie liefern ihnen ein brauchbares Paket. (Wie sie E-Mails senden müssen, sind SIE derjenige, der postfix konfiguriert). Außerdem werden sie denken, dass root access in den meisten Fällen die Dinge funktionieren lässt, wenn sie es nicht mit normalem Zugriff tun können. Ich stimme mit anderen hier überein, sie werden nicht um 2 Uhr bei dir sein, wenn du ein Problem siehst. Ich hatte den Fall vor ein paar Wochen, ein Entwickler wollte seine WordPress aktualisieren. Ich sagte ihm zu RTF changelog, für ihn war das nutzlos, der Update-Prozess wird durch eine schöne Schnittstelle gemacht. Naja das Update hat nicht geklappt, ich hatte seine Applikation gespeichert, ich habe das Backup-Skript nicht gemacht. Ohne mich hätte er die Site nicht wiederherstellen können. Also pass auf diese Dinge auf, wir verbringen Zeit damit, Strategien zu entwickeln (Chrooten, Backup, Konfiguration), deshalb sind wir hier (und wir lieben es :)) und Entwickler sollten NIEMALS mit diesen Dingen interferieren (gib Caesar zurück, was Caesar gehört) )


1
2017-09-08 07:17





Es gibt einen Trend, den Unterschied zwischen Dev & Operationen zu verwischen. Machen Sie Ihre Entwickler Sysadmins und Ihre Sysadmins-Entwickler.

In diesem Sinne könnte Wordpress von einigen Arbeiten zur automatisierten (und programmatischen) Bereitstellung von Blogs profitieren. Viele WordPress-Benutzer unterhalten mehr als ein paar WP / WPMU-Instanzen, und ihre zeitgerechte Aktualisierung ist zumindest umständlich.

Sie können einen schönen (und unterhaltsamen) Überblick über die Philosophie finden Agile Infrastruktur-Slides von Agile 2009


1
2017-09-07 09:38





Entwickler sollten nicht in der Produktion verankert sein; Alle, außer den Entwicklern, sind damit einverstanden. Aber die Entwickler können ihren Kuchen auch essen und essen. Ich bin etwas überrascht, dass das niemand explizit erwähnt hat:

Einer meiner langjährigen kleinen Geschäftskunden hat eine Website mit einer Drupal-Installation, mehreren WordPress-Sites, einem SMF-Forum und einigen anderen zufälligen kleinen Web-Apps. Ich bin der Vertrag Systemadministrator (und aus historischen Gründen auch aktualisieren / hacken WordPress und SMF, wenn nötig) und mein Kunde hat seinen eigenen Vertrag Drupal-Entwickler. Die Umgebung besteht aus mehreren virtuellen VMware-Maschinen in einem öffentlichen Cloud-Anbieter.

Die Entwickler wollen Root-Zugriff haben und brauchen es. Es liegt in ihrer Verantwortung, die nginx-Rewrite-Regeln zu schreiben, damit zum Beispiel alle ihre eigenen Drupal-Sachen funktionieren. Aber in der Hölle gebe ich ihnen keinen Root-Zugang auf dem Produktionsserver, und mein Klient stimmt mir darin zu.

Also haben wir kompromittiert: Sie erhalten Root-Zugriff auf den Test-Webserver (der in der Regel mit Ausnahme der IP-Adresse identisch mit der Produktion ist und sich in derselben Cloud befindet). Was, wie die Produktion, etckeeper hat, damit ich sehen kann, welche Änderungen sie machen müssen und welche Pakete sie installiert haben. Ich kann dann entweder die Änderungen in die Produktion ziehen oder ihnen sagen, was mit dem, was sie tun wollen, nicht stimmt. Und wenn sie wirklich vermasselt sind (sie haben es noch nicht, danke Gawd), kann ich ihre Änderungen leicht rückgängig machen.

Sie haben überhaupt keinen Zugriff auf den Produktionsdatenbankserver; Sie haben nicht einmal Benutzeranmeldungen. Nur mein Kunde und ich.

(Die Web-App selbst, sie stellen direkt mit git aus, und wenn sie es kaputt machen, können sie es reparieren und meinem Kunden erklären, warum sie weiterhin seine Entwickler sein sollten. Obwohl mein Klient mich über solche E-Mails informieren würde lache über sie oder facepalm.)


1
2017-08-27 08:09





Root == Systemadministrator.

Benutzer == Entwickler, DBAs oder Benutzer.

Root kennt keinen Schlaf, wenn ein Server außer Betrieb ist, root schützt Benutzer vor sich selbst, root schützt die Daten der Benutzer vor dem Netz, root stellt den Zustand des Servers über alle Benutzer. Root's Ass ist in der Leitung, wenn der Server offline ist. Server glücklich, root glücklich!

Häufige Gründe für ungeplante Ausfallzeiten: Benutzer, Undokumentierte Änderungen in der Umgebung und Baggerlader. Server tun genau das, was ihnen gesagt wird, nicht zufällig. Hacker, die Sie fragen, es ist nicht, wenn, wenn wenn ... so die Notwendigkeit für eine "Wurzel".

00:33 CDT wissen Sie, wo sich Ihre Backups und Disaster Recovery-Dokumente befinden? :-p


0
2017-09-07 05:34