시스템 개발을 할 때 local에서 prod까지 다양한 서버가 존재
필요에 따라 역할과 목적을 고려해 구성이 필요
local : 로컬 개발 환경
- 개발자 pc
- 설치된 버전 (ex, mysql db, tomcat version, pycharm version ...)
- 모든 개발자는 같은 개발환경을 사용해야함
- version은 JVM을 사용하여 관리
- JDK, Library 등은 MAVEN을 사용하여 관리
dev : 서버 개발 환경
- 각 개발자들이 코드를 합쳐서 테스트 해볼 수 있는 환경
- commit 후 deploy를 통해 dev로 배포가 되도록 함
- prod 보다 적은 수의 서버로 구성 됨 (기능 테스트의 목적)
Integration : 통합 개발 환경
- 여러개의 컴포넌트를 동시 개발하는 프로젝트에 적합
- 각 컴포넌트가 다른 컴포넌트에 대해 dependency를 가지고 있을 때 테스트
- dev와 동일한 set
test/qa : 테스팅 환경
- QA엔지니어에 의해서 사용되는 환경
- 기능, 비기능 등을 수행
- prod 환경과 비슷하게 구축
staging : 스테이징 환경
- 운영 환경과 동일
- 운영 전환 이전에 security, 성능, 장애 를 검증하는 환경
production : 운영 환경
- 실제 서비스
---
* 개발환경은 별도 운영하는 것이 일반적
* 경우에 따라 integration, qa, staging은 요구사항에 따라 합쳐지거나 별도 운영될 수 있음
* 가상화 환경을 사용하는 경우 이미지를 만들어놨다가 실제 테스트나 사용을 할 경우만 가상 서버에 환경을 deploy해서 사용하고
끝나면 다시 이미지를 스토리지에 저장해놓기도 함
출처 : https://bcho.tistory.com/759
요약
Local : 로컬 서버
- 내 PC; localhost 서버
Dev : 개발 서버
- 로컬 서버에서 개발자들이 각자 만든 코드를 합쳐서 테스트해볼 수 있는 서버
Test : 테스트 서버
- 개발완료된 기능을 QA가 테스트해볼 수 있는 서버
Staging : 스테이징 서버
- 실제 운영 환경과 거의 동일한 환경으로 만들어놓고 기능을 검증하는 환경
Product(PROD) : 운영 서버
- 실제 서비스를 위한 운영 서버
local -> dev -> test -> staging -> prod
'전산 > Infra' 카테고리의 다른 글
SSR vs CSR (0) | 2021.05.25 |
---|---|
개발 환경(dev,, test, staging, production) (0) | 2021.02.06 |
Linux Command (0) | 2021.02.01 |
최근댓글