Eseguire il rollback di un aggiornamento utilizzando la CLI

Questa esercitazione illustra come eseguire il rollback di un deployment utilizzando la CLI. Completando questa esercitazione, si apprende come ripristinare le modifiche distribuite a una configurazione di architettura distribuibile in un progetto. Alla fine di questa esercitazione, la configurazione dell'architettura distribuibile corrisponderà all'ultima versione distribuita con successo.

Immaginate di essere uno sviluppatore di software per l'azienda Example Corp. L'architetto dell'infrastruttura ha scoperto l'architettura distribuibile Cloud automation for Code Engine e il professionista dell'automazione del cloud l'ha personalizzata per soddisfare pienamente le esigenze aziendali. Avete distribuito l'architettura personalizzata chiamata Example Corp's infrastructure in due regioni. Poi, il professionista dell'automazione del cloud ha rilasciato una nuova versione di Example Corp's infrastructure, quindi ha aggiornato le distribuzioni in corso per utilizzare l'ultima versione. Recentemente, il vostro team ha scoperto un bug nella regione us-south. Il bug è nuovo, quindi si vuole riportare la distribuzione per la regione us-south a quella precedente, poiché si sa che quella distribuzione non includeva il bug.

Questa esercitazione utilizza uno scenario fittizio per aiutarvi a capire come eseguire il rollback delle modifiche distribuite a una configurazione di architettura distribuibile nel vostro progetto. Nel completare l'esercitazione, adattate ogni fase alle esigenze della vostra organizzazione.

Prima di iniziare

  1. Creare un'architettura distribuibile personalizzata chiamata Example Corp's infrastructure e inserirla in un catalogo privato chiamato Example Corp catalog.

  2. Distribuire l'infrastruttura di Example Corp in due regioni utilizzando un progetto chiamato Example Corp infrastructure.

  3. Aggiornate l'infrastruttura di Example Corp con una nuova versione del catalogo privato e aggiungete due opzioni di database tra cui gli utenti possono scegliere. Convalidare la versione nel catalogo privato in modo che la nuova versione sia nello stato Validated draft.

  4. Aggiornare il progetto per utilizzare l'ultima versione di Example Corp's infrastructure e distribuire le modifiche.

    L'ultima versione di Example Corp's infrastructure include opzioni di database che possono essere distribuite dal progetto Example Corp infrastructure. Il completamento di questa esercitazione non ha alcun impatto sul progetto, a parte la configurazione di example-corp-us-south. Se necessario, è possibile disinstallare separatamente le altre configurazioni del progetto, compresi i database.

  5. Per completare questa esercitazione, installare la CLI di IBM Cloud.

Trovare l'ID del progetto, l'ID della configurazione e la versione a cui si desidera tornare

Prima di poter eseguire i comandi CLI per ripristinare le modifiche apportate a una versione distribuita in precedenza, occorre l'ID della configurazione example-corp-us-south e l'ID del progetto Example Corp infrastructure che contiene la configurazione.

Per trovare questi ID e la versione utilizzando la CLI, eseguire i seguenti comandi:

  1. Accedere a IBM Cloud eseguendo il seguente ibmcloud login comando. Se si dispone di più account, viene richiesto di selezionare quale account utilizzare:

    ibmcloud login \
        --sso
    

    Utilizzare l'opzione --sso per accedere alla console. In questo caso, la console si apre in un browser web per consentire l'accesso. Viene quindi generato un codice da incollare nella CLI.

  2. Trovate l'ID del progetto Example Corp infrastructure nel vostro account eseguendo il seguente comando ibmcloud project list comando:

    ibmcloud project list \
        --all-pages
    

    Utilizzate l'opzione --all-pages per recuperare tutti i progetti del vostro account.

  3. Utilizzare l'ID del progetto Example Corp infrastructure e il nome della configurazione per trovare l'ID della configurazione. Eseguire il seguente ibmcloud project configs per farlo:

    ibmcloud project configs \
        --project-id <Example-Corp-infrastructure-project-id> \
        --all-pages
    
  4. Usare l'ID del progetto Example Corp infrastructure e l'ID della configurazione example-corp-us-south per trovare le versioni di quella configurazione nel progetto. Eseguire il seguente ibmcloud project config-versions comando:

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

    Dovrebbero essere elencate due versioni della configurazione di example-corp-us-south. La versione due è nello stato deployed, mentre la versione uno è nello stato superseded. La prima versione è la prima che è stata distribuita. Questa versione è quella a cui si vuole tornare.

Recuperare la versione a cui si vuole tornare indietro

Ora che si dispone degli ID e della versione a cui si vuole tornare, eseguire il seguente comando ibmcloud project config-version per recuperare la versione specifica di example-corp-us-south. Assicurarsi di includere il parametro per restituire l'output nel formato JSON:

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

Copiare il contenuto del blocco definition nell'uscita JSON e salvarlo in un file definition.json. Il contenuto di definition include i valori di input forniti, l'autorizzazione usata per concedere al progetto l'accesso alla distribuzione nell'account di destinazione, il nome della configurazione e l'ID del localizzatore per Example Corp's infrastructure che identifica l'architettura distribuibile nel catalogo privato. Considerate un'istantanea della versione 1 di example-corp-us-south con tutti gli input e le informazioni fornite nel vostro progetto, ad esempio:

{
    "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>"
}

Aggiornare la configurazione per utilizzare la definizione della versione precedente

Ora che si dispone della definizione della versione 1 di example-corp-us-south, aggiornare la configurazione per utilizzare tale definizione. Questo aggiorna example-corp-us-south in modo che sia esattamente come è stato configurato quando è stata distribuita la versione 1. Eseguire il seguente ibmcloud project config-update per 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)"

Convalidare, approvare e distribuire le modifiche

Ora che example-corp-us-south è stato aggiornato per utilizzare la definizione per la prima versione della configurazione, è il momento di convalidare, approvare e distribuire le modifiche. Per farlo, è possibile utilizzare la console oppure eseguire i seguenti comandi CLI:

  1. Convalidare example-corp-us-south eseguendo il seguente ibmcloud project config-validate comando:

    ibmcloud project config-validate \
        --project-id <Example-Corp-infrastructure-project-id> \
        --id <example-corp-us-south-id>
    
  2. Approvare example-corp-us-south eseguendo il seguente ibmcloud project config-approve comando:

    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. Distribuire example-corp-us-south eseguendo il seguente ibmcloud project config-deploy comando:

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

Una volta completata l'installazione, example-corp-us-south viene ripristinato alla prima versione della configurazione distribuita dal progetto. Il vostro team può ora indagare sul bug e rilasciare un aggiornamento a Example Corp's infrastructure, se necessario.