Deploy Strategy

기본

  1. 개발
    1. 버전관리
    2. 코드리뷰
  2. 빌드
    1. 빌드 도구
    2. 자동화 스크립트
  3. 테스트
    1. 단위테스트
    2. 통합테스트
    3. 성능테스트
    4. 배포 : 테스트된 애플리케이션을 운영환경에 배포
    5. 모니터링 : 애플리케이션 상태를 지속적으로 확인함

배포 형태

  1. 자동 배포: CI/CD 도구를 사용해서 자동화한다.
    • 장점: 빠르고 신뢰성이 높음, 인적 오류 감소
    • 단점: 초기 설정 및 유지 보수 비용 발생함
  2. 수동배포 : 사람이 직접 배포
    • 장점 : 간단한 초기 설정
    • 단점 : 휴먼에러 가능성 높음

배포 전략

로컬 배포 vs. 프로덕션 배포

  • 로컬, 프로덕션에서 배포는 여러 차이점이 있다.
  1. 목적과 사용 범위
    • 로컬 : 개인적으로 사용하는 환경, 테스트, 디버깅 목적
    • 프로덕션 : 실제 사용자가 사용하는 환경, 안정성, 보안, 성능이 중요하다.
  2. 설정과 구성
    • 로컬: 개발 편의성을 위해서 간소화
    • 프로덕션: 보안, 데이터 무결성, 백업 등을 포함한 모든 운영 관련 최적화가 필수적
  3. 테스트와 검증
    • 로컬: 개발자는 주로 기능적 검증, 단위 테스트를 수행
    • 프로덕션: 배포 전에 여러 단계의 테스팅 환경을 거침
  4. 배포 자동화와 롤백
    • 로컬: 대부분 수동으로 진행될 수 있으며, 스크립트를 사용할 수도 있다.
    • 프로덕션: 여러 단계의 테스트 환경을 거치고 성능테스트, 보안테스트, 부하 테스트 등이 포함됨
  5. 모니터링과 로깅
    • 로컬: 기본적 로깅 도구를 사용하거나 떄로는 디버깅 출력만으로도 충분할 수 있다.
    • 프로덕션: 고급 모니터링 및 로깅 시스템을 구축하여 시스템 모니터링하고, 장애를 신속하게 탐지하며 대응할 수 있다.

배포 전략

  • 배포하는 방법을 정의한다. 각 전략은 특정 목표화 환경에 적합하며, 신뢰성 있는 배포와 빠른 롤백, 사용자 중단 최소화를 위해서 사용됨
  1. 롤링
  2. 블루/그린
  3. 카나리
  4. A/B