본문 바로가기

인프런 강의 노트

[안정적인 서비스 배포를 위한 배포 전략과 팁] 15강 더 세분화된 개발 환경들

강의에서는 5가지 환경에 대해서 논의

로컬?

pc내에서/노트북 안에 DB 설치, 애플리케이션 같이 실행하는 환경

 

 

개발자&테스터 DEV에 붙어서 테스트

로컬에 애플리케이션 띄워서 테스트 DB에 접근해서 테스트하면 동일한 경험할 수 있음

 

CBT 환경(Closed Beta Testing)

개발 환경에서 코드는 개발이 완료된 상태에서 운영 환경에 있는 데이터로 내부적인 테스트 진행하기 위해 사용

 

사용자는 운영 환경 서버에 접근하기 때문에 영향이 없음

운영 DB 건드리면 테스터는 주의해서 테스트해야 될 것임

 

CBT 단계

코드가 운영 환경에 배포되기 전에 최종적으로 코드에 대해서 테스트하는 단계

CBT 단계를 지원하기 위한 환경에 CBT 환경

 

Staging

운영 환경과 서버 리소스 등을 동일하게 환경을 구성하고 

성능 테스트 같은 비 기능적인 요구사항을 테스트

비용 문제라면 임시로라도 구성해서 사용하면 됨

성능 테스트 위해서 운영 환경과 비슷한 종류, 비슷한 양의 데이터 쌓아서 성능 테스트 진행해야 함

성능 테스트하지도 않고 운영 환경에 배포했다가 성능 문제 발생한 경험 있음.. ㅠ

 

망 분리된 데이터베이스 그림 반영

망 분리 시 개발자는 별도의 솔루션 통해 접근해야 하지만 보통 서비스를 실행 중인 서버들은 ip 단위로 제어되는 방화벽에 의해서 제어 받음

=> 배포되는 서버가 달라지거나 or 숫자가 늘어나면, 새로 추가되는 서버들의 ip를 방화벽 허용 리스트에 추가해줄 필요 있음

 

결론

운영 환경에 넘어왔을 때 배포 전략 사용할 것

여러 가지 개발 환경들로 나눠서 운영 환경 외에는 자유롭게 배포, 운영 환경에 배포할 때만 안정적으로 배포하기 위해 노력하는 것임