본문 바로가기
Kubernaetes

"Google의 Borg와 쿠버네티스의 연관성

by 앵남(Andy) 2024. 10. 22.

 

 

# 소개 

Borg는 Google 주요한 특징중 하나는 대규모 클러스터 시스템이다. Borg는 Google에서 실행되는 모든 애플리케이션의 전체 범위에 대해 아래와 같은 작업을 수행한다.

1. 승인(admits)

2. 스케줄링(schedules)

3. 시작(start)

4. 재시작(restart)

5 모니터링(monitoring)

 

Borg의 핵심 이점 세가지가 있다. 

첫 번째로는 리소스 관리 및 장애 처리 추상화: 사용자가 애플리케이션 개발에만 집중할 수 있도록 리소스 관리와 장애 처리의 세부 사항을 숨긴다. 

이부분에서 쿠버네티스와 비교해보자면 어떤 부분에 해당이 될까? Borg는 중앙집중식 스케줄러를 사용해서 클러스터의 리소스를 관리하지만, 쿠버네티스는 더 모듈화된 접근 방식을 통해 선언적 API를 통해 사용자가 원하는 상태를 정의하면서 시스템이 유지된다.

 

두 번째로 높은 신뢰성과 가용성: 높은 신뢰성과 가용성으로 운영되고 동일한 수준의 신뢰성과 가용성을 갖춘 애플리케이션을 지원한다. 

이부분 역시 쿠버네티스와 비교해보자면 쿠버네티스도 Borg와 마찬가지로 신뢰성과 가용성을 목표로하지만, 다양한 환경에서 사용할 수 있도록 설계되었다. 

 

세 번째로 대규모 워크로드 실행: 수만 대의 머신에 걸쳐 워커노드를 효과적으로 실행할 수 있다. Borg는 위에서 말한것처럼 리소스관리에 중점을 두고 있고 매우 큰 규모를 효율적으로 관리하지만, 쿠버네티스는 큰 클러스터를 관리할 수 있다. 즉 여러 클러스터를 연결하여 더 큰 워커노드를 처리할 수 있다. 

 

# Borg는 누가사용했을까?

Google 개발자, 시스템 관리자(SRE)들이 사용을 해봤고 사용자들은 작업(Job)이라는 단위로 제출했다. 작업은 하나 이상의 Task로 구성되고 Task는 동일한 프로그램(바이너리)실행하는 최소 단위이다. 예를들자면, 개발자들이 웹 서버를 운영하는 작업이 있다면 여기서 작업은 웹서버 실행 태스크는 여러 개의 웹 서버 인스턴스라고 생각하면 된다. 

 

Borg는 "셀"이라는 단위로 컴퓨터 자원을 관리한다. Borg 셀은 함께 관리되는 컴퓨터들의 집합이다. 각 작업은 하나의 셀 내에서 실행된다. 셀은 보통 한 데이터 센터 내의 수천 대의 컴퓨터로 구성된다. 

 

쿠버네티스와 유사하다. 위의 내용을 쿠버네티스에 대입을 해보자면 셀은 워커노드다. 각 작업 즉 애플리케이션은 워커노드 위에서 동작된다. 

 

Borg는 두 가지 주요한 작업을 진행한다.

장기 실행 서비스: Gmail, goolge 검색, Google Docs 이러한 서비스들은 중단되면 안된다. 

배치작업: 로그 분석, 데이터 처리작업

 

Google 개발자들은 선언적 방식으로 작업을 정의한다.

실행할 프로그램, 필요한 리소스 실행환경 설정 등등 선언적방식으로 작업을 정의(Borg Configuration) 

이부분도 쿠버네티스를 통해 애플리케이션을 배포한다고 가정했을 때 yaml을 통해 해당 애플리케이션을 어떻게 배포할건지 정의 하는 부분과 비슷하다. 

 

이러한 특징들을 비교해보자면, Borg는 Google의 인프라를 효율적으로 관리하고 개발자가 복잡한 시스템 관리 대신 자기의 업무에만 집중할 수 있다고 생각한다. 

 

 

 

댓글