Standardy nazewnictwa środowiska w rozwoju oprogramowania?

15

Mój projekt ma obecnie problemy z nazewnictwem środowiska. Różni ludzie mają różne założenia co do tego, jakie środowiska należy nazwać lub co oznaczają nazwy, co powoduje zamieszanie podczas ich omawiania. Przeprowadziłem trochę badań i nie znalazłem tam żadnych standardów.

Określenia obejmują „lokalny”, „Sand”, „Dev”, „Test”, „User”, „QA”, „Staging” i „Prod” (oraz kilka innych, o które pytały różne osoby)

Nie szukam tylko opinii, choć jeśli jest taka, że ​​„wszyscy” ją mają, wezmę ją - staram się znaleźć definicje posunięte przez jakiś autorytet, nawet jeśli jest to nieoficjalne.

Oto środowiska, z których obecnie korzystamy:

  1. Środowisko na komputerze programisty
  2. Wspólne środowisko, w którym programiści przesyłają kod bezpośrednio do autotestu
  3. Wspólne środowisko, w którym standardy i funkcjonalność są testowane przez pracowników QA
  4. Współdzielone środowisko, w którym wypełniony i sprawdzony przez QA kod został zatwierdzony przez wnioskodawców projektu
  5. Środowisko, które odzwierciedla środowisko końcowe jako kontrola końcowa i przygotowanie do wdrożenia
  6. Środowisko końcowe, w którym używany jest kod

Wiem, co bym je nazwać, ale czy istnieje jakiś standard w tej sprawie? Z góry dziękuję.

Marcus_33
źródło
Dzięki. Nie wiedziałem o tym SE. Wiedziałem, że nie należy do ServerFault ani SuperUser, ale nigdy wcześniej nie słyszałem o programmers.se.
Oflagowałem go do przeniesienia, więc idealnie powinien znaleźć drogę do właściwej strony.
Ricardo Altamirano
W zależności od zakresu projektu może istnieć mniej lub więcej środowisk.
Yusubov

Odpowiedzi:

11

Nie tylko nie ma ustalonego standardu, ale tak naprawdę nie ma ustalonego wzorca. Zależności między tym, co budujesz, a skalą, na jaką możesz sobie pozwolić na jego replikację, będą decydować o tym, jak to musi wyglądać od jednego projektu do drugiego.

Pracowałem z zaledwie jednym środowiskiem i aż 13.

W sekwencji, którą opisujesz, zwykle widziałbym, jak nazwali je coś w rodzaju

  1. local lub dev, jeśli nie użyjesz dev w następnym kroku
  2. dev lub integracja, jeśli jest to pierwsze wdrożenie po scaleniu
  3. test lub kontrola jakości
  4. uat, akceptacja lub kontrola jakości, jeśli nie zastosowałeś kontroli jakości w kroku 3
  5. pre-prod, inscenizacja lub wydajność, jeśli jest to krok wydajności do ostatecznego podpisania
  6. szturchać

Moją radą byłoby uzgodnienie nazw, celów i kryteriów wprowadzania i pozostawiania każdego z nich dla każdego produktu lub projektu, wtedy, gdy uświadomisz sobie, że potrzebujesz siódmego środowiska lub potrzebujesz tylko 5 w jednym przypadku z innego powodu w przyszłości, przedyskutuj ponownie z drużyna.

Jeśli masz członków zespołu, którzy rozwieszają semantykę nazw, zawsze możesz po prostu usunąć nazwy i nazwać ich od prod minus sześć do prod minus jeden z jednym menedżerem, który po prostu odmówił poddania swojego personelu kontroli jakości w środowisku który nie został nazwany „QA”

Jeśli chcesz nazwać same serwery, zwykle sugeruję nadanie im nazwisk według ich uprawnień. Zwykle wygląda to tak:

  • maszynami deweloperskimi mogą manipulować programiści
  • Maszyny kontroli jakości nie mogą być manipulowane przez programistów, ale nie są również monitorowane przez wsparcie produkcyjne
  • maszyny prod są działem wsparcia prod

większość ludzi używa takich nazw jako przedrostków lub sufiksów, dzięki czemu masz łańcuch taki jak „devsqllweb”, „qasqlweb” „prodsqlweb” lub coś w tym rodzaju.

Rachunek
źródło
Zasadniczo podajesz wniosek, do którego doszedłem. Miałem nadzieję, że istnieje jakiś standard, żebym mógł rozwiązać sytuację bez ustanawiania zasadniczo arbitralnych standardów. Mój problem polega na tym, że nasza „główna” struktura środowiska ma mniej środowisk niż ten projekt, nad którym pracuję (więc nie mogę po prostu odzwierciedlać tego, czego normalnie używamy) - a mój projekt ma wielu konsultantów z różnych miejsc, co oznacza, że ​​nie jeden ma te same standardy. Zostawię to pytanie otwarte przez kilka godzin, aby sprawdzić, czy ktoś inny się w niego zagra, ale to była odpowiedź, której się obawiałem.
Marcus_33
Widziałem w tym standardy. Niestety są to standardy, które są albo opiniami, albo bardzo specyficzne dla konkretnej sytuacji.
Bill
2

Wydaje mi się, że pochodząc z bardziej ustrukturyzowanej, regulowanej branży, możliwość nazwania serwera to luksus, którego nie mam. Nazwy naszych serwerów są zgodne z polityką informatyczną naszej firmy - więc rzeczywista nazwa hosta maszyny nie jest czymś, co możemy kontrolować.

To, co zrobiliśmy, zniknęło z trasy nazw DNS i aliasów. Reguła jest pierwszą literą określającą ogólną rolę serwera w procesie programowania (strefa)

  • p = produkcja
  • d = rozwój
  • s = inscenizacja
  • t = testowanie

Następnie mamy maksymalnie trzyliterową nazwę identyfikującą rolę maszyny

  • aplikacja = aplikacja
  • db = baza danych
  • web = frontend / web
  • kas = buforowanie

Po cyfrze, jeśli w tej strefie znajduje się wiele komputerów. Publikujemy to na wewnętrznym serwerze dokumentacji i udostępniamy jako część nowej dokumentacji projektów i na etapie ładowania początkowego.

Dotyczy to serwerów, które są częścią procesu programowania. W przypadku maszyn wsparcia mamy bardziej liberalną politykę; a kiedy musimy zapewnić nowy serwer pomocniczy, prosimy zespoły programistów o wymyślenie preferowanej nazwy.

Doprowadziło to do kilku interesujących, moje dwa ulubione to cerberus (wewnętrzny serwer proxy) i hades (serwer dokumentacji / intranet)

Jestem pewien, że nie jest to najlepsza praktyka, ale z tego korzystamy i działa dla nas.

Burhan Khalid
źródło
1

Nie ma ustalonej definicji. Jest kilka takich, które są używane przez powszechną praktykę (którą wymieniłeś). Jeśli chcesz nadać każdemu środowisku nazwę bohatera w Toy Story, możesz (nie będzie go jednak polecać).

Chciałbym stworzyć słownik dla firmy, w którym nadalibyśmy nazwy, których chcielibyśmy używać.

Miyamoto Akira
źródło