메타(Meta)가 복잡한 제약 조건 속에서 작업과 자원을 효율적으로 배치하는 최적화 도구 '리밸런서(Rebalancer)'를 오픈소스로 전환했습니다. 이 도구는 서버에 작업을 할당하거나 데이터베이스 샤드를 분산할 때 용량 제한, 부하 균형, 장애 대비 등 다수의 조건을 동시에 고려하여 최적의 배치안을 계산합니다. 복잡한 수학식 대신 25가지 이상의 목표와 제약 조건을 조합하여 문제를 정의할 수 있어, 다양한 상황에 유연하게 대응할 수 있는 것이 특징입니다.
리밸런서는 메타 내부에서 지난 9년 이상 활용되며 서버 할당, 머신러닝(ML) 작업 배치, 트래픽 라우팅 등 하루 약 4천만 건의 배치 문제를 처리해왔습니다. 대규모 문제에는 대상을 옮기거나 교환하며 배치를 개선하는 지역 탐색(Local Search) 방식을 주로 사용하며, 이는 전체 최적해를 보장하지는 않지만 메타의 대규모 문제 대부분을 효율적으로 처리합니다. 반면, 최적해가 반드시 필요한 문제에는 혼합 정수 계획법(Mixed Integer Programming)을 적용할 수 있으며, 오픈소스 HiGHS와 상용 Gurobi, FICO Xpress 등 다양한 솔버(solver)를 지원합니다. 또한, '리밸런서 익스플로러(Rebalancer Explorer)'를 통해 배치 결과를 시각적으로 비교하고, 특정 대상을 옮기거나 제약을 완화했을 때의 영향을 쉽게 확인할 수 있습니다.
이 도구는 C++ 기반으로 C++ 및 Python API를 제공하며, 단일 프로세스에서 여러 스레드를 활용해 계산합니다. 리눅스(Linux)와 macOS용 Python 패키지 설치 경로를 제공하고, 익스플로러는 도커 컴포즈(Docker Compose)로 실행 가능해 개발자들이 쉽게 접근하고 활용할 수 있습니다. 리밸런서는 단순히 IT 인프라 문제뿐만 아니라 회의실 및 좌석 배치, 지원 티켓의 엔지니어 배정 등 인프라 외부의 다양한 자원 할당 문제에도 적용될 수 있어, 광범위한 산업 분야에서 최적화 솔루션으로 활용될 잠재력을 가지고 있습니다.