CLI를 사용하여 업데이트 롤백하기

이 튜토리얼에서는 CLI를 사용하여 배포를 롤백하는 방법을 안내합니다. 이 튜토리얼을 완료하면 배포된 변경 사항을 프로젝트의 배포 가능한 아키텍처 구성으로 되돌릴 수 있는 방법을 배울 수 있습니다. 이 튜토리얼이 끝나면 배포 가능한 아키텍처 구성이 마지막으로 성공적으로 배포된 버전과 일치하게 됩니다.

여러분이 예시 기업의 소프트웨어 개발자라고 가정해 보세요. 인프라 설계자가 배포 가능한 아키텍처( Code Engine )를 위한 클라우드 자동화를 발견하고 클라우드 자동화 엔지니어링 전문가가 비즈니스 요구 사항을 완벽하게 충족하도록 맞춤화했습니다. Example Corp's infrastructure 이라는 사용자 지정 아키텍처를 두 지역에 배포했습니다. 그런 다음 클라우드 자동화 엔지니어링 전문가가 Example Corp's infrastructure 의 새 버전을 출시하여 실행 중인 배포가 최신 버전을 사용하도록 업데이트했습니다. 최근 팀에서 us-south 지역에서 버그를 발견했습니다. 이 버그는 새로운 버그이므로 해당 배포에 버그가 포함되지 않았다는 것을 알고 있으므로 us-south 리전에 대한 배포를 이전으로 롤백하려고 합니다.

이 자습서에서는 가상의 시나리오를 사용하여 배포된 변경 사항을 프로젝트의 배포 가능한 아키텍처 구성으로 롤백하는 방법을 이해하는 데 도움을 줍니다. 튜토리얼을 완료하면서 각 단계를 조직의 필요에 맞게 조정하세요.

