InfoGrab Docs

애플리케이션 배포 및 릴리스 시작하기

요약

애플리케이션을 미리 보는 것부터 시작하여 사용자 앞의 프로덕션에 배포하는 것으로 마무리합니다. 이 프로세스는 더 큰 워크플로우의 일부입니다: 패키지 및 레지스트리를 사용하여 프로젝트의 의존성, 라이브러리 및 기타 아티팩트를 GitLab에 안전하게 저장하고 배포합니다.

애플리케이션을 미리 보는 것부터 시작하여 사용자 앞의 프로덕션에 배포하는 것으로 마무리합니다. 컨테이너와 패키지를 관리하고, 지속적인 통합을 사용하여 애플리케이션을 제공하며, 기능 플래그와 점진적 롤아웃을 사용하여 제어된 방식으로 애플리케이션을 릴리스합니다.

이 프로세스는 더 큰 워크플로우의 일부입니다:

"배포 및 릴리스" 섹션이 강조 표시된 GitLab의 주요 작업 다이어그램.

1단계: 프로젝트 아티팩트 저장 및 액세스#

패키지 및 레지스트리를 사용하여 프로젝트의 의존성, 라이브러리 및 기타 아티팩트를 GitLab에 안전하게 저장하고 배포합니다.

패키지 레지스트리는 Maven, NPM, NuGet, PyPI, Conan을 포함한 다양한 패키지 형식을 지원합니다. 프로젝트 전반에 걸쳐 패키지를 저장하고 배포할 중앙 위치를 제공합니다. 패키지 레지스트리를 GitLab CI/CD 파이프라인과 통합하여 패키지 게시를 자동화하고 원활한 개발 및 배포 워크플로우를 보장합니다.

컨테이너 레지스트리는 Docker 이미지의 프라이빗 레지스트리 역할을 합니다. 조직 내에서 또는 공개적으로 Docker 및 OCI 이미지를 저장, 관리 및 배포하는 데 사용합니다. 컨테이너 레지스트리를 GitLab CI/CD와 통합하여 컨테이너화된 애플리케이션을 빌드, 테스트 및 배포합니다.

자세한 내용은 다음을 참조하세요:

2단계: 여러 환경에 애플리케이션 배포#

환경을 사용하여 다양한 단계(예: 개발, 스테이징, 프로덕션)에 걸쳐 애플리케이션의 배포를 관리하고 추적합니다. 각 환경은 고유한 구성, 변수 및 배포 설정을 가질 수 있습니다.

환경을 설정한 후 모니터링할 수 있습니다. 주로 배포한 위치(예: AWS)에서 배포를 모니터링하지만, GitLab도 대시보드를 제공합니다. Kubernetes에 배포하는 경우 GitLab UI에서 라이브 클러스터 상태를 모니터링할 수 있습니다.

머지 리퀘스트의 일부로 임시 환경을 만들 수도 있습니다. 팀 구성원은 변경 사항을 메인 브랜치에 커밋하기 전에 검토하고 테스트할 수 있습니다. 이러한 임시 환경을 리뷰 앱이라고 합니다.

자세한 내용은 다음을 참조하세요:

3단계: 지속적 배포 기능으로 규정 준수 유지#

우발적이거나 무단 배포를 방지하여 프로덕션 시스템의 안정성과 무결성을 유지하려면 보호된 환경을 사용합니다. 프로덕션과 같은 중요한 환경에 대한 배포를 보호하고 제어하는 방법을 제공합니다. 보호된 환경을 정의하여 특정 사용자나 역할로 액세스를 제한할 수 있으며, 권한이 있는 사용자만 변경 사항을 배포할 수 있도록 보장합니다.

배포 안전성은 지속적 배포 파이프라인의 일부이며 배포의 신뢰성과 보안을 보장하는 데 도움이 됩니다. GitLab은 배포 실패 시 자동 롤백, 배포 성공 여부를 검증하는 사용자 정의 상태 확인 정의 기능과 같은 내장 안전 메커니즘을 제공합니다.

배포 승인은 배포 프로세스에 제어와 협업의 추가 레이어를 추가합니다. 배포가 진행되기 전에 지정된 승인자가 배포를 검토하고 승인하도록 요구하는 승인 규칙을 정의할 수 있습니다. 환경, 브랜치 또는 배포되는 특정 변경 사항과 같은 다양한 기준에 따라 승인을 설정할 수 있습니다.

자세한 내용은 다음을 참조하세요:

4단계: 공개 또는 내부 사용자에게 릴리스 아티팩트 배포#

릴리스를 사용하여 릴리스 노트, 바이너리 자산 및 기타 관련 정보를 포함하여 최종 사용자에게 애플리케이션을 패키지하고 배포합니다. 어느 브랜치에서든 릴리스를 만들 수 있습니다.

