Linux 패키지 및 이미지

Tier: Free, Premium, Ultimate Offering: Self-Managed

다음은 GitLab이 패키지와 번들된 종속성이 포함된 Docker 이미지를 제공하는 몇 가지 기본 정보를 찾을 수 있습니다.

이 방법들은 물리적 및 가상 머신 설치, 그리고 간단한 Docker 설치에 적합합니다.

목표

이러한 패키지에 대한 몇 가지 핵심 목표가 있습니다:

  1. 매우 쉬운 설치, 업그레이드, 유지 관리.
  2. 다양한 운영 체제 지원
  3. 다양한 클라우드 서비스 제공업체 지원

Linux 패키지 아키텍처

GitLab은 핵심적으로 루비 온 레일즈 프로젝트입니다. 그러나 GitLab 전체 애플리케이션은 더 복잡하며 여러 구성 요소를 가지고 있습니다. 이러한 구성 요소들이 존재하지 않거나 잘못 구성된 경우 GitLab이 작동하지 않거나 예측이 불가능하게 작동합니다.

GitLab 아키텍처 개요 에는 이러한 구성 요소들과 그 상호 작용에 대한 정보가 표시되어 있습니다. 이러한 각 구성 요소는 구성되어 있고 최신 상태를 유지해야 합니다.

대부분의 구성 요소는 외부 종속성도 갖고 있습니다. 예를 들어 레일즈 애플리케이션은 여러 Ruby 젬들에 의존합니다. 이러한 종속성 중 일부에도 자체의 외부 종속성이 존재하며, 이들은 올바르게 기능하기 위해 운영 체제에 존재해아 합니다.

게다가, GitLab은 월간 릴리스 주기를 갖고 있어 자주 유지 관리가 필요합니다.

위에서 나열된 모든 사항은 GitLab 설치를 유지 관리하는 사용자에게 도전을 제시합니다.

외부 소프트웨어 종속성

GitLab과 같은 애플리케이션의 경우, 외부 종속성은 일반적으로 다음과 같은 도전을 가져옵니다:

  • 직접 및 간접적인 종속성 간의 버전을 동기화 유지
  • 특정 운영 체제에서 버전의 가용성
  • 버전 변경은 이전에 사용되던 구성을 도입 또는 제거할 수 있음
  • 라이브러리가 취약하게 표시되었지만 새 버전이 아직 릴리스되지 않은 경우 보안적인 영향

운영 체제에 종속성이 존재한다고 하더라도 다른 지원되는 운영 체제에 존재하는 것은 아님을 명심하십시오.

이점

번들된 종속성이 포함된 패키지의 몇 가지 이점:

  1. GitLab을 설치하는 데 필요한 최소한의 노력
  2. GitLab을 가동시키기 위해 필요한 최소한의 구성
  3. GitLab 버전 간의 업그레이드에 필요한 최소한의 노력
  4. 다중 플랫폼 지원
  5. 이전 플랫폼의 유지 관리가 대폭 단순화됨
  6. 잠재적인 문제 지원에 필요한 노력이 줄어듬

단점

번들된 종속성이 포함된 패키지의 몇 가지 단점:

  1. 이미 존재하는 소프트웨어 중복
  2. 구성에 대한 유연성이 줄어듬

시스템 패키지 대신 Linux 패키지에서 패키지를 설치해야 하는 이유

답은 간단히 다음과 같아질 수 있습니다: 유지 관리가 적게 필요합니다. 버전이 호환되지 않으면 기존 기능을 손상시킬 수 있는 여러 패키지를 다루는 대신, 한 가지만 다루면 됩니다.

여러 패키지는 여러 위치에서 올바른 구성을 필요로 합니다. 구성을 동기화 유지하는 것은 오류가 발생할 수 있습니다.

현재 종속성을 유지 관리하고 앞으로도 도입될 수 있는 추가적인 종속성을 처리할 충분한 기술과 시간이 있다면 위에서 나열된 이유가 패키지를 사용하지 않기에 충분하지 않을 수 있습니다.

이 방법을 선택하기 전에 명심해야 할 두 가지 사항이 있습니다:

  1. 문제가 발생할 경우 지원받기 어려울 수 있습니다 다수의 사용자가 테스트하지 않은 라이브러리 버전을 사용할 때 가능성이 많은 여러 가능성으로 인해.
  2. Linux 패키지의 경우 필요없는 서비스를 종료시킬 수도 있습니다. 독립적으로 구성 요소를 실행해야 하는 경우. 예를 들어, 번들되지 않은 PostgreSQL 데이터베이스를 Linux 패키지 설치와 같이 사용할 수 있습니다.

Linux 패키지와 같은 비표준 솔루션이 응용 프로그램에 많은 이동 부분이 있는 경우 더 나은 적합일 수 있음을 명심하십시오.

다중 서비스를 포함한 Docker 이미지

GitLab Docker 이미지는 Linux 패키지를 기반으로 합니다.

이 이미지로부터 생성된 컨테이너는 여러 프로세스를 포함하고 있으므로 이러한 유형의 컨테이너는 ‘fat containers’로도 불립니다.

이러한 이미지에 대한 장단점은 위에서 언급된 것과 유사하지만 다음과 같습니다:

  1. 매우 간편한 시작
  2. 최신 버전으로 업그레이드하는 것은 매우 간단
  3. 별도의 서비스를 별도의 컨테이너에서 실행하고 그들을 계속 실행하는 작업은 더 복잡할 수 있으며 특정 설치에는 필요하지 않을 수 있습니다.

이 방법은 컨테이너 및 스케줄러에 익숙해지기 시작하는 조직 및 보다 복잡한 설치 준비가 되지 않은 작은 조직에 유용합니다. 이 방법은 크기가 작은 조직에서는 훌륭한 소개가 되고 잘 작동합니다.