
Ray 2.60이 2026년 11월 4일 공개됐다. 이번 릴리스에서 모델 서빙 운영자가 볼 부분은 Ray Serve의 롤링 업데이트다. 새 복제본을 먼저 띄울 수 있고, 새 복제본이 계속 실패할 때 남아 있는 기존 복제본이 요청을 계속 받도록 바뀌었다. Ray Data에는 외부 입력을 읽을 때의 보안 수정도 포함됐다. 공식 릴리스 노트에 적힌 내용이다.
배포 중 복제본을 먼저 확보하기
기존 방식은 이전 복제본을 중지한 뒤 교체 복제본을 시작한다. Ray 2.60의 max_surge_percent 옵션을 사용하면 순서를 바꿀 수 있다. 새 복제본을 먼저 시작해 업데이트 중 목표 서빙 용량을 유지하도록 설계됐다. 기본값은 0이므로 업그레이드만으로 동작이 바뀌지는 않는다. 적용하려면 추가 복제본을 실행할 리소스를 준비하고 설정해야 한다. 자세한 변경은 구현 PR에서 확인할 수 있다.
예를 들어 기존 복제본이 요청을 처리하는 동안 새 버전을 시작할 수 있다. 교체 과정에서 사용 가능한 용량이 줄어드는 상황을 피하는 데 도움이 된다. 추가 자원이 부족하거나 새 복제본이 정상 상태에 도달하지 못하는 환경까지 무중단을 보장한다는 뜻은 아니다. 배포 설정과 클러스터 여유 용량을 함께 시험해야 한다.
새 복제본이 실패하면
릴리스 노트에 따르면 새 복제본이 계속 실패하는 롤링 업데이트는 DEPLOY_FAILED 상태에서 중단된다. 이때 남은 기존 복제본은 라우팅 가능한 상태로 유지된다. 새 버전이 정상 기동하지 못하는 상황에서 기존 복제본을 모두 교체하는 일을 막기 위한 변경이다. 운영자는 배포 실패 상태와 실제 요청 성공률을 함께 감시하고 복구 절차를 확인하는 편이 좋다.
데이터 입력과 기본값도 점검
Ray Data는 외부 입력의 Arrow 데이터를 역직렬화하는 리더에서 pickle 객체 열을 거부하도록 바뀌었다. 릴리스 노트는 LeRobot, Databricks, Iceberg, Hugging Face, ClickHouse, BigQuery, Delta Sharing 리더에서 원격 코드 실행 경로를 차단한다고 설명한다. 이는 프로젝트의 설명이며 이 글에서는 취약점 재현이나 수정 효과를 독립 검증하지 않았다.
데이터 처리 기본값도 달라진다. 조인과 집계의 shuffle 전략에 shuffle v2가 기본 적용되며, Parquet 읽기 작업은 파일 크기 추정 대신 파일 footer의 row-group 메타데이터를 사용해 작업 크기를 정한다. 기존 파이프라인에서는 결과와 자원 사용량을 검증하고 업그레이드를 진행하는 것이 안전하다.
Serve를 운영한다면 시험 환경에서 max_surge_percent 설정 전후의 복제본 수와 요청 처리를 확인하고, 새 버전의 기동을 의도적으로 실패시켜 DEPLOY_FAILED와 기존 복제본 동작을 살펴보자. Data 사용자는 외부 입력과 기존 직렬화 형식의 호환성도 함께 점검할 필요가 있다. 여기서 설명한 동작은 공식 릴리스 노트 기준이며 별도의 실행 시험은 하지 않았다.



Discussion
No comments yet