InfoGrab DocsInfoGrab Docs

리소스 그룹

GitLab CI/CD에서 job의 동시성을 제어하는 리소스 그룹 사용법을 설명합니다.

기본적으로 GitLab CI/CD의 파이프라인은 동시에 실행됩니다. 동시성은 머지 리퀘스트에서 피드백 루프를 개선하는 중요한 요소이지만, 배포 job의 동시성을 제한하여 하나씩 실행하고 싶은 경우도 있습니다. 리소스 그룹을 사용하여 안전하게 지속적인 배포 워크플로를 최적화하기 위해 job의 동시성을 전략적으로 제어합니다. 리소스 그룹 추가 # 리소스 그룹에는 하나의 리소스만 추가할 수 있습니다. 다음 파이프라인 구성(리포지터리의 .gitlab-ci.yml 파일)이 있다고 가정합니다: build: stage: build script: echo "Your build script" deploy: stage: deploy script: echo "Your deployment script" environment: production 브랜치에 새 커밋을 푸시할 때마다 build 와 deploy 두 개의 job이 있는 새 파이프라인이 실행됩니다. 하지만 짧은 간격으로 여러 커밋을 푸시하면 여러 파이프라인이 동시에 실행되기 시작합니다. 예를 들어: 첫 번째 파이프라인이 build -> deploy job을 실행합니다. 두 번째 파이프라인이 build -> deploy job을 실행합니다. 이 경우 다른 파이프라인의 deploy job들이 production 환경에 동시에 실행될 수 있습니다. 동일한 인프라에 여러 배포 스크립트를 실행하면 인스턴스를 손상시키거나 혼란을 주고, 최악의 경우 손상된 상태로 남길 수 있습니다. deploy job이 한 번에 하나씩 실행되도록 하려면 동시성에 민감한 job에 resource_group 키워드 를 지정합니다: deploy: # ... resource_group: production 이 구성으로 파이프라인 효율성을 극대화하기 위해 build job을 동시에 실행하면서도 배포의 안전성이 보장됩니다. 사전 요구사항 # GitLab CI/CD 파이프라인 에 대한 지식 GitLab 환경 및 배포 에 대한 지식 CI/CD 파이프라인을 구성하기 위한 프로젝트에 대한 Developer, Maintainer 또는 Owner 권한. 프로세스 모드 # 배포 환경에 맞게 job 동시성을 제어하는 프로세스 모드를 선택할 수 있습니다. 다음 모드가 지원됩니다: 프로세스 모드 설명 사용 시기 unordered 기본 프로세스 모드. job이 실행할 준비가 될 때마다 처리합니다. job의 실행 순서가 중요하지 않은 경우. 사용하기 가장 쉬운 옵션. oldest_first 리소스가 비어 있을 때 파이프라인 ID 오름차순으로 정렬된 예정 job 목록에서 첫 번째 job을 선택합니다. 가장 오래된 파이프라인의 job을 먼저 실행하려는 경우. unordered 모드보다 효율성은 낮지만 지속적인 배포에 더 안전합니다. newest_first 리소스가 비어 있을 때 파이프라인 ID 내림차순으로 정렬된 예정 job 목록에서 첫 번째 job을 선택합니다. 최신 파이프라인의 job을 실행하고 오래된 배포 job을 방지하려는 경우. 각 job은 멱등성이어야 합