Automazione della gestione della soluzione
In questo modulo si è appreso come le soluzioni possano risultare estremamente utili per tenere traccia delle parti dell'app e spostarle manualmente da una posizione all'altra. Ora esaminiamo in dettaglio in che modo l'automazione può rendere la gestione delle app ancora più potente attraverso ciò che viene chiamato Application Lifecycle Management (ALM). ALM non riguarda solo la creazione dell'app; copre tutto, dalla definizione di regole (come i requisiti), allo sviluppo e al mantenimento del funzionamento regolare delle app stesse. Le soluzioni sono elementi chiave della strategia ALM, insieme ad altri strumenti utili quali Azure DevOps o GitHub.
In genere, un architetto di soluzioni che lavora sul progetto delineerà il piano ALM e un esperto in DevOps configurerà l'automazione. In qualità di membro del team, è necessario rimanere costantemente coinvolti nel processo usando lo strumento scelto per gestire le attività e tenere d'occhio l'app e i cambiamenti del flusso mediante le soluzioni. Una volta terminata questa parte, tocca all'automazione ALM. ALM avvia una serie di azioni che spostano automaticamente le modifiche dallo sviluppo al test e quindi alla produzione. Ogni passaggio potrebbe richiedere alcune approvazioni per assicurarsi che tutto proceda come previsto. Bisogna immaginare il ciclo di vita dell'applicazione come un ciclo infinito di sviluppo di app che include pianificazione, creazione, test, distribuzione, esecuzione, monitoraggio e apprendimento da ciò che viene fuori lungo il percorso.
Sebbene tutte le azioni possano essere eseguite manualmente, l'automazione ne garantisce l'esecuzione coerente. Consente inoltre che vengano eseguite, ad esempio, anche nel caso che l'utente designato a eseguirle manualmente sia assente per malattia. Strumenti incentrati su DevOps come Azure DevOps o GitHub forniscono le funzionalità di automazione, nonché di monitoraggio degli elementi di lavoro e di controllo del codice sorgente.
Controllo del codice sorgente e soluzioni
Il controllo del codice sorgente, disponibile in strumenti quali Azure DevOps e GitHub, è assimilabile a un registro delle versioni per tutte le parti del progetto. Si immagini di lavorare su una Power App e di apportare modifiche. Ogni volta che ciò avviene, è come creare se venisse creata una nuova versione del progetto. È anche possibile usare gli "elementi di lavoro" per annotare le modifiche apportate e queste note possono essere collegate alla versione. Ciò aiuta il team a tenere traccia delle date in cui sono state apportate le modifiche e permette di annullare eventuali modifiche che hanno causato problemi. Così, mentre il team è impegnato a creare una versione più recente di un'app, è ancora possibile usare la versione corrente.
Il controllo del codice sorgente è estremamente importante nell'Application Lifecycle Management (ALM) perché è la fonte di verità definitiva per il progetto. Anche se l'ambiente di sviluppo ha un arresto imprevisto, non è il caso di preoccuparsi. È possibile ricostruirlo usando le informazioni archiviate nel controllo del codice sorgente. In pratica, il controllo del codice sorgente rende gli ambienti di sviluppo sostituibili. Quando si invia del materiale al test o alla produzione, in realtà si sta inviando ciò che è nel controllo del codice sorgente, non solo qualcosa di casuale dallo spazio di sviluppo.
Ora, ecco il problema: quando si esporta una soluzione dal proprio ambiente, è come se si comprimessero tutti i componenti in un unico file di grandi dimensioni. Se si rende disponibile quel file al controllo del codice sorgente, l'unica informazione che si potrà ottenere è che qualcosa è cambiato, ma non sarà possibile sapere esattamente cosa è cambiato all'interno di ogni singola parte. Quindi, per affinché sia più utile, aggiungiamo un passaggio al processo di automazione. Questo passaggio prende la soluzione dallo spazio di sviluppo, la decomprime (come aprire una valigia piena) e crea file separati per ciascuna parte. Questi file separati vengono quindi inseriti nel controllo del codice sorgente. In questo modo sarà possibile tenere traccia in modo dettagliato di tutte le modifiche. In più, ciò permette di avere più ambienti di sviluppo che seguono tutti le modifiche nel controllo del codice sorgente, riducendo la possibilità che una modifica ne renda inefficace o dannosa un'altra.
Automazione con gli strumenti DevOps
L'automazione è importante perché apporta coerenza a quello che altrimenti sarebbe un processo manuale. Dopo la creazione, le automazioni possono essere eseguite su richiesta o in base a una pianificazione oppure a un evento di archiviazione. Sebbene siano disponibili numerosi strumenti per implementare l'automazione, sia Azure Pipelines sia GitHub Actions includono il supporto Microsoft integrato per le attività e le azioni di Power Platform.
Cosa è possibile automatizzare?
L'automazione può essere applicata a molte operazioni, dal momento che esegue semplicemente attività o azioni. Può essere considerata analoga ai flussi di Power Automate, ma è destinata più specificamente a essere usata con la gestione e le distribuzioni delle app. Di seguito sono riportate alcune delle automazioni comuni implementate nei progetti Power Platform:
Creazione di un nuovo ambiente di sviluppo e installazione delle soluzioni dal controllo del codice sorgente
Acquisizione delle modifiche dall'ambiente di sviluppo e aggiornamento del controllo del codice sorgente
Esecuzione di Verifica soluzione per individuare i problemi di qualità
Provisioning e de-provisioning degli ambienti
Esecuzione di test automatizzati, inclusi i test di Power Apps Test Studio
Creazione di soluzioni gestite dal controllo del codice sorgente per la distribuzione in ambienti downstream
Distribuzione in ambienti downstream come test e produzione
L'automazione viene adattata per ciascun requisito di progetto, ma in genere si distinguono una fase di avvio, una di creazione e una di rilascio dell'automazione.
Quando si lavora su un progetto che usa l'automazione, è necessario essere consapevoli dei processi complessivi in atto. La creazione dell'automazione, tuttavia, viene in genere eseguita da una risorsa incentrata su DevOps.
Power Platform Build Tools
Microsoft Power Platform Build Tools è come una cassetta degli attrezzi progettata per la gestione delle app su Microsoft Power Platform. Questi strumenti sono una serie di azioni utili che evitano di dover cercare strumenti speciali e scrivere script complicati per gestire diverse attività nel ciclo di vita dell'app. Possono essere usati singolarmente per eseguire attività specifiche, come spostare un'app in un nuovo ambiente, ma è anche possibile usarli insieme in sequenza per far sì che le cose accadano automaticamente.
Ora, a seconda che si stia usando Azure DevOps o GitHub Actions per automatizzare il lavoro, la terminologia potrebbe variare leggermente. In Azure DevOps chiamiamo queste azioni "attività", mentre in GitHub Actions le chiamiamo "azioni".
Di seguito sono riportate alcune delle operazioni più comuni:
Verifica di Power Platform: esegue l'analisi statica sulla soluzione e, se aggiunto all'automazione, consente di rilevare i problemi in anticipo.
Esporta soluzione: esporta una soluzione come non gestita, gestita o in entrambe le modalità da un ambiente.
Importa soluzione: importa una soluzione in un ambiente.
Decomprimi soluzione: suddivide un file di soluzione compresso in singoli file per ciascun componente per consentirne l'archiviazione nel controllo del codice sorgente.
Comprimi soluzione: comprime una soluzione rappresentata nel controllo del codice sorgente in un file solution.zip che può essere importato in un altro ambiente.
Imposta versione soluzione: consente di aggiornare il numero di versione nell'automazione per implementare una strategia coerente di controllo delle versioni.
Crea, elimina e copia ambienti: consente di automatizzare la gestione degli ambienti nell'ambito delle automazioni.
Perché preoccuparsi dell'automazione? L'automazione è un modo intelligente per assicurarsi che il processo di creazione delle app sia coerente e affidabile. Se il team sta ancora facendo tutto manualmente, è una buona idea esplorare alcune automazioni. Ciò non solo rende il lavoro più coerente, ma contribuisce anche a creare app migliori e a distribuirle con una qualità superiore.