ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 배포 방식 정리 - Rolling, Blue-Green, Canary
    개발공부/CS지식 2024. 1. 24. 14:34

     

    1. Basic Deployment

    • (기도 메타) 모든 노드를 한꺼번에 배포하는 방식이다.
      • EC2 배포
      • 배포 시 서비스가 죽을 수 있다.
      • 배포 중에 중단이 발생할 수 있고 롤백 프로세스가 느릴 수 있다.

    장점

    • 가격이 가장 저렴하고 배포 방식이 단순하다.
      • 특정 시간에만 사용하는 서비스
      • 비즈니스나 수익과 관련 없는 단순한 서비스

    단점

    • 가장 위험한 배포 방식 → 서비스가 죽을 수 있다.

    2. The Multi-Service Deployment

    • 다수의 노드가 다중의 서비스로 동시에 배포되는 방식이다.
    • 버전 관리가 필요한 어플리케이션, 사용하지 않는 시간에만 배포

    장점

    • basic 보다는 덜 위험, 저렴하고 배포 방식이 단순하다.

    단점

    • 중단 방지 기능이 없고, 롤백도 느리다.

     

    3. Rolling Deployment

    • 실행중인 어플리케이션 인스턴스에 업데이트하는 배포 전략
    • 노드(서버)가 환경에 점진적으로 덩어리로 업데이트 된다.

    장점

    • 비교적으로 롤백이 간단하고, 일반 배포에 비해 안전하다.
    • 구현이 단순하다.

    단점

    • 점진적으로 업데이트 되기 때문에, New 버전과 Old 버전 둘다 rolling delopy에서 동작해야한다. (까다롭다)
    • 배포 증분이 일어날때마다 검증을 해서 배포 속도가 느린편이다.

    4. Blue-Green Deployment

    • 2개의 동일한 환경을 활용한 배포 방법이다.
      1. Blue (AKA staging) → QA, Testing 수행하고 이상이 없으면 User 트래픽을 받는다.
      2. Green (AKA production) → User 트래픽이 일어나고 있는 운영 서버. Blue가 성공적으로 배포되면 트래픽을 이동 시킨다.

    장점

    • 배포가 간단하고 빠르다.
    • 롤백도 간단하다.
    • 배포 환경이 다른 방식보다 안전하다 (무중단)

    단점

    • 비싸다
    • User 트래픽을 이동시키면서 트랜잭션 손실이 일어날 수 있다.

    5. Canary Deployment

    • 카나리라는 새는 위험 감지를 매우 잘하는 새인데, 그런 행동에서 유례
    • 어플리케션 또는 서비스의 일부를 일부의 사용자에게 점진적으로 배포하는 전략
    • 환경에 배포를 step by step 조금씩 진행할 수 있다. (All infrastructure in a target environment is updated in small phases (e.g: 2%, 25%, 75%, 100%)

    장점

    • 롤백, 트리거를 빠르게 할 수 있어 가장 안전하다.
    • 배포와 동시에 실제 유저에게 테스트할 수 있다.
    • 블루-그린 보다 싸다

    단점

    • 프로덕션 테스트가 필요한 구현을 포함하고 있다.
    • 배포 방식이 복잡하고, 테스트하기도 어렵다. (테스트 위한 또 다른 학습 곡선)

    6. A/B Testing

    ... 

    반응형
Designed by Tistory.