준비 환경과 프로덕션 환경


80

엔터프라이즈 응용 프로그램을 구축하는 회사에서 일하고 있으며 개발 (또는 개발 ), 준비 (또는 준비 ) 및 생산 (또는 생산 )의 세 가지 환경을 유지 관리합니다 .

의 의미 디바이스는 직관적이다 : 그것은 응용 프로그램의 개발 과정에서 사용되는 환경입니다.

준비 환경 과 프로덕션 환경 의 차이점은 무엇입니까 ?

답변:


122

규모가 작은 회사의 경우 (자신의 규모가 명확하지 않은 경우) 3 가지 환경 (개발, 단계, 프로덕션)이 일반적입니다. 대기업은 종종 개발자와 단계 사이에 QA 환경을 갖습니다.

이들은 일반적으로 다음과 같이 분류됩니다.

dev : 작업 코드 복사. 개발자가 변경 한 사항이 여기에 배포되어 통합 및 기능을 테스트 할 수 있습니다. 이 환경은 빠르게 업데이트되며 최신 버전의 응용 프로그램이 포함되어 있습니다.

qa : (일부 회사에 해당되는 것은 아닙니다). 품질 보증을위한 환경; 이것은 테스터가 검사를 수행 할 수있는 덜 자주 변경되는 응용 프로그램 버전을 제공합니다. 이를 통해 공통 개정판을보고 할 수 있으므로 개발자는 테스터가 발견 한 특정 문제가 개발 코드에서 이미 수정되었는지 여부를 알 수 있습니다.

준비 :이 릴리스 후보이며이 환경은 일반적으로 프로덕션 환경의 미러입니다. 준비 영역에는 "다음"버전의 응용 프로그램이 포함되어 있으며 실제 운영 전에 최종 스트레스 테스트 및 고객 / 관리자 승인에 사용됩니다.

production : 클라이언트 / 최종 사용자가 액세스 할 수있는 현재 출시 된 응용 프로그램 버전입니다. 이 버전은 예약 된 릴리스를 제외하고 변경하지 않는 것이 좋습니다.


7
이것은 소프트웨어 측면에서 옳습니다. dev와 qa는 테스트 데이터베이스에 연결되므로 개발자와 테스터는 프로덕션 데이터베이스를 준비하고 프로덕션 사용하는 동안 변경 사항을 도입하는 것에 대해 걱정할 필요가 없습니다. 은행을 생각하십시오.
Juan Lanus

4
또 다른 차원이 있습니다. 사용자는 누구입니까? dev : 개발자; qa (qc 선호) : 테스터; 준비 및 생산 : 실제 사용자. 평균 데이터베이스가있는 비즈니스 응용 프로그램에서 개발자는 프로덕션 데이터베이스를 직접 볼 수 없으며 익명 버전이 제공됩니다.
Juan Lanus

3
@JuanLanus : 일반적으로 준비 환경은 프로덕션 데이터 의 복사본 을 사용 합니다. 일반적으로 준비 데이터를 준비에서 변경하고 싶지 않습니다.
sleske

1
@JuanLanus : 죄송합니다. "준비 환경에서 편집 내용을 생산 환경에 표시하지 않으려는 것"을 의미했습니다. 따라서 준비는 프로덕션 데이터의 복사본을 사용하지만 일반적으로 편집 가능한 복사본을 사용합니다.
sleske

2
우리는 qa 'test': dev (me), test (team), staging (client), prod (world)
Rudie

13

스테이징으로 승격되기 전에 코드가 이동하는 위치와 같이 테스트 환경도 존재하지 않는다는 것에 약간 놀랐습니다.

질문에 대답하려면 :

무대 환경은 프로덕션 환경을 가능한 한 가깝게 반영해야합니다.

배포 절차를 확인하는 데 사용됩니다. 코드가 준비되면 문제없이 배포 할 수 있습니다.

즉, 코드가 준비 단계로 진행됩니다. 배포가 계획대로 진행되었는지 확인하고 (그렇지 않은 경우 문제를 해결하기 위해) 포괄적으로 테스트 및 회귀됩니다.


1
정확하게는-문서에서 누락 된 종속성을 표시하고 라이브 / 프로드 환경에 대한 '기계에서 잘 작동했습니다'라는 난처함을 보여주기 때문에 개발 환경에서 코드를보다 통제 된 환경으로 가져 오는 것이 존재합니다.
Danny Staple

