Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

업그레이드를 시간에 걸쳐 분산하기

점진적 업그레이드(Ramped rollout)는 같은 릴리스 채널을 따르는 여러 개체의 업그레이드를 설정한 시간에 걸쳐 분산하는 속도 제한 기능입니다. 새 릴리스를 채널에 추가했을 때 여러 개체가 한꺼번에 업그레이드되는 범위를 줄이고, 문제가 발생하면 더 많은 개체로 퍼지기 전에 대응할 시간을 확보합니다.

적용되는 작업

속도 제한은 업그레이드 계획에만 적용합니다. 롤백, 새 설치, 설치 제거, 회수에 따른 버전 전환, 구성 변경과 명령에는 적용하지 않습니다.

채널별 시간 구간 설정

제품 홈의 Actions → Edit product settings에서 Upgrades를 선택합니다. Ramped rollout 영역에서 채널별 업그레이드 분산 시간 구간(Rollout window)을 지정합니다.

가상의 STABLE_2 채널에 3시간을 지정하면 업그레이드를 대략 3시간에 걸쳐 분산합니다. 실제 소요 시간은 에이전트 상태와 유지보수 시간대 제약에 따라 달라질 수 있습니다. 유지보수 시간이 끝나면 진행을 멈추고 다음 허용 시간이 열리면 재개합니다.

이 설정은 제품 번들에 포함되어 내보내고 가져올 수 있습니다. 가져온 구성은 대상에 수동으로 변경한 설정을 덮어씁니다.

개체별 진행 순서

Apollo는 속도 제한 안에서 선착순으로 업그레이드합니다. 개체별 순서는 결정적이지 않으며 고정된 업그레이드 시각을 예약하지 않습니다.

속도 제한으로 막힌 개체는 Activity에 해당 제약을 표시합니다. 제한이 허용하면 업그레이드를 진행합니다.

특정 개체를 즉시 업그레이드해야 하면 버전과 구성 강제 적용 명령을 사용할 수 있습니다. 이 방법을 검토할 때는 업그레이드가 점진적 분산 제약만으로 차단되어 있는지 확인해야 합니다. 명령은 다른 안전 제약도 우회할 수 있습니다.

릴리스 페이지의 승격 파이프라인에서는 업그레이드를 시작한 개체의 비율을 확인할 수 있습니다. 이 수치는 완료 비율과 구분합니다.

진행 중 설정을 바꾸는 경우

변경현재 진행 중인 업그레이드에 미치는 영향
채널의 시간 구간을 제거하여 비활성화속도 제한 제약을 즉시 제거. 남은 개체는 다른 제약을 충족하면 대기 없이 진행 가능
시간 구간을 추가하여 활성화아직 업그레이드하지 않은 개체에 속도 제한을 즉시 적용
이미 활성화된 시간 구간의 길이 변경현재 진행은 처음 지정한 길이를 유지. 바꾼 길이는 이후 릴리스부터 적용

카나리와 허브별 차이

카나리로 지정한 개체도 같은 채널의 다른 개체와 동일하게 취급합니다. 카나리를 우선 업그레이드하지 않으므로 분산 구간의 마지막에 업그레이드될 수도 있습니다. 그러면 다음 채널로 승격하기 위한 상태 관찰의 시작도 늦어질 수 있습니다.

각 허브는 자신에게 연결된 개체 수로 속도를 독립적으로 계산합니다. 같은 시간 구간을 설정해도 허브마다 대상 규모가 다르면 실제 업그레이드 속도가 달라집니다.

시간 구간 선택

  • 개체 수가 많으면 더 긴 구간으로 분산하고, 대상이 적으면 짧은 구간을 검토합니다.
  • 위험이 큰 변경에는 문제를 탐지하고 대응할 시간을 더 확보합니다.
  • 제품 유지보수 시간대 안에 분산 구간이 들어가도록 계획합니다. 범위를 넘으면 다음 유지보수 시간대까지 기다릴 수 있습니다.
  • 카나리의 업그레이드 대기 시간과 상태 관찰 기간을 함께 고려하여 전체 승격 일정을 정합니다.