시스템 개발을 할 때 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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기