Scopri come distribuire il codice e cosa accade in Cloud Manager quando lo fai.
Una volta configurata la pipeline di produzione, inclusi l’archivio e gli ambienti necessari, puoi distribuire il codice.
Da Cloud Manager, fai clic su Distribuzione per avviare il processo di distribuzione.
Viene visualizzata la schermata Esecuzione della pipeline. Fai clic su Genera per avviare il processo.
Il processo di compilazione avvia il processo di distribuzione del codice, inclusi i seguenti passaggi:
Puoi rivedere i passaggi da vari processi di distribuzione visualizzando i registri o verificando i risultati per i criteri di test.
In questa sezione sono descritte le diverse azioni che si verificano durante ogni passaggio della distribuzione. Consulta la sezione Dettagli del processo di distribuzione per informazioni tecniche su come il codice stesso viene distribuito dietro le quinte.
Il passaggio Distribuzione dello staging include le seguenti azioni:
Il passaggio del test dello staging include le azioni seguenti:
Test di sicurezza: questo passaggio valuta l’impatto sulla sicurezza del codice nell’ambiente AEM. Per informazioni dettagliate sulla procedura di test, consulta il documento Informazioni sui risultati dei test.
Il passaggio della Distribuzione di produzione, include le azioni seguenti:
Una volta completata la distribuzione, il codice si trova nel relativo ambiente di destinazione e puoi visualizzare i registri.
Per i seguenti passaggi è previsto un timeout in caso di attesa del feedback dell’utente:
Passaggio | Timeout |
---|---|
Test di qualità del codice | 14 giorni |
Test di sicurezza | 14 giorni |
Test delle prestazioni | 14 giorni |
Domanda di approvazione | 14 giorni |
Pianificazione della distribuzione nell’ambiente di produzione | 14 giorni |
Supporto CSE | 14 giorni |
Cloud Manager carica tutti i file target/*.zip prodotti dal processo di compilazione in un percorso di archiviazione. Questi artefatti vengono recuperati da questo percorso durante le fasi di distribuzione della pipeline.
Quando Cloud Manager viene implementato in topologie non di produzione, l’obiettivo è quello di completare la distribuzione il più rapidamente possibile e, pertanto, gli artefatti vengono distribuiti simultaneamente su tutti i nodi nel modo seguente:
Cloud Manager determina se ogni artefatto è un pacchetto AEM o dispatcher.
Cloud Manager rimuove tutti i dispatcher dal load balancer per isolare l’ambiente durante la distribuzione.
Questa funzione dovrebbe essere utilizzata principalmente dai clienti 1-1-1.
Ciascun artefatto AEM viene distribuito in ogni istanza di AEM tramite le API della Gestione pacchetti, con le dipendenze dei pacchetti che determinano l’ordine di distribuzione.
Tutti gli artefatti AEM vengono distribuiti sia all’autore che agli editori. Le modalità di esecuzione devono essere utilizzate quando sono necessarie configurazioni specifiche per il nodo. Per ulteriori informazioni su come le modalità di esecuzione consentono di regolare l’istanza di AEM per uno scopo specifico, fare riferimento a Eseguire la modalità sezione del documento Distribuzione su AEM as a Cloud Service.
L’artefatto del dispatcher viene distribuito a ciascun dispatcher nel modo seguente:
httpd
. I file immutabili non vengono sovrascritti. Eventuali modifiche apportate ai file immutabili nell’archivio Git verranno ignorate al momento della distribuzione. Questi file sono fondamentali per il framework del dispatcher di AMS e non possono essere modificati.Cloud Manager prevede che l’artefatto del dispatcher contenga l’intero set di file. Tutti i file di configurazione del dispatcher devono essere presenti nell’archivio Git. I file o le cartelle mancanti causeranno un errore di distribuzione.
In seguito alla corretta distribuzione di tutti i pacchetti AEM e dispatcher a tutti i nodi, i dispatcher vengono aggiunti nuovamente al load balancer e la distribuzione è completa.
è possibile ignorare le modifiche del load balancer nelle distribuzioni di sviluppo e staging, ad esempio per l’ambiente di sviluppo, scollegare e allegare i passaggi anche nelle pipeline non di produzione, mentre per l’ambiente di staging nella pipeline di produzione.
Il processo di distribuzione nelle topologie di produzione è leggermente diverso per ridurre al minimo l’impatto sui visitatori del sito AEM.
Le distribuzioni di produzione seguono generalmente gli stessi passaggi indicati in precedenza, ma in modo continuativo:
Questo processo continua fino a quando la distribuzione non raggiunge tutti gli editori e i dispatcher nella topologia.
In situazioni critiche, i clienti di Adobe Managed Services potrebbero dover distribuire modifiche al codice nei rispettivi ambienti di staging e produzione senza attendere l’esecuzione di un ciclo di test completo di Cloud Manager.
Per risolvere queste situazioni, la pipeline di produzione di Cloud Manager può essere eseguita in modalità emergenza. Quando si utilizza questa modalità, i passaggi del test di sicurezza e prestazioni non vengono eseguiti. Tutti gli altri passaggi, compresi eventuali passaggi di approvazione configurati, vengono eseguiti come nella normale modalità di esecuzione della pipeline.
La funzione di esecuzione di una pipeline in modalità emergenza viene attivata a livello di programma dal CSE (Customer Success Engineers).
Quando si avvia un’esecuzione della pipeline di produzione, se la funzione della modalità di esecuzione di emergenza della pipeline è stata attivata per il programma, è possibile avviare l’esecuzione in modalità normale o emergenza da una finestra di dialogo.
Quando si visualizza la pagina dei dettagli di esecuzione della pipeline per un’esecuzione in modalità emergenza, le breadcrumb nella parte superiore dello schermo mostrano un indicatore dell’esecuzione della pipeline in modalità emergenza.
L’esecuzione di una pipeline in modalità emergenza può essere eseguita anche tramite l’API di Cloud Manager o CLI. Per avviare un'esecuzione in modalità emergenza, invia una richiesta PUT
all’endpoint di esecuzione della pipeline con il parametro query ?pipelineExecutionMode=EMERGENCY
oppure, se utilizzi CLI:
$ aio cloudmanager:pipeline:create-execution PIPELINE_ID --emergency
Una nuova esecuzione del passaggio di distribuzione di produzione è disponibile per le esecuzioni in cui il passaggio di distribuzione di produzione è stato completato. Il tipo di completamento non è importante. La distribuzione potrebbe avere esito positivo (solo per i programmi AMS), essere annullata o non essere riuscita. Il caso di utilizzo principale è il caso in cui il passaggio di distribuzione della produzione non è riuscito per motivi transitori. La riesecuzione crea una nuova esecuzione utilizzando la stessa pipeline. Questa nuova esecuzione è composta da tre passaggi:
Il passaggio di compilazione può essere etichettato in modo diverso nell’interfaccia utente per rispecchiare la copia degli artefatti non la ricompilazione.
Per identificare se un’esecuzione è una riesecuzione, si può esaminare il campo trigger
. Il valore sarà RE_EXECUTE
.
Per attivare una riesecuzione, è necessario effettuare una richiesta PUT
al collegamento HAL http://ns.adobe.com/adobecloud/rel/pipeline/reExecute
sullo stato del passaggio di distribuzione di produzione. Se tale collegamento è presente, l’esecuzione può essere riavviata da quel passaggio. Se è assente, l’esecuzione non può essere riavviata da quel passaggio. Questo collegamento sarà sempre presente solo nel passaggio di distribuzione della produzione
{
"_links": {
"http://ns.adobe.com/adobecloud/rel/pipeline/logs": {
"href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/logs",
"templated": false
},
"http://ns.adobe.com/adobecloud/rel/pipeline/reExecute": {
"href": "/api/program/4/pipeline/1/execution?stepId=2983530",
"templated": false
},
"http://ns.adobe.com/adobecloud/rel/pipeline/metrics": {
"href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/metrics",
"templated": false
},
"self": {
"href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530",
"templated": false
}
},
"id": "6187842",
"stepId": "2983530",
"phaseId": "1575676",
"action": "deploy",
"environment": "weretail-global-b75-prod",
"environmentType": "prod",
"environmentId": "59254",
"startedAt": "2022-01-20T14:47:41.247+0000",
"finishedAt": "2022-01-20T15:06:19.885+0000",
"updatedAt": "2022-01-20T15:06:20.803+0000",
"details": {
},
"status": "FINISHED"
La sintassi del valore href
del collegamento HAL non è destinata ad essere utilizzata come punto di riferimento. Il valore effettivo deve sempre essere letto dal collegamento HAL e non generato.
L'invio di una richiesta PUT
a questo endpoint può causare una risposta 201
in caso di esito positivo e il corpo della risposta sarà la rappresentazione della nuova esecuzione. È simile all’avvio di un’esecuzione regolare tramite l’API.