피드로 돌아가기
I taught a bucket to speak Git
Hacker NewsHacker News
Infrastructure

Disk-less Git Server: Object Storage 기반의 상태 제거 아키텍처 구현

I taught a bucket to speak Git

2026년 6월 24일17advanced

Context

기존 Git 서버는 /usr/bin/git 바이너리에 의존하여 로컬 파일시스템 기반의 Stateful 구조를 유지함. 이로 인해 단일 장애 지점(SPOF) 발생 및 클라우드 네이티브 환경의 Stateless 지향 설계와 충돌하는 한계 존재.

Technical Solution

  • go-git 라이브러리를 활용하여 외부 Git 바이너리 의존성을 완전히 제거한 Pure-Go 구현체 채택
  • billy 파일시스템 추상화 레이어를 도입하여 Object Storage(Tigris)를 표준 파일시스템처럼 인식하도록 설계
  • Git의 Content-addressed storage 특성과 Object Storage의 Append-only 모델 간의 구조적 정렬을 통한 저장 효율 최적화
  • 빈번한 변경이 발생하는 Refs 데이터를 소형 파일로 처리하여 Object Storage의 쓰기 오버헤드 최소화
  • 로컬 디스크와 데이터베이스를 배제하고 Bucket 직접 연결 방식을 통해 인프라 복잡도 제거

- 파일시스템 의존성이 높은 레거시 도구를 클라우드로 이관할 때 추상화 인터페이스(Interface Abstraction) 도입 검토 - 데이터의 불변성(Immutability)과 Content-addressing 특성을 분석하여 최적의 Storage Engine 매칭 여부 확인 - 외부 바이너리 셸 호출(Shell-out) 방식이 시스템 안정성(Panic/Crash)에 미치는 영향 평가 및 라이브러리 대체 가능성 탐색

원문 읽기