롤링 배포 중 장기 실행 작업에 대한 멱등성 출력 키잉 노트

롤링 배포 중 장기 실행 작업에 대한 멱등성 출력 키잉

단일 출력 파일을 생성하는 데 90초에서 180초가 걸리는 예약된 작업은 여전히 실행 중일 때 새 빌드를 배포하는 날까지는 무해해 보입니다. 배포 컨트롤러는 이전 작업을 드레인하고 대체 작업을 시작합니다. 2~3분 동안 두 복제본이 모두 활성화되고, 둘 다 동일한 입력 스냅샷을 읽고, 둘 다 동일한 논리적 출력을 작성하려고 합니다. 멱등성 출력 키잉이 없으면 두 번 작성되며, 두 번째 작성은 첫 번째 작성과 일치할 의무가 없습니다. 해당 창에서 읽는 모든 소비자는 두 번의 다른 실행에서 조립된 상태를 파악할 수 있습니다.이것은 이론적인 경쟁이 아닙니다. 장기 실행 작업이 공유 스토리지에 게시되고 오케스트레이터가 롤링 배포를 사용하는 모든 시스템, 즉 대부분의 프로덕션 배치 파이프라인에서 나타납니다. 실패는 조용합니다. 아무것도 충돌하지 않습니다. 로그는 두 번의 성공적인 작업 완료를 보여줍니다. 손상은 전적으로 출력에 존재하며, 나중에 일관된 스냅샷으로 존재하지 않았던 데이터를 기반으로 내려진 다운스트림 결정으로 나타납니다.