릴리스를 환경과 통합하여 특정 환경(예: 프로덕션)에 배포할 때마다 릴리스가 자동으로 생성되도록 합니다. 릴리스가 발생할 때마다 알림을 받을 수 있으며, 릴리스를 생성, 업데이트, 삭제할 수 있는 권한을 제어하려면 권한을 지정합니다.

자세한 내용은 다음을 참조하세요:

5단계: 안전하게 변경 사항 롤아웃#

애플리케이션을 사용자 또는 서버의 하위 집합에 점진적으로 배포하려면 점진적 롤아웃을 사용합니다. 전체 사용자 기반으로 롤아웃하기 전에 소규모로 영향을 모니터링하고 평가할 수 있습니다.

GitLab의 기능 플래그는 전체 배포 없이 애플리케이션의 특정 기능을 활성화하거나 비활성화하는 방법을 제공합니다. 기능 플래그를 사용하여 새 기능을 안전하게 테스트하고, A/B 테스트를 수행하거나, 사용자에게 점진적으로 변경 사항을 도입할 수 있습니다.

기능 플래그를 사용하면 코드 배포와 기능 릴리스를 분리하여 사용자 경험에 대한 더 많은 제어권을 가지고 버그나 예기치 않은 동작 도입 위험을 줄일 수 있습니다.

자세한 내용은 다음을 참조하세요:

6단계: 정적 웹사이트 배포#

GitLab Pages를 사용하면 프로젝트의 문서, 데모 또는 마케팅 페이지를 선보일 수 있습니다. GitLab의 리포지터리에서 직접 정적 웹사이트를 만듭니다. GitLab Pages는 Jekyll, Hugo, Middleman과 같은 정적 사이트 생성기, 그리고 일반 HTML, CSS 및 JavaScript를 지원합니다. 시작하려면 새 프로젝트를 만들거나 기존 것을 사용하고, GitLab Pages 설정을 구성하고, 콘텐츠를 리포지터리에 푸시합니다. GitLab은 지정된 브랜치에 변경 사항을 푸시할 때마다 웹사이트를 자동으로 빌드하고 배포합니다.

자세한 내용은 다음을 참조하세요:

7단계: Auto Deploy로 의견 제시#

Auto Deploy는 무엇보다도 애플리케이션 빌드와 배포를 처리하는 독자적인 CI 템플릿입니다. 환경 변수를 사용하여 Auto DevOps 파이프라인을 세밀하게 조정할 수 있습니다.

자세한 내용은 다음을 참조하세요:

애플리케이션 배포 및 릴리스 시작하기

원문 보기
요약

애플리케이션을 미리 보는 것부터 시작하여 사용자 앞의 프로덕션에 배포하는 것으로 마무리합니다. 이 프로세스는 더 큰 워크플로우의 일부입니다: 패키지 및 레지스트리를 사용하여 프로젝트의 의존성, 라이브러리 및 기타 아티팩트를 GitLab에 안전하게 저장하고 배포합니다.

애플리케이션을 미리 보는 것부터 시작하여 사용자 앞의 프로덕션에 배포하는 것으로 마무리합니다. 컨테이너와 패키지를 관리하고, 지속적인 통합을 사용하여 애플리케이션을 제공하며, 기능 플래그와 점진적 롤아웃을 사용하여 제어된 방식으로 애플리케이션을 릴리스합니다.

이 프로세스는 더 큰 워크플로우의 일부입니다:

"배포 및 릴리스" 섹션이 강조 표시된 GitLab의 주요 작업 다이어그램.

1단계: 프로젝트 아티팩트 저장 및 액세스#

패키지 및 레지스트리를 사용하여 프로젝트의 의존성, 라이브러리 및 기타 아티팩트를 GitLab에 안전하게 저장하고 배포합니다.

패키지 레지스트리는 Maven, NPM, NuGet, PyPI, Conan을 포함한 다양한 패키지 형식을 지원합니다. 프로젝트 전반에 걸쳐 패키지를 저장하고 배포할 중앙 위치를 제공합니다. 패키지 레지스트리를 GitLab CI/CD 파이프라인과 통합하여 패키지 게시를 자동화하고 원활한 개발 및 배포 워크플로우를 보장합니다.

컨테이너 레지스트리는 Docker 이미지의 프라이빗 레지스트리 역할을 합니다. 조직 내에서 또는 공개적으로 Docker 및 OCI 이미지를 저장, 관리 및 배포하는 데 사용합니다. 컨테이너 레지스트리를 GitLab CI/CD와 통합하여 컨테이너화된 애플리케이션을 빌드, 테스트 및 배포합니다.

자세한 내용은 다음을 참조하세요:

2단계: 여러 환경에 애플리케이션 배포#

환경을 사용하여 다양한 단계(예: 개발, 스테이징, 프로덕션)에 걸쳐 애플리케이션의 배포를 관리하고 추적합니다. 각 환경은 고유한 구성, 변수 및 배포 설정을 가질 수 있습니다.