이것은 질문과는 아무런 관련이 없습니다 ...
nbro

4

무대 환경은 프로덕션을 미러링하는 사전 제작 환경입니다. 실제 사용자와 QA 테스터로 구성된 테스트 그룹이 사전 릴리스 된 코드베이스 / 데이터가 일반적으로 스크립트 된 사용 사례 및 회귀를 통해 찌르기 같은 환경에서 올바르게 배치 및 작동하는지 확인할 수 있도록 프로덕션 데이터가있을 수 있습니다. 테스트.

@Oded가 지적한 것처럼 일반적으로 QA 테스터가 코드를 테스트하는 데 사용하는 QA 환경이있는 것이 일반적입니다.


3

미국 정부 / 국방부 IT 관련 경험은 다음과 같습니다.

  1. 개발 / 테스트는 개발자와 응용 프로그램 개발자를위한 것입니다. 이들은 엔터프라이즈 시스템에서 멀리 떨어진 응용 프로그램을 빌드하고 테스트합니다.
  2. 응용 프로그램이 완료되면 IT 환경의 PACKAGING 서버로 배포됩니다.
  3. 그 시점부터 IT에서 응용 프로그램을 지원하고 STAGING으로 마이그레이션합니다 (IT에서 구현 지침, 구성 등을 개발 / 확인할 수 있도록 함). 이 단계에서 어느 정도까지 사용자 테스트를 수행하여 PRODUCTION을 복제하는 시스템에서 응용 프로그램이 예상대로 작동하는지 확인할 수 있습니다.
  4. 모든 테스트 계획이 완료되고 제대로 진행되면 응용 프로그램은 생산으로 이동하고 유지 (예 : 운영 및 유지 관리 또는 O & M) 모드로 이동합니다.
  5. 개발자의 새로운 업데이트도 PACKAGING에 배포되고 프로세스는 계속됩니다.

2
프로그래머에 오신 것을 환영합니다. 우리 사이트는 고품질의 질문과 답변에 중점을 둡니다. 일반적인 포럼과는 다릅니다. 자세한 내용은 도움말 센터를 살펴보십시오. 귀하의 답변이이 질문에 대한 다른 답변으로 아직 작성되지 않은 요점을 어떻게 처리하는지 알 수 없습니다.

2

웹 개발자로서 실제로 고려해야 할 세 가지 환경이 있습니다 .

프로덕션 : 최종 사용자를 대상으로하는 최종 릴리스 버전의 제품을 호스팅하도록 구성된 환경입니다. 보안 및 성능에 최적화되어 있습니다. 라이브 서버에서 호스팅됩니다. 경고 및 긴급 지원이 필요합니다. 데이터에 중요합니다. 따라서 데이터가 정기적으로 백업됩니다. 또한 위험 관리 및 재해 복구도 포함됩니다. 프로덕션 환경은 최종 사용자에게 친숙한 오류를 표시하도록 구성되어 있습니다.

준비 : 코드 동결을 선언 한 후 응용 프로그램의 릴리스 후보를 호스팅하도록 환경이 구성되었습니다. 릴리스 후보의 범위에 동의하기 위해 개발 팀과 함께 프로젝트 관리자 / 소유자를 대상으로합니다. 여기에는 품질 보증과 개발 팀이 포함되어 생산을 릴리스하기 전에 최종 수정 및 최종 공급을 수행합니다. 모범 사례는 프로덕션 환경에서 복사 한 라이브 DB에서 사용 가능한 최신 데이터를 사용하여 프로덕션 환경을 모방하는 것입니다. 일반적으로 준비 환경은 내부 팀과 이해 관계자 만 액세스 할 수 있으므로 모든 이해 당사자가 로컬 네트워크에 액세스 할 수있는 경우 공용 서버에서 보호되거나 인트라넷 환경에 게시됩니다. 준비 환경은 중간 또는 전체 기술 오류를 표시하도록 구성되어 있습니다.

개발 : 개발주기 동안 일반적으로 스크럼 환경의 스프린트 (sprint)라고하는 개발주기 동안 자신의 작업을 확인하기 위해 자신의 컴퓨터에서 단일 개발자가 구성한 개인 환경. 개발 환경은 전체 기술 오류를 표시하도록 구성되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.