시작하기 전에

  1. Example Corp's infrastructure 이라는 사용자 지정 배포 가능한 아키텍처를 만들고 Example Corp catalog 이라는 비공개 카탈로그에 온보딩합니다.

  2. Example Corp infrastructure 이라는 프로젝트를 사용하여 예제 회사의 인프라를 두 지역에 배포합니다.

  3. 비공개 카탈로그의 새 버전으로 예시 회사의 인프라를 업데이트하고 사용자가 선택할 수 있는 두 가지 데이터베이스 옵션을 추가합니다. 비공개 카탈로그에서 버전을 확인하여 새 버전이 Validated draft 상태가 되도록 합니다.

  4. 최신 버전( Example Corp's infrastructure )을 사용하도록 프로젝트를 업데이트하고 변경 사항을 배포합니다.

    Example Corp's infrastructure 의 최신 버전에는 Example Corp infrastructure 프로젝트에서 배포할 수 있는 데이터베이스 옵션이 포함되어 있습니다. 이 튜토리얼을 완료해도 example-corp-us-south 구성을 제외하고는 프로젝트에 아무런 영향을 미치지 않습니다. 필요한 경우 데이터베이스를 포함하여 프로젝트의 다른 구성을 개별적으로 배포 해제할 수 있습니다.

  5. 이 튜토리얼을 완료하려면 IBM Cloud CLI를 설치하세요.

프로젝트 ID, 구성 ID 및 되돌리려는 버전 찾기

CLI 명령을 실행하여 변경 사항을 이전에 배포된 버전으로 되돌리려면 먼저 example-corp-us-south 구성의 ID와 구성이 포함된 Example Corp infrastructure 프로젝트의 ID가 필요합니다.

CLI를 사용하여 이러한 ID와 버전을 찾으려면 다음 명령을 실행하세요:

  1. 다음 명령을 실행하여 IBM Cloud 에 로그인합니다 ibmcloud login 명령을 실행합니다. 계정이 여러 개 있는 경우 사용할 계정을 선택하라는 메시지가 표시됩니다:

    ibmcloud login \
        --sso
    

    --sso 옵션을 사용하여 콘솔을 통해 로그인합니다. 이렇게 하면 웹 브라우저에서 콘솔이 열리고 로그인할 수 있습니다. 그런 다음 CLI에 붙여넣을 수 있는 코드가 생성됩니다.

  2. 다음 명령을 실행하여 계정에서 Example Corp infrastructure 프로젝트의 ID를 찾습니다 ibmcloud project list 명령을 실행합니다:

    ibmcloud project list \
        --all-pages
    

    --all-pages 옵션을 사용하여 계정의 모든 프로젝트를 검색할 수 있습니다.

  3. Example Corp infrastructure 프로젝트의 ID와 구성 이름을 사용하여 구성 ID를 찾습니다. 다음 ibmcloud project configs 명령을 실행합니다:

    ibmcloud project configs \
        --project-id <Example-Corp-infrastructure-project-id> \
        --all-pages
    
  4. Example Corp infrastructure 프로젝트의 ID와 example-corp-us-south 구성의 ID를 사용하여 프로젝트에서 해당 구성의 버전을 찾습니다. 다음 ibmcloud project config-versions 명령을 실행합니다:

    ibmcloud project config-versions \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id>
    

    example-corp-us-south 구성의 두 가지 버전이 나열되어야 합니다. 버전 2는 deployed 상태이고 버전 1은 superseded 상태입니다. 가장 초기에 배포된 버전이 가장 먼저 배포된 버전입니다. 해당 버전으로 롤백하려는 버전입니다.

롤백하려는 버전을 검색합니다

이제 롤백할 ID와 버전을 확보했으므로 다음 ibmcloud project config-version 명령을 실행하여 example-corp-us-south 의 특정 버전을 검색합니다. JSON 형식으로 출력을 반환하는 매개 변수를 포함해야 합니다:

   ibmcloud project config-version \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id> \
        --version 1 \
        --output json

definition 블록의 내용을 JSON 출력에 복사하고 definition.json 파일에 저장합니다. definition 의 내용에는 제공한 입력 값, 대상 계정에 배포할 프로젝트 액세스 권한을 부여하는 데 사용한 권한, 구성 이름, 비공개 카탈로그에서 배포 가능한 아키텍처를 식별하는 Example Corp's infrastructure 의 로케이터 ID가 포함됩니다. 예를 들어 프로젝트에서 제공한 모든 입력과 정보가 포함된 example-corp-us-south 버전 1의 스냅샷이라고 생각하세요:

{
    "authorizations": {},
    "compliance_profile": {},
    "description": "",
    "inputs": {
      "prefix": "us-south",
      "region": "us-south"
    },
    "locator_id": "<Example-Corp-catalog-locator-id>",
    "name": "example-corp-us-south",
    "environment_id": "<Example-Corp-infrastructure-dev-id>"
}

이전 버전의 정의를 사용하도록 구성을 업데이트합니다

이제 example-corp-us-south 의 버전 1에 대한 정의를 얻었으므로 해당 정의를 사용하도록 구성을 업데이트합니다. 이렇게 하면 example-corp-us-south 이 업데이트되어 버전 1을 배포할 때 구성한 것과 정확히 일치합니다. 다음 명령을 실행합니다 ibmcloud project config-update 명령을 실행합니다 example-corp-us-south:

ibmcloud project config-update \
     --project-id <Example-Corp-infrastructure-project-id> \
     --id <example-corp-us-south-id> \
     --definition "$(cat definition.json)"

변경 사항 확인, 승인 및 배포

이제 example-corp-us-south 이 첫 번째 버전의 구성에 대한 정의를 사용하도록 업데이트되었으므로 이제 변경 사항을 검증, 승인 및 배포할 차례입니다. 콘솔을 사용하거나 다음 CLI 명령을 실행할 수 있습니다:

  1. 다음 명령을 실행하여 example-corp-us-south 의 유효성을 검사합니다 ibmcloud project config-validate 명령을 실행합니다:

    ibmcloud project config-validate \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id>
    
  2. 다음 명령을 실행하여 example-corp-us-south 을 승인합니다 ibmcloud project config-approve 명령을 실행합니다:

    ibmcloud project config-approve \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id> \
        --comment <Rolling back to the previously deployed version>
    
  3. 다음 명령을 실행하여 example-corp-us-south 배포 ibmcloud project config-deploy 명령을 실행합니다:

    ibmcloud project config-deploy \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id>
    

배포가 성공적으로 완료되면 example-corp-us-south 은 이제 프로젝트에서 배포한 해당 구성의 첫 번째 버전으로 되돌아갑니다. 이제 팀에서 버그를 조사하고 필요한 경우 Example Corp's infrastructure 에 업데이트를 릴리스할 수 있습니다.