Frage

Vor einiger Zeit kam ich zu erkennen, dass fast jedes Kundenprojekt, das ich bisher gearbeitet hat eine wichtige Gruppe von Akteuren vernachlässigt. Systemadministratoren

Diese stillen Helden sind in der Regel erst am Ende eines Projektes beteiligt und sind mit einer ausführbaren Blackbox von Bits nach links, die sie installieren müssen, zu unterstützen und für Jahre zu halten zu kommen. Jedes Mal, wenn ein Problem mit dieser Blackbox tritt sie müssen einen Weg finden, zu lösen es mit was auch immer zufällig Stück Information und Tool-Unterstützung, die sie von der Blackbox oder die zugrunde liegenden Plattform zur Verfügung gestellt, und wenn dies nicht ausreicht, dann haben sie improvisieren .

Wenn sie hatten als Stakeholder in das Projekt von Anfang an beteiligt würden sie eine Chance gehabt haben, potenzielle Probleme vorherzusagen und das Projektteam darüber zu informieren. Aber die Realität ist anders und obwohl ich als Entwickler würde gerne an den Systemadministrator als zusätzliche Stakeholder einzubinden, können externe Faktoren verhindern, dass dies geschieht.

In diesen Situationen würde Ich mag unsere stillen Helden so gut helfen, wie ich kann. Also meine Frage ist:

Was ist ein Systemadministrator Wunsch von uns Entwickler würden, wenn wir die Systeme entwickeln werden sie halten?

Wenn Sie ein Systemadministrator sind sagen Sie bitte eine Kriegsgeschichte über ein schwieriges Problem, das Sie einmal hatten und welche Entwickler getan haben könnte, um es für Sie machen es leichter zu lösen.

War es hilfreich?

Lösung

Verschiedene Dinge, einschließlich (aber wahrscheinlich nicht darauf beschränkt werden) diese, die nicht in Prioritätsreihenfolge sind:

  • Keine Anforderung verwenden privilegiert installieren
  • Option zur Verwendung privilegierter installieren
  • Option für verteilte installieren (so kann es auf einem Server und verwendet auf anderen Rechnern installiert werden)
  • saubere Deinstallation
  • Sensible Upgrade-Muster
  • Option wählen Installationsort
  • Minimale Abhängigkeiten von anderer Software
  • Minimale Streuung von Daten rund um das System (do-Dump nicht Sachen in / etc, / usr / lib / var / adm, ...)
  • Keine ständig wachsenden Protokolle
  • Automatische Installation
  • Scripted installieren
  • Online-Dokumentation (auf der Maschine - sowie im Internet)
  • Man Seiten vielleicht
  • Einfache Konfiguration
  • Leicht machen Endanwender zugänglich
  • Keine Sicherheitsrisiken
  • Keine besonderen Benutzer oder Gruppen (oder ein begrenzte Anzahl - höchstens einen speziellen Benutzer, eine spezielle Gruppe ist ein Ziel, wenn auch nicht immer erreichbar)
  • Entweder keine ‚nach Hause telefonieren‘ Funktionalität oder nur dann, wenn explizit konfiguriert (darf nicht Standard)
  • Gute Protokollierung der Diagnose, wenn es ein Problem gibt
  • Guter technischer Support zur Verfügung, wenn es ein Problem gibt
  • Keine Anforderung Aktivierungscode zu erhalten während der Installation
  • Keine Anforderung die Maschine nach einem Neustart installieren
  • Die Fähigkeit, laufen alte und neue Versionen
  • parallel

Viel hängt davon ab, was die Software ist und wie es verwendet wird. Die Anforderungen an ein GUI-Programm, das auf Windows, Linux und MacOS X funktioniert unterscheiden sich radikal von den Anforderungen für eine Netzwerk-Daemon - aber das Ziel soll nach wie vor stabil, zuverlässig, einfach zu verwaltende Software sein

.

Beachten Sie, dass es große Unterschiede zwischen Software von einer Inhouse-Abteilung vorbereitet für den Einsatz innerhalb eines Unternehmens und Software für den Einsatz vorbereitet von Kunden außerhalb des Unternehmens, das die Software entwickelt.

Andere Tipps

Wenn zwangsläufig ein Problem auftritt, achten Sie auf das, was der Sysadmin sagt und ihm glauben. Nicht nur die Klage von Hand aus, wenn es nicht mit Ihrer ersten Einschätzung paßt.

War Geschichte: Zurück vor etwa 6 Jahren war ich für ein kleineres Produktionsgesellschaft sysadminning und sie beschlossen, eine Software zu kaufen Planung der vorbeugenden Wartung auf ihre Ausrüstung zu handhaben. Eines seiner Merkmale war Wartungsanforderungen von E-Mail-Import, aber wir hatten gelegentlich Probleme mit Fehlern an den Mail-Server während dieses Prozesses zu sprechen, und ich wurde schließlich werfen Sie einen Blick auf mich während eines Telefonats mit dem Entwickler genannt. Das Gespräch mehr Iterationen von

beteiligt
  

Entwickler: Ich habe nie von jemandem gehört habe   diese Art von Schwierigkeiten, im Gespräch mit   der Mail-Server. Es hat eine sein   Firewall-Problem.

     

Me: Ich bin in der Firewall angemeldet,   Ausführen eines Paket-Sniffer, und beobachten   Verkehr Ihrer App durchfahren, ohne irgendwelche   Probleme. Es wird durch die Firewall nur in Ordnung.

     

