Umgebungsnamensstandards in der Softwareentwicklung?

15

Mein Projekt leidet derzeit unter Problemen mit der Benennung der Umgebung. Unterschiedliche Menschen haben unterschiedliche Annahmen darüber, welche Umgebungen benannt werden sollten oder wie die Namen bezeichnet werden, und dies führt zu Verwirrung, wenn sie darüber diskutieren. Ich habe ein bisschen recherchiert und keine Standards da draußen gefunden.

Die Begriffe umfassen "Local", "Sand", "Dev", "Test", "User", "QA", "Staging" und "Prod" (plus ein paar weitere, nach denen verschiedene Personen gefragt haben).

Ich suche nicht nur nach Meinungen, aber wenn es eine gibt, die "jeder" hat, nehme ich sie - ich versuche Definitionen zu finden, die von irgendeiner Autorität weiterentwickelt wurden, auch wenn sie inoffiziell sind.

Hier sind die Umgebungen, die wir derzeit verwenden:

  1. Umgebung auf dem PC des Entwicklers
  2. Gemeinsame Umgebung, in der Entwickler Code direkt zum Selbsttest hochladen
  3. Gemeinsame Umgebung, in der Standards und Funktionen von QA-Mitarbeitern getestet werden
  4. Gemeinsame Umgebung, in der der ausgefüllte und von der Qualitätssicherung überprüfte Code von den Projektanforderern genehmigt wird
  5. Umgebung, die die endgültige Umgebung als letzte Überprüfung und Vorbereitung für die Bereitstellung widerspiegelt
  6. Endgültige Umgebung, in der Code verwendet wird

Ich weiß, wie ich sie nennen würde, aber gibt es einen Standard dafür? Danke im Voraus.

Marcus_33
quelle
Vielen Dank. Ich war mir dieser SE nicht bewusst. Ich wusste, dass es nicht zu ServerFault oder SuperUser gehört, aber ich habe noch nie von programers.se gehört.
Ich habe es für einen Umzug markiert, daher sollte es im Idealfall den Weg zur richtigen Stelle finden.
Ricardo Altamirano
Je nach Projektumfang verfügen Sie möglicherweise über weniger oder mehr Umgebungen.
Yusubov

Antworten:

11

Es gibt nicht nur keinen festen Standard, sondern auch kein festes Muster. Die Abhängigkeiten zwischen dem, was Sie erstellen, und dem Maßstab, in dem Sie es sich leisten können, es zu replizieren, bestimmen, wie dies von einer Art Projekt zu einer anderen aussehen muss.

Ich habe mit nur einer Umgebung und mit bis zu 13 gearbeitet.

In der Reihenfolge, die Sie beschreiben, würde ich normalerweise sehen, wie sie sie so benannten

  1. local oder dev, wenn Sie im nächsten Schritt dev nicht verwenden
  2. dev oder integration, wenn dies die erste Bereitstellung nach dem Zusammenführen ist
  3. Test oder QA
  4. uat oder Annahme oder QA, wenn Sie QA in Schritt 3 nicht verwendet haben
  5. Pre-Prod, Staging oder Performance, wenn es sich um einen Performance-Schritt für die endgültige Abmeldung handelt
  6. prod

Mein Rat wäre, sich auf die Namen, Zwecke und Kriterien zu einigen, die für jedes Produkt oder für jedes Projekt eingegeben und verlassen werden sollen. Wenn Sie dann feststellen, dass Sie eine siebte Umgebung benötigen oder nur fünf in einem Fall aus einem anderen Grund in der Zukunft benötigen, sprechen Sie erneut mit Das Team.

Wenn Sie Teammitglieder haben, die sich mit der Semantik der Namen auseinandersetzen, können Sie die Namen immer einfach fallen lassen und sie als Prod minus 6 bis Prod minus 1 mit einem Manager bezeichnen, der sich einfach geweigert hat, seine QS-Mitarbeiter in einer Umgebung testen zu lassen das wurde nicht "QA" genannt

