Borg
Borg(보그)는 구글이 내부적으로 개발해 운영해 온 대규모 클러스터 관리 시스템이다. 수십만 대의 서버에서 수많은 작업을 스케줄링하고 자원을 할당하며, 장애를 자동으로 처리해 구글의 서비스를 안정적으로 운영해 왔다.
Borg는 컨테이너 기반 워크로드 관리의 개념을 정립했으며, 이후 오픈소스 쿠버네티스(Kubernetes)의 설계에 직접적인 영감을 주었다. 대규모 분산 시스템 운영의 원형으로 평가받는다.
주요 특징
- 대규모 스케줄링: 수십만 대 서버의 작업을 효율적으로 배치함.
- 자원 관리: CPU·메모리 등 자원을 세밀하게 할당함.
- 컨테이너 기반: 작업을 격리된 컨테이너로 실행함.
- 자동 장애 처리: 실패한 작업을 자동으로 재배치·복구함.
- 우선순위 관리: 작업 우선순위에 따라 자원을 조정함.
장점
- 높은 활용률: 자원을 촘촘히 배치해 활용도를 극대화함.
- 안정적 운영: 장애를 자동 처리해 서비스를 유지함.
- 확장성: 초대규모 인프라를 효율적으로 관리함.
- 운영 자동화: 수동 개입 없이 작업을 관리함.
- 검증된 설계: 쿠버네티스의 기반이 된 성숙한 모델.
관련 용어
- 쿠버네티스: Borg에서 영감을 받은 오픈소스 오케스트레이터.
- 클러스터: 함께 관리되는 서버들의 집합.
- 스케줄러: 작업을 적절한 노드에 배치하는 구성 요소.
- 컨테이너: 애플리케이션을 격리해 실행하는 단위.
- 셀(Cell): Borg가 관리하는 서버 집합 단위.
주요 솔루션 및 사용 사례
- 주요 솔루션
- Borg 스케줄러: 작업을 자원에 맞춰 배치하는 핵심 구성 요소.
- Borgmaster: 클러스터 상태와 제어를 담당하는 중앙 관리자.
- Borglet: 각 노드에서 작업을 실행·관리하는 에이전트.
- 우선순위 큐: 작업 우선순위에 따라 자원을 배분함.
- 모니터링 체계: 작업과 자원 상태를 관측함.
- 사용 사례
- 대규모 서비스 운영: 구글의 검색·지메일 등을 안정적으로 운영함.
- 배치 작업 처리: 대량의 배치 작업을 효율적으로 스케줄링함.
- 자원 최적화: 서버 활용률을 높여 비용을 절감함.
- 장애 복원: 실패 작업을 자동 재배치해 연속성을 유지함.
- 오케스트레이션 원형: 쿠버네티스 설계의 기반 사례를 제공함.



