Ś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?

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ń.


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).


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.


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.

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.