Środowisko przejściowe a środowisko produkcyjne

80

Pracuję dla firmy, w której budujemy aplikacje korporacyjne i utrzymujemy trzech środowiskach: rozwoju (lub dev ) inscenizacja (lub etap ) i produkcji (lub prod ).

Znaczenie dev jest intuicyjne: jest to środowisko używane podczas tworzenia aplikacji.

Jaka jest różnica między postoju i produkcyjnych środowiskach?

rdasxy
źródło

Odpowiedzi:

122

W mniejszych firmach (nie jest jasne, jak duże jest twoje), wspólne są trzy środowiska (deweloper, scena, produkcja). Większe firmy często mają środowisko kontroli jakości między deweloperem a sceną.

Zwykle dzielą się one w następujący sposób:

dev : Kopiowanie kodu roboczego. Wprowadzane są tutaj zmiany dokonane przez programistów, dzięki czemu można przetestować integrację i funkcje. To środowisko jest szybko aktualizowane i zawiera najnowszą wersję aplikacji.

qa : (Nie wszystkie firmy będą to miały). Środowisko dla zapewnienia jakości; zapewnia to rzadziej zmienianą wersję aplikacji, z którą testerzy mogą przeprowadzać kontrole. Umożliwia to raportowanie wspólnej wersji, dzięki czemu programiści wiedzą, czy określone problemy wykryte przez testerów zostały już usunięte w kodzie programistycznym.

inscenizacja : jest to kandydat do wydania, a to środowisko jest zwykle lustrem środowiska produkcyjnego. Obszar przejściowy zawiera „następną” wersję aplikacji i służy do końcowych testów warunków skrajnych oraz zatwierdzeń klienta / kierownika przed uruchomieniem.

produkcja : Jest to obecnie wydana wersja aplikacji, dostępna dla klienta / użytkowników końcowych. Ta wersja najlepiej się nie zmienia, z wyjątkiem zaplanowanych wydań.

Mikrofon
źródło
7
Jest to słuszne pod względem oprogramowania. Są też dane: dev i qa są połączone z testowymi bazami danych, więc programiści i testerzy nie muszą się martwić o wprowadzenie zmian, podczas gdy produkcyjne bazy danych do przemieszczania i produkcji. Pomyśl o banku.
Juan Lanus,
4
Istnieje inny wymiar: kim są użytkownicy? dev: programiści; qa (wolę qc): testerzy; inscenizacja i produkcja: faktyczni użytkownicy. W aplikacjach biznesowych ze średnimi bazami danych programiści nie mogą widzieć, nie mówiąc już o dotykaniu produkcyjnych baz danych, są oni wyposażeni w anonimowe wersje.
Juan Lanus,
3
@JuanLanus: Zazwyczaj środowisko pomostowe korzysta z kopii danych produkcyjnych - zazwyczaj nie chcesz zmieniać danych produkcyjnych ze środowiska pomostowego.
sleske,
1
@JuanLanus: Przepraszam, miałem na myśli „nie chcesz, aby zmiany w środowisku pomostowym były widoczne w środowisku produkcyjnym” - dlatego w pomostowaniu używana jest kopia danych produkcyjnych, ale (zazwyczaj) kopia do edycji.
sleske
2
Nazywamy qa „testem”: dev (ja), test (zespół), inscenizacja (klient), prod (świat)
Rudie
13

Jestem nieco zaskoczony, że środowisko testowe również nie istnieje, ponieważ jest to miejsce, do którego można przejść kod, zanim awansuje się na etap.

Aby odpowiedzieć na pytanie:

Środowisko sceniczne powinno jak najbardziej odzwierciedlać środowisko produkcyjne.

Służy do weryfikacji procedur wdrażania - upewnienia się, że gdy kod jest gotowy do produkcji, można go wdrożyć bez powodowania problemów.

Oznacza to, że kod przechodzi do przemieszczania - jest to kompleksowo testowane i regresowane, aby zapewnić, że wdrożenie przebiegło zgodnie z planem (i wyeliminować wszelkie problemy, jeśli tak nie było).

Oded
źródło
1
Dokładnie - istnieje możliwość przeniesienia kodu ze środowiska deweloperskiego do bardziej kontrolowanego środowiska, między innymi, pokazując wszelkie zależności pominięte w dokumentacji oraz wszelkie zakłopotanie „dobrze działało na naszej maszynie” w środowisku live / prod.
Danny Staple,
Nie ma to jednak nic wspólnego z pytaniem ...
nbro
4

