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