애플리케이션을 배포하고 릴리스하는 방법 시작하기

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

이러한 프로세스들은 더 큰 워크플로우의 일부입니다:

WorkFlow

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

패키지 및 레지스트리를 사용하여 프로젝트의 종속성, 라이브러리 및 기타 아티팩트를 안전하게 저장하고 배포하세요. 패키지 레지스트리는 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 파이프라인은 환경 변수를 사용하여 미세 조정할 수 있습니다.

더 많은 정보는 다음을 참조하세요: