TL;DR

  • GitHub 장애가 도구 설치에 미치는 영향을 줄이기 위해 Bitrise가 Ruby 설치 경로를 nixpkgs, mise 사전 빌드 바이너리, 소스 빌드 순으로 이중화함.
  • mise는 기본 기능으로 사전 빌드된 Ruby 바이너리 설치를 지원하며, 바이너리는 GitHub에 호스팅됨.
  • Bitrise는 자체 mise 플러그인으로 nixpkgs에서 사전 빌드 바이너리를 가져와 기존부터 macOS에서 빠른 Ruby 설치를 제공함.
  • mise의 바이너리 저장소는 GitHub 가동 시간에 영향을 받지만, nixpkgs는 S3에 호스팅되며 자체 호스팅도 가능함.
  • 중복 경로는 서비스 가용성뿐 아니라 새 Ruby 버전의 바이너리가 nixpkgs보다 mise에 먼저 올라오는 경우에도 빠른 설치 버전 범위를 넓힘.

도구 체인은 여전히 GitHub를 거침

  • GitHub의 인공지능(AI) 확장 문제를 둘러싼 온라인 논의에는 트래픽의 지속적 증가와 GitHub 자체의 의사결정을 고려할 때 사용자가 얼마나 관대해야 하는지에 관한 이야기가 많음.
  • 많은 오픈소스 개발자의 반대에도 업계에 Copilot을 밀어붙인 대담한 GitHub가 이제 ‘허그 오브 데스’에 시달린다는 점에는 아이러니가 있음. GitHub가 초기 에이전트형 코딩 도구를 만들지 않았다면 이런 상황을 겪지 않았을지는 확실하지 않음.
  • 2026년 현재 업계의 큰 변화는 GitHub의 안정성과 평판에도 영향을 미쳤으며, GitHub 장애는 다운스트림 엔지니어링 팀에 미묘한 방식으로 파급됨.
  • 회사가 여러 시간 동안의 서비스 중단을 감당할 수 없다고 판단해 다른 Git 포지로 옮기더라도 GitHub는 개발자의 일상에 깊숙이 남아 있음.
  • 예를 들어 mise는 최근 사전 빌드된 Ruby 바이너리 지원을 기본 기능으로 추가함. 이전에는 mise use [email protected] 실행 시 Ruby를 처음부터 컴파일해야 해 몇 분이 걸렸지만, 사전 빌드 바이너리 설치는 몇 초면 됨.
  • DHH도 X 게시물에서 더 빨라진 설치를 위한 mise의 사전 빌드 Ruby 바이너리를 칭찬함.
  • 해당 사전 빌드 바이너리의 호스팅 장소는 GitHub임.

Bitrise가 이미 Ruby 설치를 빠르게 만든 방식

  • Bitrise 팀은 Bitrise CI, Build Hub, Remote Developer Environment 제품을 구동하는 가상 머신(VM) 이미지를 관리하며, 대부분의 개발자 요구를 충족하도록 이미지에 여러 Ruby 버전을 포함함.
  • 이미지에 없는 특정 버전이 필요한 워크플로에서는 mise use [email protected], asdf install ruby x.y.z 또는 래퍼인 bitrise tools install ruby x.y.z를 사용함.
  • bitrise tools install은 지난해부터 macOS에서 매우 빠른 Ruby 설치를 제공함. 따라서 Bitrise 고객은 DHH보다 먼저 빠른 Ruby 설치를 이용함.
  • Bitrise CLI는 사용자 정의 mise 플러그인을 통해 nixpkgs에서 사전 빌드된 Ruby 바이너리를 가져오며, 내부적으로 도구 설치 시 이 플러그인과 함께 mise를 실행함.

플러그인을 폐기할지 여부

  • mise가 사전 빌드 Ruby 바이너리를 기본 지원하면서 플러그인 없이도 같은 속도의 설치를 제공하고, 관리 프로젝트를 하나 줄일 기회가 생김.
  • 일반적으로는 추가 프로젝트 유지에 드는 엔지니어링 부담과 해당 시스템이 없을 때 최종 사용자 경험에 생기는 위험을 비교해 결정함.
  • mise 구현은 바이너리를 GitHub에 저장하므로 유용성이 GitHub 가동 시간과 직접 연결됨. GitHub가 중단돼도 설치는 계속되지만 Ruby가 소스 컴파일로 전환돼 빌드가 느려짐.
  • 반면 nixpkgs는 S3에 호스팅되며 자체 호스팅 선택지도 있어 편리한 이중화를 제공함.

두 경로를 모두 유지한 이유

  • 8월 17일에 발생한 7시간이 넘는 장애 등 최근 사례를 고려하면 결정은 명확했음. 중복 프로젝트를 유지하는 추가 부담을 감수할 고객 혜택이 분명함.
  • 이제 bitrise tools install ruby는 다음 세 경로를 순서대로 시도함.
  • nixpkgs
  • mise 사전 빌드 바이너리
  • 소스에서 빌드
  • 별도 변경 없이 bitrise tools install을 계속 사용하면 대체 경로가 자동으로 작동함.
  • Ruby 설치 흐름은 먼저 nixpkgs를 시도하고, 실패하면 mise 사전 빌드 바이너리를 사용하며, 마지막으로 소스에서 빌드하는 방식임.
  • 가동 시간 외에도 버전 범위 확대라는 이점이 있음. 새 Ruby 버전의 사전 빌드 바이너리 호스팅이 nixpkgs에서 늦어지고 mise가 더 먼저 게시하면, 기본 mise 경로로 매끄럽게 전환해 여러 Ruby 버전에서 빠른 설치 범위를 더 완전하게 제공할 수 있음.

Bitrise는 업스트림 혼란을 흡수하는 지루한 계층임

  • 사전 빌드 Ruby 지원을 추가한 mise 팀에 큰 감사를 전함. 바이너리 호스팅에 GitHub를 사용하는 사례는 GitHub가 앞으로도 개발자의 일상에서 중심적인 역할을 할 것임을 보여줌.
  • Bitrise의 역할은 업스트림의 혼란을 흡수하는 지루한 계층임. 플랫폼 엔지니어는 사용자에게 안정적이고 성능이 뛰어난 경험을 제공하는 방식을 결정할 때 이 관점을 가져야 함.
  • GitHub 장애로 인해 Bitrise는 이중화 방식을 당연한 선택으로 받아들였으며, 앞으로의 결정에서도 같은 기조가 이어질 것으로 예상함.