Workers가 내부 유지 관리 (새 탭에서 열림)

Cloudflare가 전 세계 330개 이상의 도시로 인프라를 확장함에 따라, 수동으로 수행하던 데이터 센터 점검 및 네트워크 유지보수 작업의 복잡도가 임계점을 넘었습니다. 이를 해결하기 위해 Cloudflare는 Workers를 기반으로 네트워크 전체 상태를 실시간으로 파악하고 안전 제약 조건을 프로그래밍 방식으로 강제하는 중앙 집중식 자동화 스케줄러를 구축했습니다. 이 시스템은 유지보수 중 발생할 수 있는 잠재적 충돌을 사전에 차단하여 고객 서비스의 가용성과 안정성을 보장합니다.

유지보수 자동화의 필요성과 위험 관리

  • 중복성 보장: 특정 지역의 메트로 네트워크에서 게이트웨이 역할을 하는 에지 라우터들이 동시에 오프라인이 되어 데이터 센터 연결이 끊기는 상황을 방지해야 합니다.
  • 고객 맞춤형 서비스 보호: 'Aegis(Dedicated CDN Egress IPs)'와 같이 고객이 특정 데이터 센터를 지정해 트래픽을 송출하는 경우, 해당 데이터 센터들이 동시에 점검에 들어가면 지연 시간이 급증하거나 5xx 에러가 발생할 위험이 있습니다.
  • 수동 조정의 한계: 인프라 규모가 커지면서 사람이 실시간으로 모든 중첩된 점검 요청이나 고객별 라우팅 규칙을 추적하는 것이 불가능해졌으며, 이를 자동화된 "두뇌" 시스템으로 대체했습니다.

데이터 처리의 한계와 지역화 전략

  • 메모리 제약 문제: 초기에는 모든 서버 관계, 제품 구성, 메트릭 데이터를 단일 Worker에 로드하려 했으나, 플랫폼의 메모리 제한으로 인해 'Out of Memory' 오류가 발생했습니다.
  • 데이터 선별 로드: 모든 데이터를 불러오는 대신, 특정 지역(예: 독일 프랑크푸르트)의 점검이 계획되면 해당 지역과 연관된 인접 데이터 센터 및 제품 데이터만 로드하도록 최적화했습니다.
  • 상관관계 분석: 특정 데이터 센터의 가동 중단이 어떤 고객의 워크로드에 영향을 주는지 제품 API를 통해 관계성을 파악하고, 최소 하나 이상의 경로가 활성화 상태를 유지하도록 설계했습니다.

Graph 기반의 관계 처리 (TAO 모델 도입)

  • 객체와 연관성 모델링: Facebook의 TAO 연구 논문에서 영감을 얻어, 인프라 데이터를 '객체(Vertices)'와 '연관성(Edges)'으로 구성된 그래프 구조로 모델링했습니다.
  • 타입화된 API 설계: 라우터를 객체로, 해당 라우터를 사용하는 고객 서비스(Aegis 풀 등)를 연관성으로 정의하여 프로그래밍 방식으로 빠르게 조회할 수 있는 인터페이스를 구축했습니다.
  • 제약 조건 검증: 유지보수 제안이 들어오면 그래프 인터페이스를 통해 영향을 받는 모든 하위 구성 요소를 탐색하고, 점검 일정이 안전 제약 조건을 위반하는지 즉각적으로 분석합니다.

Cloudflare의 사례는 대규모 분산 시스템의 운영 효율성을 높이기 위해 인프라 관리 프로세스를 어떻게 코드화하고 자동화할 수 있는지 보여줍니다. 특히 서버리스 플랫폼인 Workers의 제약을 그래프 기반의 효율적인 데이터 모델링으로 극복함으로써, 네트워크 안정성을 해치지 않으면서도 신속한 유지보수 일정을 수립할 수 있게 되었습니다.