Wenn Sie die Server selbst benennen möchten, empfehle ich normalerweise, sie nach der Autorität zu benennen, unter der sie stehen. Normalerweise sieht das so aus:

  • Dev-Maschinen können von Entwicklern manipuliert werden
  • QS-Maschinen können nicht von Entwicklern manipuliert werden, werden aber auch nicht vom Produktionssupport überwacht
  • Prod-Maschinen sind das Geschäft von Prod Support

Die meisten Leute verwenden diese Art von Namen als Präfixe oder Suffixe, so dass Sie eine Kette wie "devsqllweb" "qasqlweb" "prodsqlweb" oder so ähnlich haben.

Rechnung
quelle
Sie sagen im Grunde genommen das Fazit, zu dem ich gekommen bin. Ich hatte gehofft, dass es da draußen eine Art Standard gibt, damit ich die Situation lösen kann, ohne im Wesentlichen willkürliche Standards zu setzen. Mein Problem besteht darin, dass in unserer "Haupt" -Umgebungsstruktur weniger Umgebungen vorhanden sind als in diesem Projekt, an dem ich arbeite (daher kann ich nicht einfach das spiegeln, was wir normalerweise verwenden) Man hat die gleichen Standards. Ich lasse diese Frage noch ein paar Stunden offen, um zu sehen, ob sich jemand anders einmischt, aber dies ist die Antwort, vor der ich Angst hatte.
Marcus_33
Ich habe Standards dafür gesehen. Sie sind die Art von Standards, die leider entweder eine Meinung oder sehr spezifisch für eine bestimmte Situation sind.
Bill
2

Ich denke, aus einer strukturierteren, regulierteren Branche kommt die Möglichkeit, einen Server zu benennen, zu einem Luxus, den ich nicht habe. Die Namen unserer Server richten sich nach den IT-Richtlinien unseres Unternehmens. Daher können wir den tatsächlichen Hostnamen des Computers nicht steuern.

Was wir getan haben, ist die Route der DNS-Namen und Aliasnamen gegangen. Die Regel ist der erste Buchstabe identifiziert die allgemeine Rolle des Servers im Entwicklungsprozess (die Zone)

  • p = Produktion
  • d = Entwicklung
  • s = inszenierung
  • t = testen

Dann haben wir maximal drei Buchstaben, um die Rolle der Maschine zu identifizieren

  • app = Anwendung
  • db = Datenbank
  • web = frontend / web
  • kas = caching

Nach einer Ziffer, wenn sich mehrere Maschinen in dieser Zone befinden. Wir veröffentlichen dies auf dem internen Dokumentationsserver und stellen es im Rahmen jeder neuen Dokumentation für Projekte und während der Bootstrapping-Phase zur Verfügung.

Dies gilt für die Server, die Teil des Entwicklungsprozesses sind. Für Support-Maschinen haben wir eine liberalere Politik; und wenn wir einen neuen Hilfsserver bereitstellen müssen, bitten wir die Entwicklungsteams, einen Namen zu finden, den sie bevorzugen.

Dies hat zu einigen interessanten Ergebnissen geführt. Meine beiden Favoriten sind cerberus (interner Proxy) und hades (Dokumentationsserver / Intranet).

Ich bin sicher, dass dies keine bewährte Methode ist, aber wir verwenden sie und sie funktioniert bei uns.

Burhan Khalid
quelle
1

Es gibt keine feste Definition. Es gibt einige, die von der üblichen Praxis verwendet werden (die Sie aufgelistet haben). Wenn Sie jeder Umgebung in Toy Story den Namen eines Charakters geben möchten, können Sie dies tun (dies wird jedoch nicht empfohlen).

Ich würde ein Glossar für das Unternehmen erstellen, in dem wir die Namen angeben, die wir verwenden möchten.

Miyamoto Akira
quelle