Raccomandazioni per la progettazione di una catena di approvvigionamento per lo sviluppo del carico di lavoro
Si applica a questa raccomandazione della checklist di eccellenza operativa ben progettata: Power Platform
OE:06 | Crea una catena di approvvigionamento per il carico di lavoro che promuova le modifiche proposte attraverso pipeline prevedibili e automatizzate. Le pipeline testano e promuovono tali cambiamenti nei diversi ambienti. Ottimizza un catena di approvvigionamento per rendere il tuo carico di lavoro affidabile, sicuro, conveniente ed efficiente. |
---|
Questa guida descrive le raccomandazioni per la progettazione di una catena di approvvigionamento per lo sviluppo del carico di lavoro basata su pipeline di integrazione continua e distribuzione continua (CI/CD). Nei carichi di lavoro cloud, una catena di approvvigionamento è una suite standardizzata di strumenti e processi utilizzati per determinare la modifica della configurazione e del carico di lavoro nei vari ambienti. Sviluppa una catena di approvvigionamento per assicurarti di disporre di un metodo di gestione del carico di lavoro prevedibile e standardizzato. Le pipeline CI/CD sono la manifestazione della catena di approvvigionamento, tuttavia devi disporre di un'unica catena di approvvigionamento. Potresti avere diverse pipeline che seguire eseguono gli stessi processi e utilizzano gli stessi strumenti.
Incorpora una catena di approvvigionamento per proteggere il carico di lavoro dai danni che possono verificarsi quando non gestisci correttamente le modifiche al carico di lavoro. Sii sempre consapevole dello stato del tuo carico di lavoro, in modo da non correre il rischio di sperimentare comportamenti imprevedibili. Questo rischio aumenta se, quando si presentano problemi, è necessario dedicare tempo prezioso a ripercorrere modifiche non contabilizzate. Per ridurre al minimo questi rischi, standardizza i processi e gli strumenti che definiscono la catena di approvvigionamento e assicurati che il team del carico di lavoro si impegni pienamente a utilizzarli.
Strategie di progettazione chiave
Le seguenti raccomandazioni possono aiutarti a definire i principi fondamentali della tua catena di approvvigionamento.
Apporta modifiche proposte al carico di lavoro attraverso processi e strumenti della catena di approvvigionamento. Applica criteri rigorosi di distribuzioni automatizzate basate su modelli. Questo metodo aiuta a garantire che la configurazione del carico di lavoro in tutti gli ambienti sia standardizzata, ben definita e rigorosamente controllata. Per gli ambienti in una catena di promozione del codice, non eseguire aggiornamenti utilizzando processi manuali o l'interazione umana. Incorpora tutte le modifiche all'ambiente tramite una pipeline seguendo le pratiche di distribuzione da te definite. Per agevolare l'applicazione di questi criteri, valuta la possibilità di limitare l'accesso alla sola lettura come impostazione predefinita e di utilizzare un gate di autorizzazioni all'accesso per consentire l'accesso in scrittura.
Un aspetto importante di questo principio è che tutte le modifiche sono modifiche proposte fino a quando non vengono implementate in produzione. Attraverso test automatizzati, come il test di integrazione e lo smoke test, consenti alla tua catena di approvvigionamento di rifiutare automaticamente le modifiche.
Utilizza un set di risorse di codice e artefatti in tutti gli ambienti e le pipeline. Un punto dolente comune per le organizzazioni è quando gli ambienti non di produzione sono diversi dagli ambienti di produzione. La creazione manuale di ambienti di produzione e non di produzione può comportare configurazioni non corrispondenti tra gli ambienti. Questa discrepanza rallenta i test e aumenta la probabilità che le modifiche possano danneggiare un sistema di produzione.
Rifletti la tua struttura organizzativa nella progettazione della catena di approvvigionamento e in quella delle pipeline. La tua organizzazione potrebbe essere suddivisa in team. Ogni team potrebbe gestire una parte della catena di approvvigionamento. Ad esempio, molte organizzazioni dispongono di team che gestiscono le impostazioni di sicurezza e conformità o le configurazioni dell'ambiente. Questi team sono separati dai team di sviluppo che gestiscono lo sviluppo, i test e le distribuzioni delle applicazioni. Esistono molti modi per organizzare i team coinvolti in una catena di approvvigionamento. La tua catena di fornitura si basa su tutti i team che lavorano insieme senza problemi. Assicurati che tutti i team seguano processi standard e utilizzino strumenti standard per rendere la catena di approvvigionamento il più efficiente possibile.
Se esternalizzi parti del ciclo di vita del carico di lavoro, il tuo catena di approvvigionamento potrebbe fare affidamento su fornitori terzi. Questi fornitori sono essenziali per il successo del tuo catena di approvvigionamento tanto quanto le risorse interne. Assicuratevi che tutti i team condividano reciprocamente i processi e gli strumenti da utilizzare.
Standardizza il tuo metodo di distribuzione. Parla con il proprietario del prodotto della quantità accettabile di tempo di inattività in produzione per il tuo carico di lavoro. A seconda di quanto tempo di inattività sia accettabile, se presente, puoi scegliere il metodo di distribuzione adatto alle tue esigenze. Idealmente, devi eseguire le distribuzioni durante una finestra di manutenzione per ridurre la complessità e i rischi.
Pianifica una strategia di test olistica. Uno dei principi fondamentali dell'affidabilità del sistema è il principio "shift left". Lo sviluppo e la distribuzione di un'applicazione è un processo rappresentato come una serie di passaggi che vanno da sinistra a destra. Non devi limitare i test alla fine del processo. Per quanto possibile, sposta i test all'inizio o a sinistra. Gli errori sono meno costosi da correggere quando vengono individuati in anticipo. Possono essere costosi o impossibili da risolvere in una fase successiva del ciclo di vita dell'applicazione.
Quando possibile, utilizza test automatizzati per garantire la coerenza. Includi i seguenti tipi di test nella progettazione della catena di approvvigionamento:
Test unitari: i test unitari vengono in genere eseguiti come parte di una routine di integrazione continua. Gli unit test devono essere estesi e rapidi. Idealmente devono coprire il 100% del codice. Applica gli unit test a tutte le risorse di codice, inclusi modelli e script.
Test di fumo: i test di fumo verificano che un carico di lavoro possa essere sottoposto a un test ambiente e che funzioni come previsto. Gli smoke test non verificano l'interoperabilità dei componenti. Gli smoke test verificano che la metodologia di distribuzione per l'infrastruttura e l'applicazione funzioni e che il sistema risponda come previsto al termine del processo.
Test di integrazione: i test di integrazione garantiscono che i componenti dell'applicazione funzionino individualmente e poi stabiliscono se i componenti possono interagire tra loro come dovrebbero. L'esecuzione di una suite di test di integrazione di grandi dimensioni può richiedere molto tempo. Ecco perché è meglio incorporare il principio shift-left ed eseguire i test nelle prime fasi del ciclo di vita dello sviluppo del software. Prenota i test di integrazione per gli scenari che non puoi testare con uno smoke test o uno unit test. Se necessario, puoi eseguire processi di test di lunga durata a intervalli regolari. Un intervallo regolare offre un buon compromesso e rileva i problemi di interoperabilità tra i componenti dell'applicazione entro e non oltre un giorno dalla loro introduzione. Alcuni scenari di test traggono vantaggio dalle esecuzioni manuali. Utilizza i test manuali quando è necessario introdurre elementi di interattività umana nei test.
Test di accettazione: a seconda del contesto, è possibile eseguire manualmente i test di accettazione. Può essere parzialmente o completamente automatizzato. Il test di accettazione determina se il sistema software soddisfa le specifiche dei requisiti. Lo scopo principale di questo test è valutare la conformità del sistema ai requisiti aziendali e determinare se il sistema soddisfa i criteri richiesti per la distribuzione agli utenti.
Implementa controlli di qualità durante tutto il processo di promozione del codice tramite test. Distribuisci il tuo codice in ambienti inferiori, come controllo qualità e test, e negli ambienti superiori, come staging e produzione. Man mano che la tua distribuzione supera i gate di qualità, assicurati che soddisfi i tuoi obiettivi di qualità prima che le modifiche passino alla produzione. I tuoi requisiti aziendali determinano quale sarà il focus dei tuoi gate di qualità. Considerare anche i principi fondamentali di Well-Architected: sicurezza, affidabilità ed efficienza delle prestazioni. Power Platform
Integra anche i flussi di lavoro di approvazione nei tuoi controlli di qualità. Definisci chiaramente e automatizza i flussi di lavoro di approvazione quando appropriato. Definisci criteri di accettazione della qualità nella tua automazione, in modo da poter attraversare i tuoi cancelli in modo efficiente e sicuro.
Facilitazione di Power Platform
Microsoft Power Platform Gli strumenti di compilazione per Azure DevOps possono essere utilizzati per automatizzare le comuni attività di compilazione e distribuzione relative alle app create su Power Platform.
Le azioni GitHub consentono agli sviluppatori di creare flussi di lavoro automatizzati per il ciclo di vita dello sviluppo software. Power Platform Con GitHub Actions per Microsoft Power Platform puoi creare flussi di lavoro nel tuo repository per creare, testare, creare pacchetti, rilasciare e distribuire app; eseguire l'automazione; e gestire bot e altri componenti basati su Power Platform.
ALM Accelerator è uno strumento open source costituito da un set di applicazioni, script e pipeline progettati per automatizzare il processo di integrazione continua/distribuzione continua.
Automatizza i test con Azure Pipelines.
Power Apps La Web API di controllo fornisce un meccanismo per eseguire controlli di analisi statica sulle personalizzazioni e le estensioni della Microsoft Dataverse piattaforma.
Microsoft Power Platform CLI (PAC CLI) è uno strumento da riga di comando che supporta l'importazione e l'esportazione di Power Platform soluzioni, nonché l'impacchettamento e la decompressione da Power Platform file sorgente delle soluzioni. PAC CLI è disponibile come strumento da riga di comando autonomo o come estensione per Visual Studio Code.
Puoi usare Terraform, Bicep e Azure Resource Manager per distribuzioni IaC (Infrastructure As Code) immutabili. A seconda delle tue esigenze e della familiarità del tuo team con gli strumenti, potresti utilizzare uno o più di questi strumenti per le distribuzioni e la gestione delle risorse.
Allineamento organizzativo
Cloud Adoption Framework fornisce indicazioni ai team centrali per fornire zone di destinazione del carico di lavoro. Le zone di atterraggio del carico di lavoro sono quelle in cui il catena di approvvigionamento personalizzato del carico di lavoro distribuisce le applicazioni.
Per ulteriori informazioni, vedere Che cos'è una zona di atterraggio di Azure? e i principi di progettazione della zona di atterraggio di Azure.