Questo documento mostra agli operatori dei cluster e agli amministratori di piattaforma come di implementare le modifiche in più ambienti utilizzando Config Sync. Questo approccio consente di evitare errori che interessano tutti i tuoi ambienti contemporaneamente.
Config Sync ti consente di gestire singoli cluster, cluster multi-tenant e configurazioni Kubernetes multi-cluster utilizzando i file archiviati in un repository Git.
Le configurazioni possono rappresentare diverse cose, tra cui:
- Oggetti GKE standard, come NetworkPolicies di cloud computing, DaemonSets risorse o RoleBindings Google Cloud.
- alle risorse Google Cloud, Istanze di Compute Engine o Cloud SQL tramite Config Connector.
- Vincoli sulla configurazione stessa, tramite Policy Controller.
Config Sync è particolarmente adatto per eseguire il deployment di configurazioni, criteri e carichi di lavoro necessari per eseguire la piattaforma creata su Google Kubernetes Engine (GKE) Enterprise Edition, ad esempio agenti di sicurezza, agenti di monitoraggio e gestori dei certificati.
Sebbene sia possibile eseguire il deployment di applicazioni rivolte agli utenti Config Sync, non è consigliabile collegare la relativa release dal ciclo di vita al ciclo di rilascio dei carichi di lavoro amministrativi menzionati in precedenza. Ti consigliamo invece di utilizzare uno strumento dedicato all'applicazione come un deployment deployment continuo per consentire ai team delle applicazioni di gestire il programma di rilascio.
Config Sync è un prodotto efficace che può gestire di sicurezza, perciò sono necessarie delle misure cautelative per evitare errori con un impatto significativo. Questo descrive diversi metodi per creare dei sistemi di protezione. La prima sezione le implementazioni graduali, mentre la seconda sezione si concentra su test e convalide. La terza sezione mostra come monitorare i deployment.
Implementazione di implementazioni graduali con Config Sync
In un ambiente multi-cluster, una situazione comune per gli utenti di GKE Enterprise, non è consigliabile applicare una modifica di configurazione a tutti i cluster contemporaneamente. Un'implementazione graduale, cluster per cluster, è molto più sicura perché riduce l'impatto potenziale di qualsiasi errore.
Esistono diversi modi per implementare le implementazioni graduali con Config Sync:
- Utilizza i commit o i tag Git per applicare manualmente le modifiche che vuoi ai cluster.
- Utilizza i rami Git per applicare automaticamente le modifiche al momento dell'applicazione uniti. Puoi utilizzare rami diversi per gruppi diversi di cluster.
- Usa gli oggetti
ClusterSelector
eNamespaceSelector
per selezionare e applicare modifiche a sottogruppi di cluster o spazi dei nomi.
Tutti i metodi per l'implementazione graduale presentano vantaggi e svantaggi. La la seguente tabella mostra quali di questi metodi puoi utilizzare contemporaneamente:
Compatibilità | Commit o tag Git | Rami Git | Selettori di cluster | Selettori dello spazio dei nomi |
---|---|---|---|---|
Commit o tag Git | Non compatibile | Compatibile | Compatibile | |
Rami Git | Non compatibile | Compatibile | Compatibile | |
Selettori di cluster | Compatibile | Compatibile | Compatibile | |
Selettori dello spazio dei nomi | Compatibile | Compatibile | Compatibile |
Il seguente albero decisionale può aiutarti a decidere quando utilizzare uno dei metodi di implementazione.
Utilizzare commit o tag Git
Rispetto agli altri metodi di implementazione graduale, con commit o tag Git offre il massimo controllo ed è il più sicuro. Puoi utilizzare lo Pagina Config Sync nella console Google Cloud nella console per aggiornare più cluster contemporaneamente. Utilizza questo metodo se vuoi applicare le modifiche ai cluster una alla volta e controllare esattamente quando ciò accade.
Con questo metodo, devi "fissare" per ciascun cluster a una versione specifica (ovvero una
o un tag) del tuo repository. Questo metodo è simile all'utilizzo del commit Git come tag dell'immagine del container.
Implementa questo metodo specificando il commit, il tag o l'hash nel
spec.git.revision
campo della RootSync
o della RepoSync
risorsa personalizzata.
Se gestisci le risorse personalizzate RootSync
o RepoSync
con uno strumento come
Kustomize,
puoi ridurre la quantità di lavoro manuale richiesta per gli implementamenti. Con questo
strumento, devi solo modificare il parametro revision
in un punto e poi
applicare in modo selettivo la nuova risorsa personalizzata RootSync
o RepoSync
ai tuoi cluster nell'ordine e con la frequenza che preferisci.
Inoltre, puoi utilizzare la console Google Cloud per aggiornare contemporaneamente il parametro revision
per più cluster appartenenti allo stesso parco risorse. Tuttavia, se disponi di un sistema automatico per aggiornare le configurazioni, ti sconsigliamo di utilizzare la console Google Cloud per apportare modifiche alla configurazione.
Ad esempio, la seguente definizione di RootSync configura
Config Sync per utilizzare il tag 1.2.3
:
apiVersion: configsync.gke.io/v1
kind: RootSync
metadata:
name: root-sync
namespace: config-sync-system
spec:
sourceType: git
sourceFormat: unstructured
git:
repo: git@example.com:gke/config-sync.git
revision: 1.2.3
auth: ssh
Se applichi questa configurazione al cluster,
Config Sync utilizzerà il tag 1.2.3
di
Repository example.com:gke/config-sync.git
.
Per aggiornare un cluster, modifica il campo spec.git.revision
con il nuovo valore per il cluster. Questo ti consente di definire quali cluster aggiornare e quando. Se
devi annullare una modifica, ripristina il valore precedente del campo spec.git.revision
.
Il seguente diagramma illustra la procedura di implementazione di questo metodo. Per prima cosa, esegui il commit delle modifiche nel repository di Config Sync, aggiorni le definizioni di RootSync su tutti i cluster:
Consigliamo di eseguire queste operazioni:
- Utilizza ID commit Git anziché tag. Grazie al funzionamento di Git, hai la garanzia che non cambieranno mai. Ad esempio,
git push --force
non può cambiare il commit utilizzato da Config Sync. Questo approccio è utile per motivi di controllo e per tenere traccia del commit in uso nei log. Inoltre, a differenza dei tag, non c'è nessun passaggio aggiuntivo per eseguire il commit degli ID. - Se preferisci utilizzare i tag Git anziché gli ID commit Git, puoi proteggere i tuoi tag se utilizzi una soluzione Git che supporta la protezione.
- Se vuoi aggiornare più cluster contemporaneamente, puoi farlo nella console Google Cloud. Per aggiornare più cluster contemporaneamente, questi devono far parte uguale parco (ed essere nella stessa progetto).
Utilizzare i rami Git
Se vuoi che le modifiche vengano applicate ai cluster non appena vengono unite nel tuo repository Git, configura Config Sync in modo da utilizzare i branch Git anziché i commit o i tag. In questo metodo, crei più rami di lunga durata nel tuo repository Git e configuri Config Sync in cluster diversi per leggere la relativa configurazione da rami diversi.
Ad esempio, un pattern semplice ha due rami:
- Un ramo
staging
per i cluster non di produzione. - Un ramo
main
per i cluster di produzione.
Per i cluster non di produzione, crea l'oggetto RootSync
o RepoSync
con
Campo spec.git.branch
impostato su staging
. Per i cluster di produzione, crea
l'oggetto RootSync
o RepoSync
con il parametro spec.git.branch
impostato su
main
.
Ad esempio, la seguente definizione RootSync configura Config Sync per utilizzare il ramo main
:
apiVersion: configsync.gke.io/v1
kind: RootSync
metadata:
name: root-sync
namespace: config-sync-system
spec:
git:
repo: git@example.com:gke/config-sync.git
branch: main
auth: ssh
Il seguente diagramma illustra la procedura di implementazione di questo metodo:
Puoi adattare questo pattern a esigenze specifiche, utilizzando più di due branch o branch mappati a qualcosa di diverso dagli ambienti. Se devi eseguire il rollback di una modifica, utilizza il comando git revert
per creare un nuovo commit nello stesso ramo che ripristina le modifiche del commit precedente.
Consigliamo di eseguire queste operazioni:
- Quando hai a che fare con più cluster, utilizza almeno due branch Git per contribuire a distinguere i cluster di produzione da quelli non di produzione.
- La maggior parte delle soluzioni Git consente di utilizzare la funzionalità rami protetti per impedire eliminazioni o modifiche non esaminate di questi rami. Per ulteriori informazioni, consulta la documentazione per GitHub GitLab e Bitbucket.
Utilizzare gli oggetti ClusterSelector e NamespaceSelector
I rami Git sono un buon modo per eseguire l'implementazione graduale delle modifiche su più cluster che alla fine avranno tutti gli stessi criteri. Tuttavia, se
vuoi implementare una modifica solo in un sottoinsieme di cluster o di spazi dei nomi,
utilizza gli oggetti ClusterSelector
e NamespaceSelector
. Questi oggetti hanno un obiettivo simile: ti consentono di applicare oggetti solo a cluster o spazi dei nomi con etichette specifiche.
Ad esempio:
- Utilizzando gli oggetti
ClusterSelector
, puoi applicare criteri diversi ai cluster, a seconda del paese in cui si trovano, per vari di conformità. - Utilizzando gli oggetti
NamespaceSelector
, puoi applicare criteri diversi agli spazi dei nomi usati da un team interno e da un contraente esterno.
Gli oggetti ClusterSelector
e NamespaceSelector
ti consentono inoltre di implementare metodi di test e rilascio avanzati, ad esempio:
- Release Canary dei criteri, in cui viene implementato un nuovo criterio in un piccolo insieme di cluster e spazi dei nomi per un lungo periodo di tempo per studiarne l'impatto.
- Test A/B, in cui implementi versioni diverse dello stesso criterio in diversi cluster per studiare la differenza dell'impatto delle versioni dei criteri e poi scegliere la migliore da implementare ovunque.
Immagina ad esempio un'organizzazione con diversi cluster di produzione.
Il team della piattaforma ha già creato due categorie di cluster di produzione:
chiamati canary-prod
e prod
, utilizzando
Cluster
e ClusterSelector
oggetti (vedi
Utilizza ClusterSelector).
Il team della piattaforma vuole implementare un criterio con Policy Controller per applicare la presenza di un'etichetta del team agli spazi dei nomi al fine di identificare a quale team appartiene ogni spazio dei nomi. Ha già implementato una versione di questo criterio in modalità di simulazione e ora vuole applicarlo a un numero limitato di cluster.
Utilizzando gli oggetti ClusterSelector
, creano due diverse risorse K8sRequiredLabels
che vengono applicate a cluster diversi.
La risorsa
K8sRequiredLabels
viene applicata ai cluster di tipoprod
, con un parametroenforcementAction
impostato sudryrun
:apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sRequiredLabels metadata: name: ns-must-have-team annotations: configmanagement.gke.io/cluster-selector: prod Spec: enforcementAction: dryrun match: kinds: - apiGroups: [""] kinds: ["Namespace"] parameters: labels: - key: "team"
La risorsa
K8sRequiredLabels
viene applicata ai cluster di tipocanary-prod
, senza il parametroenforcementAction
, il che significa che il criterio viene effettivamente applicato:apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sRequiredLabels metadata: name: ns-must-have-team annotations: configmanagement.gke.io/cluster-selector: canary-prod spec: match: kinds: - apiGroups: [""] kinds: ["Namespace"] parameters: labels: - key: "team"
L'annotazione configmanagement.gke.io/cluster-selector
consente al team di applicare il criterio solo ai cluster di tipo canary-prod
, impedendo che eventuali effetti collaterali indesiderati si diffondano nell'intero parco produttivo. Per ulteriori informazioni sulla funzionalità di prova simulata di Policy Controller, consulta la sezione sulla creazione dei vincoli.
Consigliamo di eseguire queste operazioni:
- Usa gli oggetti
ClusterSelector
eNamespaceSelector
se necessario Applica una modifica alla configurazione solo a un sottoinsieme di cluster o spazi dei nomi a tempo indeterminato o per molto tempo. - Se implementi una modifica utilizzando i selettori, fai molta attenzione. Se utilizzi o commit Git, qualsiasi errore interessa un solo cluster alla volta, mediante l'implementazione di cluster per cluster. Ma se usi i rami Git, qualsiasi errore può influisce su tutti i cluster che utilizzano quel ramo. Se utilizzi i selettori, si verifica un errore possono interessare tutti i cluster contemporaneamente.
Implementazione di revisioni, test e convalide
Un vantaggio di Config Sync è che gestisce tutto in modo dichiarativo: risorse Kubernetes, risorse cloud e criteri. Ciò significa che i file in un sistema di gestione del controllo dei file sorgente rappresentano le risorse (file Git, nel caso di Config Sync). Questa caratteristica consente di implementare i flussi di lavoro di sviluppo che già utilizzi codice sorgente dell'applicazione: revisioni e test automatici.
Implementa le recensioni
Poiché Config Sync si basa su Git, puoi utilizzare la tua soluzione Git preferita per ospitare il repository Config Sync. La tua soluzione Git probabilmente dispone di una funzionalità di revisione del codice che puoi utilizzare per esaminare le modifiche apportate al repository Config Sync.
Le best practice per esaminare le modifiche al nel repository corrispondono a un codice normale revisione, come segue:
- Fai pratica sviluppo basato su trunk.
- Lavora in batch di piccole dimensioni.
- Assicurati che la revisione del codice venga eseguita in modo sincrono o almeno tempestivo.
- La persona che esamina e approva la modifica non deve essere la stessa che l'ha suggerita.
Data la sensibilità del codebase Config Sync, inoltre, se possibile, con la tua soluzione Git consigliamo di eseguire quanto segue: configurazioni:
- Proteggi i rami utilizzati direttamente dai cluster. Consulta le documentazione di GitHub GitLab e Bitbucket. GitLab ti consente inoltre proteggere i tag.
- Dopo aver protetto i rami, puoi perfezionare le approvazioni necessarie per unire una modifica:
- Su GitHub, attiva le revisioni obbligatorie.
- Per GitLab, utilizza Proprietari del codice per delegare le autorizzazioni di approvazione su base file o directory. Puoi utilizzare la modalità unire le approvazioni delle richieste per richiedere a persone diverse di team diversi di approvare una richiesta prima dell'unione.
- In Bitbucket, combina recensori predefiniti con controlli di unione predefiniti. Se vuoi, puoi utilizzare un plug-in Code Owners per Bitbucket Server disponibile su Atlassian Marketplace per controllare chi può approvare le modifiche per le sezioni del repository.
Utilizzando queste diverse funzionalità, puoi applicare le approvazioni per ogni richiesta di modifica al codice base. Ad esempio, puoi Assicurarsi che ogni modifica venga approvata almeno da un membro del team della piattaforma (chi gestisce il parco risorse di cluster) e da un membro del team di sicurezza (che è responsabile della definizione e dell'implementazione delle policy di sicurezza).
Ti consigliamo di procedere nel seguente modo:
- Applica le revisioni tra pari al tuo repository e proteggi i rami Git utilizzati dai tuoi cluster.
Implementa test automatici
Una best practice comune quando si lavora su una base di codice è implementare l'integrazione continua. Ciò significa che configuri i test automatici da eseguire quando viene richiesta una modifica creato o aggiornato. I test automatici possono rilevare molti errori prima che una revisione umana la richiesta di modifica. In questo modo, il ciclo di feedback per lo sviluppatore viene stretto. Puoi implementare la stessa idea, utilizzando gli stessi strumenti, per il repository Config Sync.
Ad esempio, un buon punto di partenza è eseguire
Comando nomos vet
automaticamente alle nuove modifiche. Questo comando convalida la sintassi del repository Config Sync. Puoi implementare
questo test utilizzando
Cloud Build
seguendo le
convalida delle configurazioni
durante il tutorial. Puoi integrare Cloud Build con le seguenti opzioni:
- Bitbucket, utilizzando trigger di build.
- GitHub, utilizzando l'app GitHub di Google Cloud Build. I trigger di build sono disponibili anche per GitHub, ma l'applicazione GitHub il metodo di integrazione preferito.
Come puoi vedere nel tutorial sulla convalida delle configurazioni, il test viene eseguito utilizzando un'immagine container. Puoi quindi implementare il test in qualsiasi soluzione di integrazione continua che esegue container, e non solo in Cloud Build.
Per rafforzare ulteriormente il ciclo di feedback, puoi chiedere agli utenti di eseguire il comando nomos
vet
Hook pre-commit di Git.
Un'avvertenza è che alcuni utenti potrebbero non avere accesso ai cluster Kubernetes
gestiti da Config Sync e potrebbero non essere eseguiti
per la convalida completa dalla workstation. Esegui nomos vet --clusters ""
per limitare la convalida ai controlli semantici e sintattici.
Ti consigliamo di procedere nel seguente modo:
- Implementare test in una pipeline di integrazione continua.
- Esegui almeno il comando
nomos vet
su tutte le modifiche suggerite.
Monitoraggio delle implementazioni
Anche se implementi tutti i sistemi di protezione coperti da questo documento, gli errori possono continuano a verificarsi. Di seguito sono riportati due tipi di errori comuni:
- Errori che non rappresentano un problema per Config Sync, ma impediscono agli utenti dei carichi di lavoro non funzionino correttamente, ad esempio una NetworkPolicy che impedisce la comunicazione tra componenti del carico di lavoro.
- Errori che impediscono a Config Sync di applicare le modifiche a un ad esempio un manifest Kubernetes non valido oppure un oggetto rifiutato un controller di ammissione. I metodi spiegati in precedenza dovrebbero rilevare la maggior parte di questi errori.
Rilevare gli errori descritti nel primo punto precedente è quasi impossibile a livello di Config Sync perché richiede la comprensione dello stato di ciascun carico di lavoro. Per questo motivo, è meglio rilevare questi errori tramite il sistema di monitoraggio esistente che ti avvisa quando un'applicazione non funziona correttamente.
Il rilevamento degli errori descritti nel secondo punto precedente, che dovrebbe essere raro se hai implementato tutti i guardrail, richiede una configurazione specifica. Per impostazione predefinita, Config Sync scrive gli errori nei propri log (che per impostazione predefinita troverai in Cloud Logging).
Gli errori vengono visualizzati anche nella
Pagina della console Google Cloud di Config Sync.
In genere, né i log né la console sono sufficienti per rilevare gli errori, perché probabilmente non li monitori sempre. Il modo più semplice per automatizzare gli errori
il rilevamento è l'esecuzione di nomos status
comando,
che indica se c'è un errore in un cluster.
Puoi anche configurare una soluzione più avanzata con avvisi automatici per gli errori. Config Sync espone le metriche Formato Prometheus. Per ulteriori informazioni, vedi il monitoraggio di Config Sync.
Dopo che le metriche di Config Sync sono disponibili
crea un avviso per ricevere una notifica quando la metrica gkeconfig_monitor_errors
è maggiore di 0. Per ulteriori informazioni, consulta la pagina relativa alla gestione dei criteri di avviso per il monitoraggio di Cloud o le regole di avviso per Prometheus.
Riepilogo dei meccanismi per implementazioni sicure con Config Sync
La seguente tabella riassume i vari meccanismi descritti in precedenza documento. Nessuno di questi meccanismi è esclusivo. Puoi scegliere di utilizzare alcuni solo per fare riferimento a tutte le pagine per scopi diversi.
Meccanismo | A cosa serve | Che cosa non è adatto | Caso d'uso di esempio |
---|---|---|---|
ID e tag dei commit Git | Usa ID o tag di commit Git specifici per controllare con precisione quale cluster a cui vengono applicate le modifiche. | Non utilizzare ID o tag di commit Git per differenze di lunga durata tra cluster. Utilizza i selettori di cluster. | Tutti i tuoi cluster sono configurati per applicare il Git 12345
eseguire il commit. Apporta una modifica con un nuovo commit, abcdef , che
che vuoi testare. Modifica la configurazione di un singolo cluster per utilizzare questo
nuovo commit per convalidare la modifica. |
Rami Git | Utilizza più rami Git quando vuoi implementare la stessa modifica in più ambienti, uno dopo l'altro. | Non utilizzare più rami Git per le differenze di lunga durata tra cluster. I rami divergono notevolmente e sarà difficile riunirli nuovamente. | Innanzitutto unisci la modifica nel ramo di gestione temporanea, dove verrà
rilevato dai cluster di gestione temporanea. Quindi unisci la modifica nel ramo principale, dove verrà rilevata dai cluster di produzione. |
Selettori di cluster e selettori dello spazio dei nomi | Utilizza i selettori per le differenze permanenti tra cluster e spazi dei nomi. | Non utilizzare i selettori per un'implementazione graduale in più ambienti. Se è opportuno testare una modifica prima nella gestione temporanea e poi eseguirne il deployment usare rami Git separati. | Se i team delle applicazioni hanno bisogno dell'accesso completo ai cluster
l'accesso di sola lettura ai cluster di produzione,
ClusterSelector oggetto per applicare i criteri RBAC corretti
solo ai cluster pertinenti. |
Revisioni tra pari | Utilizza le revisioni tra pari per assicurarti che i team competenti approvino le modifiche. | I revisori non rilevano tutti gli errori, in particolare elementi come gli errori di sintassi. | La tua organizzazione impone che il team di sicurezza debba esaminare le modifiche alla configurazione che interessano più sistemi. Chiedi a un membro del team di sicurezza di esaminarlo le modifiche. |
Test automatici nella pipeline di integrazione continua | Utilizza i test automatici per individuare gli errori nelle modifiche suggerite. | I test automatici non possono sostituire completamente un revisore. Utilizza entrambi. | L'esecuzione di un comando nomos vet su tutte le modifiche suggerite conferma che il repository è una configurazione Config Sync valida. |
Monitorare gli errori di sincronizzazione | Assicurati che Config Sync applichi effettivamente le modifiche a nei cluster. | Gli errori di sincronizzazione si verificano solo se Config Sync tenta di applicare un repository non valido o se il server API Kubernetes rifiuta alcuni degli oggetti. | Un utente aggira tutti i test e le revisioni e commette una modifica non valida al repository Config Sync. Questa modifica non può essere applicata ai tuoi cluster. Se monitori gli errori di sincronizzazione, riceverai un avviso in caso di errore. |
Esempio di strategia di implementazione
Questa sezione utilizza i concetti introdotti nel resto dell'articolo per aiutarti a creare una strategia di implementazione end-to-end in tutti i cluster della tua organizzazione. Questa strategia presuppone che tu abbia parchi risorse distinti per lo sviluppo, la gestione temporanea e la produzione (come mostrato nell'esempio di parco risorse 1 - Approccio 1).
In questo scenario, configurerai ogni cluster in modo che si sincronizzi con repository Git utilizzando un commit Git specifico. Il deployment di una modifica in un determinato parco è un processo in quattro passaggi:
- Aggiorna un singolo cluster ("canary") nel parco per utilizzare per primo il nuovo commit.
- Verificherai che tutto funzioni come previsto eseguendo dei test e il monitoraggio dell'implementazione.
- Aggiorna il resto dei cluster nel parco risorse.
- Verifichi di nuovo che tutto funzioni come previsto.
Per eseguire il deployment di una modifica in tutti i cluster, ripeti questo processo per ogni parco risorse. Tecnicamente, puoi applicare questo metodo a qualsiasi commit Git, da qualsiasi ramo. Tuttavia, ti consigliamo di adottare la seguente procedura per identificare i problemi all'inizio della procedura di revisione:
- Quando un utente apre una richiesta di modifica nel repository Git di Config Sync, esegui il deployment della modifica in uno dei cluster di sviluppo.
- Se la richiesta di modifica viene accettata e unita al ramo principale, esegui il deployment completo in tutti i parchi come descritto in precedenza.
Sebbene alcune modifiche possano avere come target solo un parco specifico, ti consigliamo di implementare tutte le modifiche su tutti i parchi. Questa strategia elimina il problema del monitoraggio del parco risorse che deve essere sincronizzato con un determinato commit. Presta particolare attenzione alle modifiche che hanno come target solo la produzione parco risorse perché non erano possibili test appropriati nei parchi risorse precedenti. Per Ciò significa attendere più a lungo che compaiano i problemi tra il deployment ai cluster canary e agli altri cluster.
In sintesi, un deployment end-to-end completo è il seguente:
- Qualcuno apre una richiesta di modifica.
- Vengono eseguiti test e convalide automatici e viene eseguita una revisione manuale.
- Attiva un job manualmente per eseguire il deployment della modifica nel cluster canary nel parco risorse di sviluppo. In questo cluster vengono eseguiti test end-to-end automatici.
- Se è tutto a posto, unisci la richiesta di modifica al ramo principale.
- L'unione attiva un job automatico per eseguire il deployment del nuovo commit della punta del ramo principale nel cluster canary nel parco risorse di sviluppo. Test end-to-end automatici vengono eseguiti in questo cluster (per rilevare potenziali incompatibilità tra richieste che sono state create e unite contemporaneamente).
- I job seguenti vengono eseguiti uno dopo l'altro (attivandoli manualmente oppure
dopo un periodo di tempo predefinito per consentire la generazione di report di regressione da parte degli utenti):
- Esegui il deployment in tutti i cluster del parco risorse di sviluppo.
- Esegui test e convalide nei cluster del parco risorse di sviluppo.
- Esegui il deployment nel cluster canary del parco risorse di staging.
- Esegui test e convalide nel cluster canary del parco risorse di gestione temporanea.
- Esegui il deployment su tutti i cluster del parco risorse di gestione temporanea.
- Esegui test e convalide nei cluster del parco risorse di gestione temporanea.
- Esegui il deployment nel cluster canary del parco risorse di produzione.
- Esegui test e convalide nel cluster canary del parco risorse di produzione.
- Esegui il deployment su tutti i cluster del parco risorse di produzione.
- Esegui test e convalide nei cluster del parco risorse di produzione.
Passaggi successivi
- Scopri di più sul monitoraggio di Config Sync.
- Informazioni parchi risorse.
- Scopri come convalida la tua app in base ai criteri aziendali in una pipeline di integrazione continua.