워크플로우(Workflows) 제어 평면 재설계를 통해 에이전트(Agent) 시대에 대응

by DD
1개월 전
조회수 18

에이전트(Agent) 기반 워크플로우 증가로 인해 기존 워크플로우 시스템의 확장성(Scalability) 한계 발생

SousChefGatekeeper 컴포넌트 도입을 통해 동시 실행 인스턴스(Concurrent Instances) 50,000개초당 인스턴스 생성(Instance Creation) 300개 지원

Durable Object(DO) 기반의 V1 아키텍처에서 V2로 전환하며 수평적 확장(Horizontal Scaling) 달성

기존 고객의 서비스 중단을 방지하기 위해 AccountOld DO를 SousChef로 전환하는 마이그레이션 전략 사용

워크플로우(Workflows)의 성능 향상과 더불어 개발자 생산성 향상 및 에이전트(Agent) 기반 애플리케이션 개발 가속화 기대

V1 아키텍처의 문제점과 V2 아키텍처의 설계 배경

본문에 따르면 기존 워크플로우(Workflows) V1 제어 평면은 단일 Durable Object(DO) 기반으로 설계되어, 인스턴스 생성 및 관리에 병목 현상이 발생했다. 특히, 에이전트(Agent) 기반 워크플로우의 증가로 인해 초당 수백 건의 인스턴스 생성 요청을 처리하는 데 어려움을 겪었다.

확장성 한계(Scalability Bottleneck): 단일 Account DO에 모든 요청 집중

성능 저하(Performance Degradation): 인스턴스 생성 및 조회 속도 저하

V2 아키텍처 설계 목표: 수평적 확장(Horizontal Scaling)을 통해 높은 동시성 및 생성률 지원

V2에서는 SousChef와 Gatekeeper 컴포넌트를 도입하여 이러한 문제점을 해결하고, 워크플로우(Workflows)의 성능과 안정성을 향상시켰다.

SousChef와 Gatekeeper의 역할 및 작동 방식

V2 제어 평면의 핵심 컴포넌트인 SousChef는 Account DO의 부하를 분산하고, Gatekeeper는 동시성 슬롯(Concurrency Slots)을 관리한다. SousChef는 각 워크플로우(Workflow)의 인스턴스 메타데이터(Metadata)를 관리하며, Gatekeeper는 Account DO에 대한 과부하를 방지한다.

SousChef: 워크플로우(Workflow) 인스턴스 메타데이터 관리 및 Account DO 부하 분산

Gatekeeper: 동시성 슬롯(Concurrency Slots) 할당 및 인스턴스 생성 속도 제어

작동 방식: 인스턴스 생성 시 SousChef에 할당, Gatekeeper를 통해 Account DO에 슬롯 요청, 슬롯 할당 후 인스턴스 실행

이러한 구조를 통해 Account DO의 부하를 줄이고, 워크플로우(Workflows)의 확장성을 확보했다.

Durable Object(DO) 알람(Alarm)을 활용한 안정성 확보

본문에서는 Durable Object(DO) 알람(Alarm)을 사용하여 인스턴스 생성 과정의 안정성을 확보하는 방법을 설명한다. 인스턴스 메타데이터(Metadata) 설정 후, 백그라운드 작업(Background Task)을 통해 추가 작업을 수행하며, 알람을 설정하여 백그라운드 작업 실패 시에도 인스턴스 생성을 보장한다.

알람(Alarm)의 역할: 백그라운드 작업 실패 시 인스턴스 실행 보장

작업 흐름: 인스턴스 생성 -> 메타데이터 설정 -> 백그라운드 작업 -> 알람 설정

장점: 최소 한 번 실행(At-least-once execution) 보장 및 Durable Object(DO)의 안정성 향상

이러한 설계를 통해 워크플로우(Workflows)의 신뢰성을 높이고, 잠재적인 오류를 예방한다.

V1에서 V2로의 무중단 마이그레이션 전략

기존 고객의 서비스 중단을 방지하기 위해 AccountOld DO를 SousChef로 전환하는 마이그레이션 전략을 사용했다. AccountOld DO를 SousChef 클래스로 변환하고, 새로운 인스턴스 생성 요청을 새로운 SousChef로 라우팅하여 점진적으로 전환했다.

마이그레이션 단계: AccountOld DO를 SousChef로 변환 -> 새로운 인스턴스 생성 요청을 새로운 SousChef로 라우팅 -> AccountOld DO의 인스턴스 만료 후 삭제

핵심 기술: AccountOld DO와 SousChef의 동일한 SQL 테이블 사용

결과: 무중단(Zero-downtime) 마이그레이션 성공 및 고객 서비스 안정성 확보

이러한 마이그레이션 전략은 시스템의 가용성을 유지하면서, 새로운 아키텍처로의 전환을 가능하게 했다.

워크플로우(Workflows) 제어 평면 재설계의 기술적 의미

워크플로우(Workflows) 제어 평면 재설계는 에이전트(Agent) 기반 애플리케이션의 확장을 위한 중요한 발걸음이다. 수평적 확장(Horizontal Scaling)을 통해 높은 부하를 처리할 수 있게 되었으며, Durable Object(DO) 알람(Alarm)을 활용하여 안정성을 높였다.

기술적 성과: 동시 실행 인스턴스(Concurrent Instances) 50,000개초당 인스턴스 생성(Instance Creation) 300개 지원

향후 전망: 에이전트(Agent) 기반 애플리케이션 개발 가속화 및 Cloudflare 플랫폼 경쟁력 강화

시사점: 분산 시스템(Distributed System) 설계 시 확장성(Scalability)과 안정성(Reliability)을 동시에 고려해야 함

이러한 변화는 개발자 생산성 향상 및 혁신적인 애플리케이션 개발을 지원할 것이다.

Rearchitecting the Workflows control plane for the agentic era