Entwickler: Nein, nein - es hat eine sein   Firewall-Problem.

(Am Ende stellte sich heraus, dass das Problem war, dass die App eine POP3-Verbindung geöffnet wird, lesen Sie alle Mail, wartete auf den Benutzer, die Aufgaben zu planen, schickte dann einen POP-Befehl die E-Mail zu löschen, nachdem alle Anfragen hatten geplant. Wenn der Benutzer mehr als 15 Minuten in Anspruch nahm die Planung zu tun, Zeit die POP-Verbindung und die App war zu erholen nicht in der Lage, so dass es statt gestorben. und dann mußte der Benutzer die Terminierung wiederholen, es bedeutete wahrscheinlich würde nehmen lange genug wieder Zeit aus ...)

Ich denke, eine Kombination der folgenden Optionen:

1) Schwellenwert der Kapazität -> Welche Maschinen braucht es diese Software ausführen und welche Metriken verwendet werden soll, zu bestimmen, wann diese Zahl kann sich ändern, z.B. gehen von 2 bis 3-Datenbankserver oder 10 bis 15 webservers gehen. Wie bullige funktioniert die Hardware notwendig sein und macht ein Teil wichtiger als andere, zum Beispiel tut CPU Materie mehr als RAM, was Festplattenkonfiguration und Raum?

2) Kochbuch-Stil zur Fehlerbehebung. -> Wenn etwas schief geht, wie leicht dies in Code kategorisiert werden, Daten oder Netzwerkfehler

3) Schematische Darstellung der Umgebungen -> Was die Entwickler der Fall ist, Test- und Produktions Instanzen dieser Software aussehen? Gibt es diese und möglicherweise andere Umgebungen jetzt ausgeführt?

4) Wartung -> Gibt es Log-Dateien in Berichte, wöchentliche Fehlerprotokolle zu analysieren um zu schicken, oder eine Art von Hausarbeit mit der Software zu tun, zum Beispiel den Server neu starten wöchentlich.

5) Sicherheit -.> Gibt es Konten erstellt und verwaltet und eine Sicherheitspolitik zu skizzieren, wer welche Berechtigungsstufe auf dem System

Das wären die wichtigsten sind, die mir in den Sinn kommen.

Systemadministratoren im Allgemeinen will die folgenden:

  • Transparenz in den Betrieb des Systems. So eine Art von GUI, die Systemeinstellungen und vielleicht eine Geschichte von Systemproblemen zeigt, sowie Listen von dem, was das System richtig verarbeitet hat.
  • Ein klarer kontextsensitiver Eskalationsweg für Probleme. Damit meine ich, dass jedes Problem Typ ein paar Notizen über die Festsetzung hat, und eine Person oder ein Team, das in Kontakt gebracht werden kann, wenn das Problem nicht schnell behoben werden kann und Eskalation erforderlich ist.
  • Um proaktiv, das heißt die Lage Endnutzern über ein Systemproblem, bevor ein Endbenutzer informiert ihn zu informieren. So eine Art sofortiger Alarmierung für jedes System Problem, das ist machbar,
  • Nicht von Warnungen überflutet werden. Also, wenn ein Alarm eingetroffen ist, nicht mehr Benachrichtigungen für das gleiche Problem; nur eine weitere Nachricht, wenn das System wieder betriebsbereit ist.
  • Detaillierte Protokollierung so etwas wie das Ereignisprotokoll verwenden (unter Windows) für eine tiefere Untersuchung eines Problems.

Dass das System nur funktioniert so, dass er nach Hause, um Kinder zu gehen.

Gut dokumentierte Abhängigkeiten, die mit der Software kommen verpackt, wenn meine Heimat Admin Erfahrungen sind alles durch zu gehen.

Nun, mehr ein Schrecken als ein Krieg Zeit Geschichte:. Eine Anwendung erhalten, die ohne ersichtlichen Grund Anforderungen unter einem Administrator-Benutzerkonto lief zu

Ein paar zufälligen Dinge, die ich denke, würde in einer Anwendung hat schön sein:

  • Bedeutungsvolle Befehlszeilenargumente
  • Eine Art von Scripting-Fähigkeiten (wenn erforderlich)
  • Jede Art von Fortschrittsanzeige für lange laufende Operationen
  • Fehlerprotokollierung
  • Konsistente UI

Einfache Wartung Paket!

Es sollte hirntot einfach sein, die Software zu installieren und zu aktualisieren, und das gilt auch für Abhängigkeiten. Wenn es eine Menge von Abhängigkeiten und Unter Abhängigkeiten sind, und Sie sind nicht geneigt, die Nuancen des jeweiligen Betriebssystems des Paket-Management-Methodik zu meistern, wäre es schön, eine Paketversion mit allen erforderlichen Abhängigkeiten zusammen in einen riesigen Tarball gebündelt anbieten . Führen Sie das Skript, schmeißen sie alle in / usr / local / IhrProjekt, und ihnen sagen, wo ist der Start / Stop / Restart-Skript.

Jedes Projekt ‚Kapazitätsplanung‘ zusammen mit seiner Systemarchitektur. Systemadministratoren sollte in der Kapazitätsplanung sowie in der abschließenden Überprüfung der Systemarchitektur eingebunden werden. Dies wird ihm helfen, ein besseres das System zu verstehen und für den Einsatz und die Träger hergestellt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top