메인 콘텐츠로 건너뛰기

Alpine 리눅스

Craft of Code

어떻게 Alpine 리눅스는 값을 희생하지 않고 확장


Alpine Linux 배포는 소수의 사용자만 배포하는 작은 프로젝트로 시작되었습니다. 오늘 날, 베어 메탈과 컨테이너 기반 솔루션 모두를 위한 성숙하고 현대적이며 가벼운 솔루션으로 성장했습니다. Docker 컨테이너 인프라에서 가장 많이 사용되는 배포 중 하나입니다.

패키지 매니저와 같은 핵심 도구의 작은 크기와 인상적인 성능 때문에 Carlo Landmeter, Kevin Daudt, 및 Natanael Copa가 이끄는 Alpine Linux Working Group은 다양한 하드웨어 아키텍처(아치)에 대한 요청이 증가하고 있습니다.

Docker Alpine Linux를 "비공식" 기본 리눅스 배포판으로 발표할 즈음에 아치에 대한 요청은 더욱 더 급증했습니다.열정적인 개발자들은 늘어나는 수요를 충족하기 위해 노력해야 했습니다. 이 팀은 처음에는 x86 및 x86_64(amd64)를 지원하는 리소스만 있었지만 이제는 메뉴에서 ppc64le, s390x 및 mips64를 갖춘 ARM 아키텍처(32비트 및 64비트)를 제공합니다.


이러한 성장으로 Alpine Linux 팀은 팀이 손쉽게 관리할 수 있는 것보다 많은 일을 떠맡게 되었습니다. Carlo는 "지난 몇 년 동안 시스템을 제대로 유지하는 것이 점점 더 어려워지고 있다는 것을 알게 되었다"면서 "이러한 아키텍처의 대부분은 자체 컴퓨터가 필요하며 개발자들에게 모든 아키텍처에 대한 액세스를 제공하는 것이 어려울 때가 있습니다. 이러한 아키텍처 중 일부는 일반적이지 않거나 액세스하기가 매우 어렵습니다."라고 했습니다.

현재의 상황은 지속 가능하지 않다는 것을 깨달은 후, 팀은 몇 가지 변경이 필요하다고 결정했습니다. 개발 플랫폼을 전환하고 자체 호스팅 GitLab 인스턴스로 마이그레이션하여 8개의 아키텍처에 대해 CI를 구현하고 DevOps 주기에 하나의 도구를 사용하는 것이 보다 간편해졌습니다. Alpine Linux의 베어 메탈 스폰서가 각 아키텍처에 전용 CI 서버를 배치하는 데 도움을 주어, 코드 품질과 빌드 문제를 크게 차별화시키게 되었습니다.

그 다음 Alpine Linux는 다음 새로운 인프라 아이디어를 호스팅 하기 위해 Alpine Linux를 편리하게 운영체제로 제공하는 몇 안 되는 호스팅 공급자 중 하나인 Linode를 선택하였습니다. Linode를 이용함으로써 Alpine Linux는 다음과 같은 4대 기본 인프라 원칙을 여전히 견지하면서 발전해 나갈 수 있게 되었습니다.

  1. 내 개밥 먹기(즉, 컨테이너화한 Alpine 기반 GitLab을 Linode 인프라에서 완전하게 실행한다는 뜻).
  2. 벤더 종속 방지.
  3. 가능한 독립적일 것.
  4. 가능한 투명할 것.
페데리코 니베스

Carlo는 "Linode의 가치 있는 기능 중 하나는 백업을 쉽게 생성하고 임시 인스턴스로 복원하고 GitLab 업그레이드 테스트를 실행하는 데 도움이 되는 백업 서비스입니다. 따라서 업그레이드를 철저히 테스트할 수 있으며 이로써 다운타임을 현저하게 줄일 수 있습니다"라고 말합니다.

앞날을 내다보며 Alpine Linux는 인프라 원칙을 뒷받침하기 위해 Linode를 이용할 수 있는 방법에 대한 보다 많은 아이디어가 있습니다. 그 첫 번째는 코드로서의 인프라입니다. Linode의 API를 연구한 후, Alpine Linux는 GitLab 워크플로우를 구현하고 CI/CD를 사용하여 인프라를 Linode에 위치한 컨테이너로 컨테이너로 푸시하는 완전 자동화 프로세스에 대한 비전을 수립했습니다. 이 프로세스로 Alpine Linux의 개발자들은 현재 인프라의 훨씬 더 투명한 개요에 액세스할 수 있게 되며, 커뮤니티 기여도 훨씬 쉬워질 것입니다.

Linode의 지원 및 호스팅 역량을 갖춤으로써 Alpine Linux는 새로운 지평을 열고 있으며 동시에 그 핵심 원칙에 대한 약속은 꾸준히 지킬 수 있게 되었습니다. Carlo의 말대로 “완벽한 조합”입니다.

공유하기