Środowisko sceniczne jest środowiskiem przedprodukcyjnym, które odzwierciedla produkcję. Często może zawierać pewne dane produkcyjne, dzięki czemu grupa testowa złożona z rzeczywistych użytkowników i testerów zapewniania jakości może potwierdzić, że wstępnie wydana baza danych / dane wdrożą się i będą działać poprawnie w środowisku podobnym do produktu, zwykle za pomocą skryptowych przypadków użycia i regresji testy.

Jak zauważa @Oded, zazwyczaj środowisko kontroli jakości jest używane przez testerów kontroli jakości do testowania kodu.

JW8
źródło
3

Moje doświadczenie z rządem USA / Departamentem Obrony IT polega na tym, że:

  1. ROZWÓJ / TEST jest przeznaczony dla programistów i programistów aplikacji. Budują i testują aplikacje poza systemami korporacyjnymi.
  2. Po zakończeniu aplikacji zostaną one wdrożone w środowisku IT na serwerach PAKUJĄCYCH.
  3. Od tego momentu aplikacje są obsługiwane przez IT, migrowane do STAGING (co pozwala IT opracować / sprawdzić wytyczne dotyczące implementacji, konfiguracji itp.). Testy użytkowników mogą do pewnego stopnia odbywać się na tym etapie, aby sprawdzić, czy aplikacja będzie działać zgodnie z oczekiwaniami w systemie, który replikuje PRODUKCJA.
  4. Jeśli wszystkie plany testów są zakończone i można je przejść, aplikacja zostanie przeniesiona do PRODUKCJI i przejdzie w tryb podtrzymania (tj. Operacje i konserwacja lub O&M).
  5. Nowe aktualizacje od deweloperów zostaną również wdrożone w OPAKOWANIU i proces ten będzie kontynuowany.
Cmac
źródło
2
Witamy w Programistach. Nasza strona koncentruje się na wysokiej jakości pytaniach i odpowiedziach. To nie jest jak typowe fora. Więcej informacji znajdziesz w centrum pomocy. Nie rozumiem, w jaki sposób twoja odpowiedź odnosi się do punktów, które nie zostały jeszcze przedstawione przez inne odpowiedzi na to pytanie.
2

Jako web developer, istnieją głównie trzech środowisk do rozważenia praktycznie :

Produkcja : środowisko skonfigurowane do obsługi końcowej wersji produktu skierowanego do użytkowników końcowych. Jest zoptymalizowany pod kątem bezpieczeństwa i wydajności. Jest hostowany na serwerze na żywo. Wymaga ostrzeżonego i pilnego wsparcia. Ma to kluczowe znaczenie dla danych. Dlatego jego dane są regularnie archiwizowane. Obejmuje również zarządzanie ryzykiem i odzyskiwanie po awarii. Środowisko produkcyjne jest skonfigurowane do wyświetlania przyjaznych błędów użytkownikom końcowym.

Przemieszczanie : środowisko skonfigurowane do obsługi kandydata do wydania aplikacji po zadeklarowaniu zawieszenia kodu. Kieruje do kierownika / właściciela projektu wraz z zespołem programistycznym, aby uzgodnić zakres kandydata do wydania. Obejmuje to zapewnienie jakości, a także zespół programistów, aby dokonać ostatecznych poprawek i wyposażenia przed wprowadzeniem do produkcji. Najlepszą praktyką jest naśladowanie środowiska produkcyjnego przy użyciu najnowszych danych dostępnych z aktywnej bazy danych skopiowanej ze środowiska produkcyjnego. Zwykle środowisko przejściowe jest dostępne tylko dla wewnętrznego zespołu i interesariuszy, dlatego jest ono zabezpieczone na serwerze publicznym lub opublikowane w środowisku intranetowym, jeśli wszyscy interesariusze mogą uzyskać dostęp do sieci lokalnej. Środowisko przemieszczania jest skonfigurowane do wyświetlania średnich lub pełnych błędów technicznych.

Programowanie : Prywatne środowisko skonfigurowane przez jednego programistę na jego maszynie do sprawdzania własnej pracy podczas cyklu programowania, zwykle zwanego sprintem w środowisku scrum. Środowisko programistyczne jest skonfigurowane do wyświetlania pełnych błędów technicznych.

Shadi Namrouti
źródło