Raccomandazioni per l'integrazione continua

Si applica a questa raccomandazione della checklist di eccellenza operativa ben progettata: Power Platform

OE:04 Ottimizza i processi di sviluppo software e di garanzia della qualità seguendo pratiche comprovate nel settore per sviluppo e test. Per una designazione chiara dei ruoli, standardizza le pratiche tra componenti quali strumenti, controllo del codice sorgente, modelli di progettazione delle applicazioni, documentazione e guide di stile.

L'adozione dell'integrazione continua/distribuzione continua (CI/CD) può aumentare la complessità di sviluppo per gli sviluppatori cittadini. Tuttavia, un processo di sviluppo scalabile e automatizzato in grado di incorporare rapidamente nuove funzionalità e correzione di bug è fondamentale per un processo di sviluppo con fusione affidabile e sostenibile.

In qualità di sviluppatore, puoi apportare piccole modifiche al codice, eseguirne il push in un repository di codice e ottenere un feedback quasi istantaneo su qualità, copertura dei test e bug introdotti. Questo processo ti consente di lavorare più velocemente, con maggiore sicurezza e meno rischi. L'integrazione continua è una pratica in cui i sistemi di controllo del codice sorgente e le pipeline di distribuzione vengono integrati per fornire meccanismi automatizzati di compilazione, test e feedback ai team di sviluppo software.

Strategie di progettazione chiave

L'integrazione continua è una pratica di sviluppo software utilizzata dagli sviluppatori per integrare gli aggiornamenti software in un sistema di controllo del codice sorgente a cadenza regolare.

Il processo di integrazione continua inizia quando un tecnico crea una richiesta pull GitHub per segnalare al sistema CI che le modifiche al codice sono pronte per essere integrate. Idealmente, il processo di integrazione convalida il codice rispetto a diverse baseline e test. Fornisce quindi un feedback al tecnico richiedente sullo stato di questi test.

Se i controlli e i test della baseline danno esito positivo, il processo di integrazione produce e mette in scena le risorse che distribuiscono il software aggiornato. Queste risorse includono codice compilato e immagini del contenitore.

Per fornire software di alta qualità più rapidamente con l'integrazione continua:

  • Esegui test automatizzati sul codice per fornire il rilevamento tempestivo di modifiche che causano un'interruzione.
  • Esegui l'analisi del codice per garantire standard, qualità e configurazione del codice.
  • Esegui controlli di conformità e sicurezza per garantire che il software non includa vulnerabilità note.
  • Esegui test di accettazione o funzionali per garantire che il software funzioni come previsto.
  • Fornisci un feedback rapido sui problemi rilevati.
  • Ove applicabile, produci risorse o pacchetti distribuibili che includano il codice aggiornato.

Ambienti

L'impostazione e la configurazione degli ambienti sono fondamentali per una CI/CD sostenibile e affidabile. Gli ambienti Power Platform possono essere configurati per isolare le diverse fasi di sviluppo, test e distribuzione della soluzione. Il processo CI/CD muove i cambiamenti attraverso queste fasi. Stabilisci una strategia ambientale con principi guida per gli ambienti per sviluppatori.

Pipeline di integrazione continua

Per ottenere un'integrazione continua, utilizza strumenti per gestire, integrare e automatizzare il processo. Una pipeline di integrazione continua fornisce:

  • Una piattaforma per l'esecuzione di test automatizzati
  • Scansioni di conformità
  • Report
  • Tutti gli altri componenti che compongono il processo di integrazione continua

Nella maggior parte dei casi, il software della pipeline è collegato al controllo del codice sorgente, in modo che quando vengono create richieste pull o il software viene unito a un ramo specifico, venga eseguita la pipeline di integrazione continua. L'integrazione del controllo del codice sorgente offre inoltre l'opportunità di fornire feedback CI direttamente sulle richieste pull.

Molte soluzioni, come Azure Pipelines o GitHub Actions, forniscono le funzionalità delle pipeline di integrazione continua. Per ulteriori informazioni, consulta Crea CI/CD con Azure per Microsoft Power Platform.

Integrazione del controllo del codice sorgente

L'integrazione della pipeline di integrazione continua con il sistema di controllo del codice sorgente è fondamentale per consentire contributi di codice rapidi e self-service.

La pipeline CI viene eseguita su una richiesta pull appena creata. La pipeline include tutti i test, le valutazioni della sicurezza e altri controlli. I risultati dei test CI vengono visualizzati direttamente nella richiesta pull per consentire un feedback quasi in tempo reale sulla qualità.

Un'altra pratica diffusa è la creazione di piccoli report o badge che possono essere presentati nel controllo del codice sorgente per rendere visibili gli stati di compilazione correnti.

L'immagine seguente mostra l'integrazione tra GitHub e una pipeline Azure DevOps. In questo esempio, la creazione di una richiesta pull attiva la pipeline. Lo stato della pipeline viene visualizzato nella richiesta pull.

Schermata di un badge di stato di Azure DevOps in un repository GitHub.

Integrazione dei test

Un elemento chiave dell'integrazione continua è la creazione e il test continui del codice man mano che gli sviluppatori forniscono contributi di codice. Il test delle richieste pull mentre vengono create fornisce una verifica immediata che il commit non ha introdotto modifiche sostanziali. Il vantaggio è che i test nella pipeline di integrazione continua possono essere gli stessi test eseguiti durante lo sviluppo basato sui test.

Esempio di diagramma di integrazione continua.

Controlli di qualità per codice personalizzato

Quando includi codice personalizzato nelle tue soluzioni, aggiungi controlli di qualità del codice a una pipeline di convalida per garantire che venga assegnato codice personalizzato pulito al controllo del codice sorgente. Indipendentemente dal linguaggio di codifica e dai modelli di sintassi utilizzati, esistono diverse opzioni per mantenere la qualità del codice e aumentare la sicurezza e la governance.

Test non riusciti

I test non riusciti devono bloccare temporaneamente una distribuzione e portare a un'analisi più approfondita di ciò che è accaduto. I test non riusciti devono anche portare a un perfezionamento dei test o a un miglioramento del cambiamento che ha causato il fallimento dei test.

Facilitazione di Power Platform

Le pipeline mirano a democratizzare la gestione del ciclo di vita delle applicazioni (ALM) per i clienti Dynamics 365, introducendo nel servizio l'automazione ALM e le funzionalità di integrazione e distribuzione continua (CI/CD). Power Platform 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 compilate 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 Microsoft 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.

Passaggi successivi