2017-12-13 21 views
0

Fowler says 이전 버전이 계속 실행되는 동안 소량의 트래픽이 Canary 버전으로 라우팅됩니다.대기열이 포함될 때의 Canary 릴리스

로드 균형 조정기/라우터 수준에서 라우팅을 제어 할 수 있다고 가정합니다.

마이크로 서비스가 대기열을 소모하고 처리하는 사용 사례가 있습니다. 카나리아 소비자에게 트래픽의 일부를 유도하도록 라우팅을 제어하는 ​​방법에 대해 궁금해하고있었습니다.

우리가 고려한 옵션 중 하나는 별도의 "Canary queue"를 갖는 것이지만, 문제는 생산자가 이제 냄새처럼 들리는이 대기열을 인식해야한다는 것입니다.

이것은 대기열이 관련된 일반적인 문제인 것처럼 보입니다. 카나리아가 그러한 용도로 채택 된 방법에 대한 아이디어?

답변

0

작성한대로 카나리아 릴리스의 목표는 새로운 배포에서 결함의 잠재적 영향을 최소화하기 위해 새로운 배포를 통해 실제 트래픽의 작은 부분을 유도하는 것입니다. 배포중인 서비스에 대한 라우팅을 제어하지 않으면 새 버전 서비스의 현재 버전 서비스 비율을 조정하여 새 배포에서 처리되는 트래픽의 비율을 조정할 수 있습니다.

예를 들어, 대기열은 v1에서 100 개의 서비스 인스턴스 풀로 처리되고 있습니다. canary가 다음 버전을 테스트하려면 v2의 1-10을 배포하고 v1의 1-10을 해제하십시오. 이렇게하면 새 서비스에 대한 트래픽의 1 ~ 10 %가 라우팅됩니다.

새 서비스 버전의 예상 처리량이 크게 다른 경우 새 서비스 비율을 이전으로 조정하는 것이 좋습니다.

현재 서비스 배포가 매우 적은 경우 새 서비스의 인스턴스를 배포하기 전에 배포 된 현재 서비스의 총 수를 일시적으로 늘리는 것이 좋습니다. 예를 들어 활성 배포가 3 개의 서비스라고 가정합니다. 새 버전 서비스 중 하나를 배포하기 전에 현재 서비스를 6 개 더 배포하면 카나리아에 대한 트래픽을 10 %에 가깝게 유지할 수 있습니다.