[wanted Docker Series] 01.deploystrategy
October 1, 2024
Deploy Strategy
기본
- 개발
- 버전관리
- 코드리뷰
- 빌드
- 빌드 도구
- 자동화 스크립트
- 테스트
- 단위테스트
- 통합테스트
- 성능테스트
- 배포 : 테스트된 애플리케이션을 운영환경에 배포
- 모니터링 : 애플리케이션 상태를 지속적으로 확인함
배포 형태
- 자동 배포: CI/CD 도구를 사용해서 자동화한다.
- 장점: 빠르고 신뢰성이 높음, 인적 오류 감소
- 단점: 초기 설정 및 유지 보수 비용 발생함
- 수동배포 : 사람이 직접 배포
- 장점 : 간단한 초기 설정
- 단점 : 휴먼에러 가능성 높음
배포 전략
로컬 배포 vs. 프로덕션 배포
- 로컬, 프로덕션에서 배포는 여러 차이점이 있다.
- 목적과 사용 범위
- 로컬 : 개인적으로 사용하는 환경, 테스트, 디버깅 목적
- 프로덕션 : 실제 사용자가 사용하는 환경, 안정성, 보안, 성능이 중요하다.
- 설정과 구성
- 로컬: 개발 편의성을 위해서 간소화
- 프로덕션: 보안, 데이터 무결성, 백업 등을 포함한 모든 운영 관련 최적화가 필수적
- 테스트와 검증
- 로컬: 개발자는 주로 기능적 검증, 단위 테스트를 수행
- 프로덕션: 배포 전에 여러 단계의 테스팅 환경을 거침
- 배포 자동화와 롤백
- 로컬: 대부분 수동으로 진행될 수 있으며, 스크립트를 사용할 수도 있다.
- 프로덕션: 여러 단계의 테스트 환경을 거치고 성능테스트, 보안테스트, 부하 테스트 등이 포함됨
- 모니터링과 로깅
- 로컬: 기본적 로깅 도구를 사용하거나 떄로는 디버깅 출력만으로도 충분할 수 있다.
- 프로덕션: 고급 모니터링 및 로깅 시스템을 구축하여 시스템 모니터링하고, 장애를 신속하게 탐지하며 대응할 수 있다.
배포 전략
- 배포하는 방법을 정의한다. 각 전략은 특정 목표화 환경에 적합하며, 신뢰성 있는 배포와 빠른 롤백, 사용자 중단 최소화를 위해서 사용됨
- 롤링
- 블루/그린
- 카나리
- A/B