Deployment strategis

uuuu.jini·2022년 9월 19일
0

Kubernetes

목록 보기
10/14

참고: [Kubernetes] Deployment strategis (배포전략)

  • recreate: 기존 버전을 삭제하고 신규버전을 릴리즈
  • ramped: 신규버전을 rolling update하게 릴리즈
  • blue/green: 신규버전을 릴리즈하고 기존의 트래픽을 전환
  • canary: 일부 사용자에게만 신규버전을 릴리즈

1] Recreate - best for development environment


Recreate 전략은 기존 Version A를 제거하고 Version B를 배포하는 전략으로 Cloud 환경에서 비용이 적게 들고, 간편한 설정으로 인해 Development Environment에서 선택 할 수 있는 좋은 전략이다. Deployment에서 strategy of type을 Recreate으로 지정함으로써 간단하게 어플리케이션을 배포하는 전략이다.

 strategy:
    type: Recreate

이러한 Recreate 전략은 기존 A 버전의 애플리케이션이 중단되면 대체할 수 있는 애플리케이션이 없기 대문에 B 버전의 애플리케이션이 시작되기 까지 Downtime이 발생하게 된다.

2] Ramped(Rolling Update)


Ramped(Rolling Update)는 Kubernetes에서 쉽고 효율적으로 사용할 수 있는 무중단 배포전략으로 특징은 전체 서비스를 중단한 후 Pod를 update하는 것이 아니라, 한번에 N개의 pod를 업데이트 한다. 이러한 배포방법은 자원을 효율적으로 사용하면서 전체 서비스가 끊김없이 지속될 수 있는 효과를 가져오며, Deployment에 strategy of type을 Rolling update로 지정함으로써 간단하게 애플리케이션을 배포하는 전략이다.

3] Blue/Green Deployments


Blue는 기존 버전, Green은 새로운 기능을 포함한 새로운 버전으로, 두 버전이 모두 운영환경에 존재하는 상태에서 운영환경에서 Green 버전을 테스트 한 후 문제가 없으면 Blue에 연결된 트래픽을 Green으로 변경해 배포하는 전략이다. 장점으로는 배포한 버전이 문제가 발생했을 경우 신속하게 Blue로 트래픽을 전환할 수 있다. 단점으로는 배포시 두배의 리소스가 소요된다는 점과 Stateful한 애플리케이션의 경우는 핸들링하기 어렵다는 점이다.

4] Canary deployments


운영환경에서 v1로 배포된 애플리케이션을 v2로 점진적으로 트래픽을 이동시키는 방법이다. 예를 들어 동일한 애플리케이션에 대한 사용자 요청을 90프로는 v1으로 나머지 10프로를 새롭게 배포된 v2로 보내는 전략이다. 이러한 배포방법은 배포할 애플리케이션에 대한 테스트가 부족하거나 안정성에 대한 확인이 없을 경우 사용하게 된다.

profile
멋쟁이 토마토

0개의 댓글