임베디드 관련 카테고리/Kubernates

GitLab 개요

CBJH 2025. 1. 10.
728x90
반응형

 

GitLab은 Git 기반의 코드 저장소 관리 도구로, 코드 버전 관리뿐만 아니라 CI/CD, 프로젝트 관리, 코드 리뷰, 협업 기능 등을 통합적으로 제공합니다. GitHub와 유사하지만, 자체 서버에서 호스팅 가능하며, DevOps 중심의 강력한 CI/CD 통합 기능이 특징입니다.


1. GitLab의 주요 특징

(1) Git 리포지토리 관리

  • Git 기반으로 소스 코드를 저장, 관리, 공유 가능.
  • 브랜치 관리, 병합 요청(Merge Request), 코드 리뷰 지원.

(2) CI/CD 통합

  • GitLab CI/CD: 소프트웨어 개발, 빌드, 테스트, 배포를 자동화.
  • .gitlab-ci.yml 파일을 사용해 파이프라인 설정.
  • 클라우드 및 온프레미스 서버에서 실행 가능.

(3) 호스팅 옵션

  • GitLab.com (클라우드 기반): GitLab이 제공하는 호스팅 서비스.
  • 셀프 호스팅: GitLab을 자체 서버 또는 클라우드(VM)에 설치해 운영.

(4) DevOps 통합

  • 단일 플랫폼에서 다음을 지원:
    • 계획(Plan), 개발(Create), 테스트(Verify), 배포(Release), 모니터링(Monitor), 보안(Secure).
  • Jenkins, Kubernetes, Docker와의 강력한 통합.

(5) 무료 및 유료 플랜

  • 무료 플랜: 기본적인 리포지토리 관리와 CI/CD 기능 제공.
  • 유료 플랜: 고급 보안 기능, 사용량 분석, 프로젝트 관리 기능.

2. GitLab vs GitHub

기능 GitLab GitHub

호스팅 옵션 클라우드 / 셀프 호스팅 지원 클라우드 기반 (GitHub Enterprise는 온프레미스 가능)
CI/CD 통합 내장 CI/CD, .gitlab-ci.yml 사용 GitHub Actions (별도 설정 필요)
협업 도구 Merge Request, Wiki, Issue Tracking Pull Request, Issues, Wiki
무료 플랜 무제한 퍼블릭/프라이빗 리포지토리 무제한 퍼블릭/프라이빗 리포지토리
자체 호스팅 무료로 자체 서버에 설치 가능 GitHub Enterprise 필요

3. GitLab CI/CD의 구조

GitLab CI/CD는 .gitlab-ci.yml 파일로 설정하며, **파이프라인(Pipeline), 스테이지(Stage), 잡(Job)**으로 구성됩니다.

파이프라인의 구성 요소

  1. Pipeline: 전체 워크플로우를 정의. 여러 스테이지로 구성.
  2. Stage: 병렬로 실행되는 작업(Job)의 그룹.
  3. Job: 스크립트를 실행하는 단위 작업.

.gitlab-ci.yml 예제

stages:
  - build
  - test
  - deploy

build-job:
  stage: build
  script:
    - echo "Building the application"
    - make

test-job:
  stage: test
  script:
    - echo "Running tests"
    - make test

deploy-job:
  stage: deploy
  script:
    - echo "Deploying the application"
    - scp app user@server:/path/to/deploy

작동 방식

  • build 단계 → test 단계 → deploy 단계 순서로 실행.
  • 각 단계에서 병렬로 작업 가능.

4. GitLab 셀프 호스팅의 장점

  1. 완전한 제어권:
    • 자체 서버에서 GitLab을 운영하여 데이터와 설정을 완전히 제어 가능.
  2. 비용 절감:
    • 무료 Community Edition으로 자체 호스팅하면 클라우드 요금을 절약 가능.
  3. 보안 및 프라이버시:
    • 외부 서버에 의존하지 않고 민감한 데이터를 보호.

5. GitLab 사용 사례

(1) 소규모 팀 협업

  • 무료 플랜으로 무제한 프라이빗 리포지토리 사용.
  • Merge Request와 코드 리뷰를 활용해 협업 가능.

(2) DevOps 및 CI/CD

  • GitLab CI/CD로 테스트와 배포를 자동화.
  • Kubernetes와 통합해 컨테이너 기반 배포 가능.

(3) 대규모 기업

  • GitLab의 셀프 호스팅 기능을 사용하여 자체 서버에서 운영.
  • 유료 플랜으로 보안 스캔, 사용량 분석 등 고급 기능 활용.

6. GitLab 시작하기

(1) GitLab.com에서 계정 생성

  • GitLab.com에 가입.
  • 프로젝트를 생성하고 코드를 푸시.

(2) GitLab 셀프 호스팅

  • GitLab Community Edition 설치:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://your-server" apt-get install gitlab-ce
  • 설치 후 웹 브라우저에서 관리.

(3) CI/CD 파이프라인 설정

  • .gitlab-ci.yml 파일 추가.
  • 자동으로 파이프라인 실행.

결론

GitLab은 소규모 팀부터 대규모 DevOps 환경까지 모두 적합한 강력한 도구입니다. 특히, 무료 셀프 호스팅통합된 CI/CD 기능이 큰 장점입니다. 필요에 따라 GitHub와 GitLab을 비교하여 적합한 플랫폼을 선택하면 됩니다.

'임베디드 관련 카테고리 > Kubernates' 카테고리의 다른 글

CI/CD 개요, 배포 자동화  (0) 2025.01.09

댓글