환경을 설정한 후 모니터링할 수 있습니다. 주로 배포한 위치(예: AWS)에서 배포를 모니터링하지만, GitLab도 대시보드를 제공합니다. Kubernetes에 배포하는 경우 GitLab UI에서 라이브 클러스터 상태를 모니터링할 수 있습니다.

머지 리퀘스트의 일부로 임시 환경을 만들 수도 있습니다. 팀 구성원은 변경 사항을 메인 브랜치에 커밋하기 전에 검토하고 테스트할 수 있습니다. 이러한 임시 환경을 리뷰 앱이라고 합니다.

자세한 내용은 다음을 참조하세요:

3단계: 지속적 배포 기능으로 규정 준수 유지#

우발적이거나 무단 배포를 방지하여 프로덕션 시스템의 안정성과 무결성을 유지하려면 보호된 환경을 사용합니다. 프로덕션과 같은 중요한 환경에 대한 배포를 보호하고 제어하는 방법을 제공합니다. 보호된 환경을 정의하여 특정 사용자나 역할로 액세스를 제한할 수 있으며, 권한이 있는 사용자만 변경 사항을 배포할 수 있도록 보장합니다.

배포 안전성은 지속적 배포 파이프라인의 일부이며 배포의 신뢰성과 보안을 보장하는 데 도움이 됩니다. GitLab은 배포 실패 시 자동 롤백, 배포 성공 여부를 검증하는 사용자 정의 상태 확인 정의 기능과 같은 내장 안전 메커니즘을 제공합니다.

배포 승인은 배포 프로세스에 제어와 협업의 추가 레이어를 추가합니다. 배포가 진행되기 전에 지정된 승인자가 배포를 검토하고 승인하도록 요구하는 승인 규칙을 정의할 수 있습니다. 환경, 브랜치 또는 배포되는 특정 변경 사항과 같은 다양한 기준에 따라 승인을 설정할 수 있습니다.

자세한 내용은 다음을 참조하세요:

4단계: 공개 또는 내부 사용자에게 릴리스 아티팩트 배포#

릴리스를 사용하여 릴리스 노트, 바이너리 자산 및 기타 관련 정보를 포함하여 최종 사용자에게 애플리케이션을 패키지하고 배포합니다. 어느 브랜치에서든 릴리스를 만들 수 있습니다.

릴리스를 환경과 통합하여 특정 환경(예: 프로덕션)에 배포할 때마다 릴리스가 자동으로 생성되도록 합니다. 릴리스가 발생할 때마다 알림을 받을 수 있으며, 릴리스를 생성, 업데이트, 삭제할 수 있는 권한을 제어하려면 권한을 지정합니다.

자세한 내용은 다음을 참조하세요:

5단계: 안전하게 변경 사항 롤아웃#

애플리케이션을 사용자 또는 서버의 하위 집합에 점진적으로 배포하려면 점진적 롤아웃을 사용합니다. 전체 사용자 기반으로 롤아웃하기 전에 소규모로 영향을 모니터링하고 평가할 수 있습니다.

GitLab의 기능 플래그는 전체 배포 없이 애플리케이션의 특정 기능을 활성화하거나 비활성화하는 방법을 제공합니다. 기능 플래그를 사용하여 새 기능을 안전하게 테스트하고, A/B 테스트를 수행하거나, 사용자에게 점진적으로 변경 사항을 도입할 수 있습니다.

기능 플래그를 사용하면 코드 배포와 기능 릴리스를 분리하여 사용자 경험에 대한 더 많은 제어권을 가지고 버그나 예기치 않은 동작 도입 위험을 줄일 수 있습니다.

자세한 내용은 다음을 참조하세요:

6단계: 정적 웹사이트 배포#

GitLab Pages를 사용하면 프로젝트의 문서, 데모 또는 마케팅 페이지를 선보일 수 있습니다. GitLab의 리포지터리에서 직접 정적 웹사이트를 만듭니다. GitLab Pages는 Jekyll, Hugo, Middleman과 같은 정적 사이트 생성기, 그리고 일반 HTML, CSS 및 JavaScript를 지원합니다. 시작하려면 새 프로젝트를 만들거나 기존 것을 사용하고, GitLab Pages 설정을 구성하고, 콘텐츠를 리포지터리에 푸시합니다. GitLab은 지정된 브랜치에 변경 사항을 푸시할 때마다 웹사이트를 자동으로 빌드하고 배포합니다.

자세한 내용은 다음을 참조하세요:

7단계: Auto Deploy로 의견 제시#

Auto Deploy는 무엇보다도 애플리케이션 빌드와 배포를 처리하는 독자적인 CI 템플릿입니다. 환경 변수를 사용하여 Auto DevOps 파이프라인을 세밀하게 조정할 수 있습니다.

자세한 내용은 다음을 참조하세요: