Distribuzione del gruppo di istanze canary

Creare una pipeline di distribuzione utilizzando la strategia di release Canary per la distribuzione del gruppo di istanze.

Prerequisiti

I prerequisiti sono i seguenti:

  • Disporre di una pipeline di distribuzione, due ambienti del gruppo di istanze da distribuire in (canary e produzione) senza istanze e artifact comuni. Gli artifact devono trovarsi nel registro artifact.

    Gli artifact possono essere un file di configurazione della distribuzione o artifact generali. Il file di configurazione della distribuzione definisce i comandi e i passi per scaricare l'artifact del package di applicazioni dal Registro artifact specificato e posizionarlo nel file system dell'istanza di computazione di destinazione.

  • Configurare un load balancer e un listener nella console per l'instradamento del traffico. Puoi anche disporre di un load balancer e di un listener di test per convalidare la nuova versione dell'applicazione prima di spostare il traffico di produzione.
  • Il plugin Comando esecuzione istanza di computazione deve essere abilitato nell'istanza e il plugin deve essere in esecuzione. Per abilitare il plugin, seguire questa procedura:
    1. Nella console, aprire il menu di navigazione e fare clic su Computazione. In Calcolo fare clic su Istanze.
    2. Selezionare un'istanza dal gruppo di istanze in cui eseguire la distribuzione.
      Nota

      DevOps supporta solo le distribuzioni dei gruppi di istanze in Oracle Linux e CentOS.
    3. Fare clic sulla scheda Agente Oracle Cloud.
    4. Per il plugin Comando esecuzione istanza di computazione, attivare o disattivare l'opzione Plugin abilitato su Abilitato.

      Per rendere effettiva la modifica occorrono fino a 10 minuti.

      Attenzione

      La funzionalità che dipende dal plugin, ad esempio il monitoraggio, il ridimensionamento automatico, la distribuzione o la gestione del sistema operativo, non funziona quando il plugin è disabilitato.
      Attenzione

      Per distribuire le applicazioni utilizzando il plugin Comando esecuzione istanza di computazione, è necessario configurare e gestire in modo appropriato i criteri con privilegi minimi. Per ulteriori informazioni, vedere Esecuzione dei comandi in un'istanza.

      Per informazioni sulla gestione dei plugin, vedere Gestione dei plugin con l'agente Oracle Cloud. Per la risoluzione dei problemi, vedere Risoluzione dei problemi di Oracle Cloud Agent.

  • Disporre dell'autorizzazione per eseguire comandi sull'istanza. Consulta il criterio IAM (Identity and Access Management) richiesto

Per creare gruppi dinamici e criteri per le pipeline di distribuzione, vedere Criteri di pipeline di distribuzione. Per ulteriori dettagli, consulta DevOps Criteri IAM.

Per accedere a DevOps utilizzando la console di Oracle Cloud, l'API REST e l'interfaccia CLI, vedere Accesso a DevOps.

    1. Aprire il menu di navigazione e fare clic su Servizi per sviluppatori. In DevOps fare clic su Progetti.
    2. Selezionare un progetto e una pipeline di distribuzione.
    3. Per aggiungere una fase alla pipeline, fare clic sull'icona + e selezionare Aggiungi fase.
    4. Per il tipo di fase, selezionare Strategia canary, quindi fare clic su Avanti.
    5. Selezionare Gruppo di istanze per il tipo di distribuzione.
    6. Immettere un nome e una descrizione per lo stadio. L'aggiunta di una descrizione è facoltativa.
    7. Per Ambiente canary, selezionare un ambiente di gruppo di istanze esistente.
    8. Fare clic su Seleziona artifact, quindi selezionare gli artifact di configurazione della distribuzione del gruppo di istanze disponibili da distribuire.

      Il file di configurazione della distribuzione definisce gli artifact da scaricare nell'istanza e la posizione in cui devono essere copiati. Per ulteriori informazioni, vedere File di configurazione della distribuzione.

    9. (Facoltativo) Fare clic su Seleziona artifact per aggiungere altri artifact di cui viene eseguito il download nelle istanze di computazione durante la distribuzione.

      Questi artifact aggiuntivi non devono essere definiti in linea.

    10. Fare clic su Seleziona load balancer.
      1. Selezionare l'area e il compartimento del load balancer.
      2. Selezionare un load balancer dalla lista disponibile.

      Il load balancer sposta parte del traffico di produzione nell'ambiente canary durante la distribuzione. Per ulteriori informazioni, vedere Gestione del load balancer.

    11. Per aggiungere un listener al load balancer, fare clic su Seleziona listener.

      I listener controllano la presenza di traffico in entrata sull'indirizzo IP e sulla porta del listener del load balancer. Per ulteriori informazioni, vedere Gestione del listener.

    12. Immettere un valore per la porta backend.

      Porta delle istanze in cui è in esecuzione l'applicazione.

    13. (Facoltativo) Selezionare un load balancer di test, un listener e una porta backend per eseguire il test dell'applicazione prima di spostare il traffico di produzione.

      Ciò consente di evitare qualsiasi rischio di errore di distribuzione durante la produzione.

    14. Il criterio di rinnovo controlla la frequenza e il comportamento del rollout dell'istanza nell'ambiente di destinazione. Selezionare una delle opzioni seguenti.
      • Rinnovo per percentuale: inserire una percentuale compresa tra 1 e 100. Questo valore controlla la percentuale massima di istanze distribuite o non in esecuzione alla volta.
      • Rinnovo per conteggio: immettere il valore del conteggio. Questo valore controlla il numero massimo di istanze distribuite o non in esecuzione alla volta.
    15. (Facoltativo) In Ritardo tra batch, immettere una durata in secondi.
    16. (Facoltativo) Per aggiungere tag alla pipeline, fare clic su Mostra opzioni di applicazione tag. L'applicazione di tag è un sistema di metadati che consente di organizzare e tenere traccia delle risorse nella tenancy.

      Se si dispone delle autorizzazioni per creare una risorsa, si dispone anche delle autorizzazioni per aggiungervi tag in formato libero.

      Per aggiungere una tag definita, è necessario disporre delle autorizzazioni per utilizzare lo spazio di nomi tag.

      Per ulteriori informazioni, vedere Tag delle risorse.

    17. Fare clic su Successivo.
    18. Convalida l'esecuzione della distribuzione. Per la convalida, viene aggiunta una funzione personalizzata alla pipeline. Selezionare Esegui una logica personalizzata tramite una funzione e immettere i valori riportati di seguito.
      1. Immettere un nome e una descrizione per lo stadio. L'aggiunta di una descrizione è facoltativa.
      2. Per Ambiente, selezionare una funzione esistente da richiamare.

        Nel campo Nome funzione di sola lettura viene visualizzata la funzione richiamata nella pipeline.

      3. (Facoltativo) Per selezionare e aggiungere artifact allo stadio, fare clic su Seleziona artifact.

        Selezionare una risorsa artifact esistente dal progetto DevOps. L'artifact deve essere un tipo di file generico (universale). I parametri nell'artifact devono essere in formato JSON e possono avere segnaposto. Durante la configurazione della risorsa artifact DevOps, selezionare Consenti parametrizzazione. La selezione di questa casella di controllo garantisce che i segnaposto vengano sostituiti con il valore dell'argomento durante la distribuzione. Per ulteriori informazioni, vedere Configurazione di parametri.

        Di seguito è riportato un esempio del contenuto generico dell'artifact per il passaggio di due parametri definiti dall'utente e dei relativi valori.
        • Parametri: test_name, app_version
        • Valori: {"test_name":"verify_production", "app_version":"${app_version}"}
      4. In Modalità di esecuzione stadio, selezionare per eseguire l'esecuzione in modo asincrono o sincrono.

        Se si seleziona Esegui in modo asincrono, il servizio richiama la funzione ma non attende il completamento della funzione. Quando si seleziona Esegui in modo sincrono, il servizio richiama la funzione e attende il completamento della funzione.

      5. Selezionare per disabilitare o abilitare la convalida.

        Se la convalida è abilitata, il servizio verifica il valore restituito della funzione. Il valore restituito è un valore di stringa UTF-8, true o false. Se il valore restituito è true, lo stadio viene contrassegnato come Riuscito, altrimenti lo stadio viene contrassegnato come Non riuscito.

        Se la convalida è disabilitata, il servizio non verifica il valore restituito.

        La convalida viene eseguita solo se è stata selezionata l'opzione "Esegui in modo sincrono" per la modalità di esecuzione della fase.

      6. (Facoltativo) Per aggiungere tag alla pipeline, fare clic su Mostra opzioni di applicazione tag. L'applicazione di tag è un sistema di metadati che consente di organizzare e tenere traccia delle risorse nella tenancy.

        È possibile selezionare uno spazio di nomi tag o aggiungere un tag in formato libero. Immettere la chiave e il valore di tag corrispondenti. È possibile aggiungere più tag.

      Nota

      Se non si desidera convalidare l'esecuzione della distribuzione, selezionare Nessuno.
    19. Fare clic su Successivo.
    20. Immettere un nome e una descrizione facoltativa per la fase Maiusc traffico per spostare parte del traffico nell'ambiente canary.
    21. Immettere Limite rampa in percentuale per specificare il traffico massimo da spostare. Il valore deve essere compreso tra 1 e 25.

      Ad esempio, se il limite di rampa è 20, il 20% del traffico viene spostato nell'ambiente canarino.

    22. Fare clic su Successivo.
    23. Immettere un nome e una descrizione per la fase di approvazione manuale. L'aggiunta di una descrizione è facoltativa.
    24. Immettere il numero di approvatori e fare clic su Avanti.
    25. Immettere un nome e una descrizione per la fase Canary di produzione. L'aggiunta di una descrizione è facoltativa.
    26. Per l'ambiente di produzione, selezionare un ambiente di gruppo di istanze esistente utilizzato per distribuire l'applicazione convalidata nell'ambiente canary.
    27. Immettere lo spazio di nomi di produzione.
    28. Per eseguire automaticamente il rollback della distribuzione all'ultima versione riuscita in caso di errore della fase, selezionare la casella di controllo Routback automatico.
    29. Il criterio di rinnovo controlla la frequenza e il comportamento del rollout dell'istanza nell'ambiente di destinazione. Selezionare una delle opzioni seguenti.
      • Rinnovo per percentuale: inserire una percentuale compresa tra 1 e 100. Questo valore controlla la percentuale massima di istanze distribuite o non in esecuzione alla volta.
      • Rinnovo per conteggio: immettere il valore del conteggio. Questo valore controlla il numero massimo di istanze distribuite o non in esecuzione alla volta.
    30. (Facoltativo) In Ritardo tra batch, immettere una durata in secondi.
    31. (Facoltativo) Il criterio di errore definisce i criteri di errore per una fase. Può essere definito in base al numero di host di computazione con errori in un gruppo di istanze. Selezionare una delle opzioni seguenti.
      • Nessuna.
      • Errore per percentuale: inserire la percentuale tra 1 e 100. Questo valore definisce la percentuale di host di calcolo che non riescono dopo la quale lo stadio non riesce.
      • Errore per conteggio: immettere il valore del conteggio. Questo valore definisce il numero di host di calcolo che non riescono dopo il quale lo stadio non riesce.
    32. Per aggiungere lo stadio alla pipeline, fare clic su Aggiungi.

      Viene visualizzata una finestra modale che mostra lo stato delle varie configurazioni di fase che fanno parte della strategia di distribuzione del gruppo di istanze canary. Sono incluse le fasi di distribuzione canary del gruppo di istanze, spostamento del traffico, approvazione manuale e distribuzione in sequenza della produzione. Se la convalida non riesce, è possibile controllare il messaggio di errore specifico di ogni fase non riuscita ed eseguire un'azione correttiva.

      Se la convalida riesce, è possibile eseguire la pipeline di distribuzione o aggiungere altre fasi in sequenza o in parallelo alla pipeline, in base alle esigenze.

  • Per creare una fase canary del gruppo di istanze, eseguire il comando create-deploy-compute-instance-group-canary-stage:

    oci devops deploy-stage create-deploy-compute-instance-group-canary-stage

    Parametri obbligatori:

    • --compute-instance-group-environment-id
    • --deployment-spec-artifact-id
    • --rollout-policy
    • --pipeline-id
    • --production-load-balancer-config
    • --stage-predecessor-collection

    Per visualizzare la Guida per il comando:

    oci devops deploy-stage create-compute-instance-group-canary-stage -h

    Per creare una fase di spostamento del traffico canary del gruppo di istanze, eseguire il comando create-compute-instance-group-canary-traffic-shift-stage:

    oci devops deploy-stage create-compute-instance-group-canary-traffic-shift-stage

    Parametri obbligatori:

    • --compute-instance-group-canary-stage-id
    • --pipeline-id
    • --stage-predecessor-collection

    Per visualizzare la Guida per il comando:

    oci devops deploy-stage create-compute-instance-group-canary-traffic-shift-stage -h

    Per creare una fase di richiamo della funzione, eseguire il comando create-invoke-function-stage:

    oci devops deploy-stage create-invoke-function-stage

    Parametri obbligatori:

    • --function-environment-id
    • --is-async
    • --is-validation-enabled
    • --pipeline-id
    • --stage-predecessor-collection

    Per visualizzare la Guida per il comando:

    oci devops deploy-stage create-invoke-function-stage -h

    Per creare una fase di approvazione manuale, eseguire il comando create-manual-approval-stage:

    oci devops deploy-stage create-manual-approval-stage

    Parametri obbligatori:

    • --approval-policy
    • --pipeline-id
    • --stage-predecessor-collection

    Per visualizzare la Guida per il comando:

    oci devops deploy-stage create-manual-approval-stage -h

    Per ottenere tutti i comandi per deploy-stage:

    oci devops deploy-stage -h
  • Per creare una fase, utilizzare l'operazione CreateDeployStage. A seconda delle fasi che si desidera aggiungere alla pipeline, selezionare i valori riportati di seguito per il tipo di fase.

    • Fase di distribuzione canary del gruppo di istanze di computazione: COMPUTE_INSTANCE_GROUP_CANARY_DEPLOYMENT
    • Richiama fase funzione: INVOKE_FUNCTION
    • Fase di spostamento del traffico canary del gruppo di istanze di computazione: COMPUTE_INSTANCE_GROUP_CANARY_TRAFFIC_SHIFT
    • Fase di approvazione canary del gruppo di istanze di computazione: COMPUTE_INSTANCE_GROUP_CANARY_APPROVAL