배포 파이프라인 실패 후 이전의 안정된 상태로 배포를 되돌리는 작업이 포함된 파이프라인으로 롤백을 구성합니다. 실패가 발생하는 경우 롤백하려면 롤백 파이프라인을 작업 또는 단계에 연결합니다.
사용자의 역할에 따라 롤백 이유는 다를 수 있습니다.
- 릴리스 엔지니어는 릴리스하는 동안 Code Stream을 통해 릴리스의 성공 여부를 확인하여 릴리스를 계속할지 아니면 롤백할지 알 수 있습니다. 가능한 실패에는 작업 실패, UserOps의 거부, 메트릭 임계값 초과 등이 포함됩니다.
- 환경 소유자는 이전 릴리스를 다시 배포하여 환경을 알려진 정상 상태로 빠르게 되돌릴 수 있습니다.
- 환경 소유자는 블루-그린 배포의 롤백을 지원하여 릴리스 실패에 따른 다운타임을 최소화할 수 있습니다.
롤백 옵션을 클릭한 상태로 스마트 파이프라인 템플릿을 사용하여 CD 파이프라인을 생성하면 롤백이 자동으로 파이프라인의 작업에 추가됩니다. 이 사용 사례에서는 스마트 파이프라인 템플릿을 사용하여 롤링 업그레이드 배포 모델을 사용하는 Kubernetes 클러스터에 애플리케이션을 배포하기 위한 롤백을 정의합니다. 스마트 파이프라인 템플릿은 배포 파이프라인과 하나 이상의 롤백 파이프라인을 생성합니다.
- 배포 파이프라인에서 [배포 업데이트] 또는 [배포 확인] 작업이 실패하면 롤백이 필요합니다.
- 롤백 파이프라인에서 배포는 이전 이미지로 업데이트됩니다.
빈 템플릿을 사용하여 롤백 파이프라인을 수동으로 생성할 수도 있습니다. 롤백 파이프라인을 생성하기 전에 롤백 흐름을 계획할 수도 있습니다. 롤백에 대한 자세한 배경 정보는 Code Stream에서 롤백 계획 항목을 참조하십시오.
사전 요구 사항
- Code Stream에서 프로젝트의 멤버인지 확인합니다. 그렇지 않으면 프로젝트 멤버로 추가해 달라고 Code Stream 관리자에게 요청합니다. Code Stream에서 프로젝트를 추가하는 방법의 내용을 참조하십시오.
- 파이프라인이 애플리케이션을 배포할 Kubernetes 클러스터를 설정합니다. 개발 클러스터와 운영 클러스터를 각각 하나씩 설정합니다.
- Docker 레지스트리 설정이 있는지 확인합니다.
- 파이프라인, 끝점 및 대시보드를 비롯한 모든 작업을 그룹화할 프로젝트를 식별합니다.
- 스마트 파이프라인 템플릿을 사용하기 전에 Code Stream에서 CICD 기본 구축 계획의 CD 부분에 설명된 대로 CD 스마트 템플릿에 관한 내용을 숙지합니다. 예를 들면 다음과 같습니다.
- 애플리케이션 이미지를 Kubernetes 클러스터에 배포하는 Kubernetes 개발 및 운영 끝점을 생성합니다.
- 네임스페이스, 서비스 및 배포를 생성하는 Kubernetes YAML 파일을 준비합니다. 개인 소유 저장소에서 이미지를 다운로드해야 하는 경우 YAML 파일에 Docker 구성 비밀이 있는 섹션이 포함되어야 합니다.
프로시저
- 을 클릭합니다.
- 스마트 파이프라인 템플릿에 정보를 입력합니다.
- 프로젝트를 선택합니다.
- 파이프라인 이름을 입력합니다(예: RollingUpgrade-Example).
- 애플리케이션에 대한 환경을 선택합니다. 배포에 롤백을 추가하려면 운영을 선택해야 합니다.
- 선택을 클릭하고 Kubernetes YAML 파일을 선택한 후 처리를 클릭합니다.
사용 가능한 서비스와 배포 환경이 스마트 파이프라인 템플릿에 표시됩니다.
- 배포를 위해 파이프라인에서 사용할 서비스를 선택합니다.
- 개발 환경 및 운영 환경에 대한 클러스터 끝점을 선택합니다.
- [이미지 소스]로는 파이프라인 런타임 입력을 선택합니다.
- [배포 모델]로는 롤링 업그레이드를 선택합니다.
- 롤백을 클릭합니다.
- 상태 점검 URL을 제공합니다.
- RollbackUpgrade-Example이라는 이름의 파이프라인을 생성하려면 생성을 클릭합니다.
RollbackUpgrade-Example이라는 파이프라인이 나타나고, 개발 단계 및 운영 단계에서 롤백할 수 있는 작업에 롤백 아이콘이 표시됩니다.
- 파이프라인을 닫습니다.
파이프라인 페이지에 생성한 파이프라인이 나타나고 파이프라인의 각 단계에 대한 새 파이프라인이 나타납니다.
- RollingUpgrade-Example. 생성한 파이프라인은 Code Stream에서 기본적으로 비활성화되기 때문에 파이프라인을 실행하기 전에 검토할 수 있습니다.
- RollingUpgrade-Example_Dev_Rollback. 개발 단계(예: 서비스 생성, 비밀 생성, 배포 생성, 배포 확인)에서 작업이 실패하면 개발 롤백 파이프라인이 호출됩니다. 개발 작업의 롤백을 보장하기 위해 Code Stream은 기본적으로 개발 롤백 파이프라인을 활성화합니다.
- RollingUpgrade-Example_Prod_Rollback. 운영 단계(예: 배포 단계 1, 확인 단계 1, 롤아웃 배포 단계, 롤아웃 완료 단계, 롤아웃 확인 단계)에서 작업이 실패하면 운영 롤백 파이프라인이 호출됩니다. 운영 작업의 롤백을 보장하기 위해 Code Stream은 기본적으로 운영 롤백 파이프라인을 활성화합니다.
- 생성한 파이프라인을 사용하도록 설정하고 실행합니다.
실행을 시작할 때
Code Stream은 입력 매개 변수를 묻는 메시지를 표시합니다. 사용 중인 Docker 저장소의 끝점에 대한 이미지 및 태그를 제공합니다.
- [실행] 페이지에서 를 선택하고 파이프라인 실행을 봅니다.
파이프라인이 RUNNING을 시작하고 개발 단계 작업을 통해 이동합니다. 개발 단계에서 파이프라인이 작업 실행에 실패하면 RollingUpgrade-Example_Dev_Rollback이라는 파이프라인이 트리거되어 배포를 롤백하고 파이프라인 상태가 ROLLING_BACK으로 변경됩니다.
롤백 후에는 [실행] 페이지에 두 개의 RollingUpgrade-Example 파이프라인 실행이 나열됩니다.
- 생성한 파이프라인이 롤백되고 ROLLBACK_COMPLETED가 표시됩니다.
- 롤백을 트리거하고 수행한 개발 롤백 파이프라인에 COMPLETED가 표시됩니다.
결과
축하합니다! 롤백이 포함된 파이프라인을 정의했고
Code Stream이 실패 지점에서 파이프라인을 롤백하는 것을 확인했습니다.