orchestration

3 개의 포스트

Temporal이 Netflix의 신뢰할 수 (새 탭에서 열림)

넷플릭스는 배포 시스템인 Spinnaker의 클라우드 작업 안정성을 높이기 위해 '지속 가능한 실행(Durable Execution)' 플랫폼인 Temporal을 도입했습니다. 기존 시스템은 인스턴스 재시작이나 네트워크 일시 오류 발생 시 작업 상태를 잃어버리는 구조적 한계로 인해 약 4%의 배포 실패율을 보였습니다. Temporal 도입 후, 상태 정보를 자동으로 유지하고 장애 시 중단 지점부터 재개하는 방식을 통해 일시적 장애로 인한 실패율을 0.0001%까지 획기적으로 낮추는 성과를 거두었습니다. **기존 Spinnaker 구조와 상태 관리의 한계** * 배포 엔진인 Orca가 Clouddriver에 작업을 요청하면, Clouddriver는 내부 오케스트레이션 엔진을 통해 클라우드 제공업체의 API를 호출하는 구조였습니다. * 작업 상태가 메모리나 휘발성 저장소에 유지되었기 때문에, 클러스터 업데이트나 인스턴스 종료와 같은 운영 작업 중 실행 중인 모든 작업이 유실되거나 일관성이 깨지는 문제가 빈번했습니다. * 복잡한 다단계 클라우드 작업 중 중간 단계에서 오류가 발생하면, 수동으로 개입하여 상태를 정리하거나 재시도 로직을 직접 복잡하게 구현해야만 했습니다. **Temporal을 이용한 지속 가능한 실행 구현** * 비즈니스 로직을 담당하는 '워크플로우(Workflow)'와 외부 API 호출 등 부수 효과를 수행하는 '액티비티(Activity)'를 분리하여 설계했습니다. * Temporal은 작업의 모든 실행 단계를 데이터베이스에 기록(Event Sourcing)하므로, 실행 중 프로세스가 죽더라도 새 인스턴스에서 마지막 상태를 복구하여 즉시 재개할 수 있습니다. * 개발자는 일시적인 네트워크 오류나 API 제한에 대비한 복잡한 재시도 코드를 작성하는 대신, Temporal의 선언적 재시도 정책을 활용해 "장애가 없는 것처럼" 코드를 작성할 수 있게 되었습니다. **도입 결과 및 운영 효율성 향상** * 일시적 장애로 인한 배포 실패율이 4%에서 0.0001%로 감소하며 시스템 신뢰도가 비약적으로 상승했습니다. * CDN 장비 업데이트와 같이 며칠 혹은 몇 주가 소요되는 장기 실행 작업도 타임아웃이나 상태 유실 걱정 없이 안정적으로 관리할 수 있게 되었습니다. * 인프라 운영 팀은 시스템 점검이나 배포를 위해 기존 작업을 강제로 중단하거나 완료될 때까지 기다릴 필요가 없어져 운영 유연성이 크게 확보되었습니다. 복잡한 분산 시스템에서 상태 관리와 재시도 로직을 직접 구현하는 것은 매우 까다롭고 오류가 발생하기 쉽습니다. 넷플릭스의 사례처럼 장기 실행 작업이나 높은 신뢰성이 요구되는 마이크로서비스 환경에서는 Temporal과 같은 워크플로우 엔진을 도입하여 인프라 수준에서 안정성을 보장받는 것이 효율적입니다.

VLOps: 이벤트 기반 MLO (새 탭에서 열림)

VLOps는 학습, 평가, 배포 과정을 Typed Message 단위로 정의하고 이를 감지해 자율적으로 실행하는 이벤트 기반 MLOps 시스템입니다. 기존 파이프라인 방식의 복잡성을 해결하고 시스템 간 느슨한 결합을 통해 클라우드 호환성과 기능 확장성을 극대화한 것이 특징입니다. 이를 통해 사용자는 내부의 복잡한 오케스트레이션 구조를 몰라도 메시지 발행만으로 효율적인 모델 관리 파이프라인을 구동할 수 있습니다. **이벤트 기반 MLOps의 핵심 구조** * 학습, 평가, 배포 등 MLOps의 각 단계를 Typed Message라는 독립적인 데이터 단위로 정의하여 관리합니다. * Event Sensor가 발행된 메시지를 실시간으로 감지하고, 정의된 로직에 따라 적절한 작업을 자율적으로 수행하는 구조를 가집니다. * 메시지 중심의 설계를 통해 각 시스템 간 의존성을 낮추는 느슨한 결합(Loose Coupling)을 실현하여, 특정 클라우드 환경에 종속되지 않는 호환성을 확보했습니다. **기존 파이프라인 방식과의 차별점** * Kubeflow와 같은 전통적인 파이프라인 도구와 달리, 전체 워크플로우에 대한 엄격한 버전 관리가 강제되지 않아 운영의 유연성이 높습니다. * 새로운 기능을 추가할 때 전체 시스템을 재설계할 필요 없이, 단순히 새로운 메시지 타입을 정의하고 추가하는 것만으로 기능을 확장할 수 있습니다. * 사용자는 복잡한 내부 인프라 로직을 이해할 필요 없이 표준화된 메시지만 발행하면 동일한 파이프라인 결과를 얻을 수 있어 개발 경험이 개선됩니다. **Omni-Evaluator와 대시보드를 통한 통합 관리** * Omni-Evaluator는 파편화된 다양한 모델 엔진과 벤치마크 도구들을 하나로 통합하여 일관된 평가 환경을 제공합니다. * VLOps Dashboard를 통해 전체 작업의 진행 상태를 실시간으로 모니터링하고 시각화된 결과 지표를 한눈에 파악할 수 있습니다. * 시스템에 의한 자동 트리거뿐만 아니라, 사용자가 필요 시 직접 이벤트를 발생시켜 특정 평가나 배포를 수행할 수 있는 사용자 주도적 제어 기능을 지원합니다. 모델의 규모가 커지고 복잡해지는 멀티모달 LLM 환경에서는 경직된 파이프라인보다 이벤트 기반의 비동기 아키텍처가 변화에 더 유연하게 대응할 수 있습니다. 인프라의 복잡도를 추상화하고 메시지 기반의 확장성을 확보하려는 조직에게 VLOps와 같은 접근 방식은 매우 실용적인 대안이 될 것입니다.

AWS Lambda durable functions를 사용하여 멀 (새 탭에서 열림)

AWS Lambda Durable Functions의 출시로 개발자들은 별도의 상태 관리 인프라를 구축하지 않고도 복잡한 다단계 애플리케이션과 AI 워크플로우를 익숙한 Lambda 환경에서 구현할 수 있게 되었습니다. 이 기능은 '체크포인트 및 재실행(Checkpoint and Replay)' 메커니즘을 통해 실행 상태를 자동으로 추적하며, 실행 도중 실패가 발생하더라도 마지막 완료 지점부터 작업을 재개합니다. 특히 대기 상태에서는 컴퓨팅 비용이 발생하지 않으면서도 최대 1년까지 실행을 일시 중단할 수 있어, 결제 처리나 사용자 승인이 필요한 장기 프로세스에 최적화된 솔루션을 제공합니다. ### 지속성 실행(Durable Execution)의 핵심 메커니즘 * **체크포인트 및 재실행:** Durable execution SDK를 사용하면 함수가 실행될 때마다 진행 상황이 자동으로 기록됩니다. 예기치 않은 오류로 실행이 중단되더라도 Lambda는 처음부터 핸들러를 다시 실행하되, 이미 완료된 단계는 스킵하고 마지막 체크포인트부터 비즈니스 로직을 이어갑니다. * **비용 효율적인 대기:** 실행 중 특정 지점에서 실행을 일시 중단하면 컴퓨팅 자원 할당이 해제되어 유휴 비용이 발생하지 않습니다. 이후 정의된 조건이 충족되면 자동으로 실행이 재개됩니다. ### 워크플로우 제어를 위한 주요 프리미티브(Primitives) * **context.step():** 비즈니스 로직에 자동 재시도 및 체크포인트 기능을 추가합니다. 해당 단계가 성공적으로 완료되면 이후 재실행 시 다시 수행되지 않도록 보장합니다. * **context.wait():** 지정된 기간 동안 함수의 실행을 중단합니다. 최대 1년까지 대기가 가능하며, 대기 기간 동안에는 비용이 청구되지 않습니다. * **create_callback():** 외부 API 응답이나 사람의 직접적인 승인과 같은 외부 이벤트를 기다릴 수 있는 콜백을 생성합니다. * **wait_for_condition():** REST API 폴링 등을 통해 특정 조건이 충족될 때까지 실행을 일시 정지합니다. * **parallel() 및 map():** 복잡한 병렬 처리 및 동시성 유스케이스를 지원하여 효율적인 리소스 활용을 돕습니다. ### 서비스 도입 시 고려사항 * **설정 방식:** Durable Functions 기능은 Lambda 함수를 처음 생성하는 단계에서만 활성화할 수 있으며, 기존에 이미 생성된 함수에는 소급 적용이 불가능합니다. * **개발 환경:** 함수 생성 시 'Durable execution' 옵션을 활성화한 후, 코드 내에 오픈 소스로 제공되는 Durable Execution SDK를 포함하여 비즈니스 로직을 작성해야 합니다. * **활용 사례:** 주문 처리 프로세스, AI 에이전트의 다단계 추론 오케스트레이션, 인적 승인이 필요한 결재 시스템 등 상태 유지가 필수적인 워크로드에 강력한 이점을 제공합니다. AWS Lambda Durable Functions는 Step Functions와 같은 외부 오케스트레이션 도구 없이도 코드 수준에서 상태ful한 워크플로우를 관리할 수 있게 해줍니다. 단순한 이벤트 처리를 넘어 긴 호흡의 비즈니스 로직을 관리해야 하는 백엔드 개발자나 AI 엔지니어에게 매우 실용적인 도구가 될 것입니다.