Introduzione alla distribuzione e all'aggiornamento di applicazioni nel cluster locale

Azure Service Fabric SDK include un ambiente di sviluppo locale completo che può essere usato per iniziare rapidamente a distribuire e gestire applicazioni in un cluster locale. Questo articolo descrive come creare un cluster locale, distribuire un'applicazione esistente nel cluster e quindi aggiornare l'applicazione a una nuova versione usando Windows PowerShell.

Nota

Questo articolo presuppone che l' ambiente di sviluppo sia già stato configurato.

Creare un cluster locale

Un cluster di Service Fabric rappresenta un set di risorse hardware in cui è possibile distribuire le applicazioni. In genere un cluster è costituito da un minimo di 5 fino a diverse migliaia di macchine virtuali, tuttavia Service Fabric SDK include una configurazione cluster che può essere eseguita in una singola macchina virtuale.

È importante comprendere che il cluster locale di Service Fabric non è un emulatore o un simulatore. Esegue lo stesso codice della piattaforma eseguito nei cluster costituiti da più macchine virtuali. La differenza sta nel fatto che esegue in una sola macchina virtuale i processi della piattaforma che normalmente vengono eseguiti in cinque macchine virtuali.

L'SDK fornisce due modi per configurare un cluster locale: uno script di Windows PowerShell e l'app dell'area di notifica Local Cluster Manager. Per questa esercitazione si userà lo script di PowerShell.

Nota

Se è già stato creato un cluster locale con la distribuzione di un'applicazione da Visual Studio, è possibile ignorare questa sezione.

  1. Avviare una nuova finestra di PowerShell come amministratore.
  2. Eseguire lo script di installazione del cluster dalla cartella dell'SDK:

    & "$ENV:ProgramFiles\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1"
    

    La configurazione del cluster richiede alcuni istanti. Al termine, l'output visualizzato sarà simile al seguente:

    Output installazione del cluster

    A questo punto, è possibile provare a distribuire un'applicazione nel cluster.

Distribuire un'applicazione

Service Fabric SDK include un set avanzato di framework e strumenti di sviluppo per la creazione di applicazioni. Per informazioni su come creare applicazioni in Visual Studio, vedere Creare la prima applicazione di Service Fabric in Visual Studio.

In questa esercitazione si userà un'applicazione di esempio esistente, denominata WordCount, per concentrare l'attenzione sugli aspetti di gestione della piattaforma: distribuzione, monitoraggio e aggiornamento.

  1. Avviare una nuova finestra di PowerShell come amministratore.
  2. Importare il modulo PowerShell di Service Fabric SDK.

    Import-Module "$ENV:ProgramFiles\Microsoft SDKs\Service Fabric\Tools\PSModule\ServiceFabricSDK\ServiceFabricSDK.psm1"
    
  3. Creare una directory per archiviare l'applicazione scaricata e distribuita, ad esempio C:\ServiceFabric.

    mkdir c:\ServiceFabric\
    cd c:\ServiceFabric\
    
  4. Scaricare l'applicazione WordCount nel percorso creato. Nota: il browser Microsoft Edge salva il file con l'estensione zip . Modificare l'estensione di file in sfpkg.
  5. Connettersi al cluster locale:

    Connect-ServiceFabricCluster localhost:19000
    
  6. Creare una nuova applicazione con comando di distribuzione dell'SDK specificando il nome e il percorso del pacchetto dell'applicazione.

    Publish-NewServiceFabricApplication -ApplicationPackagePath c:\ServiceFabric\WordCountV1.sfpkg -ApplicationName "fabric:/WordCount"
    

    Se l'operazione viene eseguita correttamente, viene visualizzato l'output seguente:

    Distribuzione di un'applicazione nel cluster locale

  7. Per visualizzare l'applicazione in funzione, avviare il browser e passare a http://localhost:8081/wordcount/index.html. Dovrebbe essere visualizzato:

    Interfaccia utente dell'applicazione distribuita

    L'applicazione WordCount è semplice. Include il codice JavaScript lato client per generare "parole" casuali di cinque caratteri, che vengono quindi inoltrate all'applicazione tramite l'API Web ASP.NET. Un servizio con stato tiene traccia del numero di parole conteggiate, che vengono partizionate in base al primo carattere della parola. È possibile trovare il codice sorgente per l'app WordCount negli esempi introduttivi classici.

    L'applicazione distribuita contiene quattro partizioni. Le parole che iniziano con le lettere dalla A alla G vengono archiviate nella prima partizione, quelle che iniziano con le lettere dalla H alla N nella seconda partizione e così via.

Visualizzare i dettagli e lo stato dell'applicazione

Una volta distribuita l'applicazione, si osserveranno alcuni dettagli dell'app in PowerShell.

  1. Eseguire una query per individuare tutte le applicazioni nel cluster:

    Get-ServiceFabricApplication
    

    Partendo dal presupposto che è stata distribuita solo l'app WordCount, verrà visualizzato un output simile al seguente:

    Query per individuare tutte le applicazioni distribuite in PowerShell

  2. Passare al livello successivo eseguendo una query per trovare il set di servizi inclusi nell'applicazione WordCount.

    Get-ServiceFabricService -ApplicationName 'fabric:/WordCount'
    

    Elenco dei servizi per l'applicazione in PowerShell

    L'applicazione è costituita da due servizi: il front-end Web e il servizio con stato che gestisce le parole.

  3. Osservare infine l'elenco di partizioni per WordCountService:

    Get-ServiceFabricPartition 'fabric:/WordCount/WordCountService'
    

    Visualizzazione delle partizioni del servizio in PowerShell

    Il set di comandi usati, come tutti i comandi di PowerShell per Service Fabric, è disponibile per tutti i cluster a cui ci si connette, locali o remoti.

    Per un'interazione più visiva con il cluster, è possibile usare lo strumento basato sul Web Service Fabric Explorer, digitando l'indirizzo http://localhost:19080/Explorer nella barra degli indirizzi del browser.

    Visualizzazione dei dettagli dell'applicazione in Service Fabric Explorer

    Nota

    Per altre informazioni su Service Fabric Explorer, vedere Visualizzazione del cluster con Service Fabric Explorer.

Aggiornare un'applicazione

Con l'infrastruttura di servizi è possibile eseguire aggiornamenti senza tempi di inattività, grazie al monitoraggio dell'integrità dell'applicazione durante il rollout nel cluster. Eseguire un aggiornamento dell'applicazione WordCount.

La nuova versione dell'applicazione ora conta solo le parole che iniziano con una vocale. Durante il rollout dell'aggiornamento si noteranno due variazioni nel comportamento dell'applicazione. In primo luogo, l'incremento del conteggio dovrebbe rallentare, perché viene conteggiato un minor numero di parole. Quindi, poiché la prima partizione contiene due vocali (A ed E) e tutte le altre ne contengono una, a un certo punto il conteggio della prima inizierà a superare quello delle altre.

  1. Scaricare il pacchetto WordCount versione 2 e salvarlo nello stesso percorso in cui è stato scaricato il pacchetto versione 1.
  2. Tornare alla finestra di PowerShell e usare il comando di aggiornamento dell'SDK per registrare la nuova versione nel cluster. Iniziare quindi ad aggiornare l'applicazione fabric:/WordCount.

    Publish-UpgradedServiceFabricApplication -ApplicationPackagePath C:\ServiceFabric\WordCountV2.sfpkg -ApplicationName "fabric:/WordCount" -UpgradeParameters @{"FailureAction"="Rollback"; "UpgradeReplicaSetCheckTimeout"=1; "Monitored"=$true; "Force"=$true}
    

    Quando inizia l'aggiornamento, in PowerShell verrà visualizzato l'output seguente.

    Stato dell'aggiornamento in PowerShell

  3. Sarà più facile monitorare lo stato dell'aggiornamento da Service Fabric Explorer. Avviare una finestra del browser e passare all'indirizzo http://localhost:19080/Explorer. Espandere Applicazioni nell'albero a sinistra, quindi scegliere WordCount e infine fabric:/WordCount. Nella scheda Informazioni di base viene visualizzato lo stato dell'operazione di aggiornamento nei domini di aggiornamento del cluster.

    Stato dell'aggiornamento in Service Fabric Explorer

    Durante l'operazione di aggiornamento in ogni dominio vengono eseguiti controlli di integrità, per garantire che il comportamento dell'applicazione risulti corretto.

  4. Se si esegue di nuovo la query precedente per il set di servizi nell'applicazione fabric:/WordCount, si noterà che la versione di WordCountService è cambiata, mentre la versione di WordCountWebService è rimasta la stessa:

    Get-ServiceFabricService -ApplicationName 'fabric:/WordCount'
    

    Query per individuare i servizi dell'applicazione dopo l'aggiornamento

    Questo esempio illustra il modo in cui Service Fabric gestisce gli aggiornamenti dell'applicazione. Agisce solo sul set di servizi, o sui pacchetti di codice o di configurazione all'interno di tali servizi, che sono stati modificati, accelerando il processo di aggiornamento e aumentandone l'affidabilità.

  5. Infine, tornare di nuovo alla finestra del browser per osservare il comportamento della nuova versione dell'applicazione. Come previsto, il conteggio aumenta più lentamente e la prima partizione presenta un volume maggiore di quello delle altre.

    Visualizzazione della nuova versione dell'applicazione nel browser

+ Cleaning up

Prima di concludere, è importante ricordare che il cluster locale è reale. L'esecuzione delle applicazioni continua in background finché non vengono rimosse. A seconda della natura delle app, un'app in esecuzione può richiedere risorse significative del computer. Sono disponibili diverse opzioni per gestire le applicazioni e il cluster:

  1. Per rimuovere una singola applicazione con tutti i dati, eseguire il comando seguente:

    Unpublish-ServiceFabricApplication -ApplicationName "fabric:/WordCount"
    

    In alternativa, eliminare l'applicazione dal menu AZIONI in Service Fabric Explorer o dal menu di scelta rapida nella vista elenco sinistra dell'applicazione.

    Eliminare un'applicazione in Service Fabric Explorer

  2. Dopo aver eliminato l'applicazione dal cluster, annullare la registrazione delle versioni 1.0.0 e 2.0.0 del tipo di applicazione WordCount. L'operazione di eliminazione rimuove i pacchetti dell'applicazione, inclusi il codice e la configurazione, dall'archivio immagini del cluster.

    Remove-ServiceFabricApplicationType -ApplicationTypeName WordCount -ApplicationTypeVersion 2.0.0
    Remove-ServiceFabricApplicationType -ApplicationTypeName WordCount -ApplicationTypeVersion 1.0.0
    

    In alternativa, in Service Fabric Explorer scegliere Unprovision Type (Annulla provisioning del tipo) per l'applicazione.

  3. Per arrestare il cluster mantenendo i dati applicazione e le tracce, fare clic su Stop Local Cluster (Arresta cluster locale) nell'app dell'area di notifica.
  4. Per eliminare completamente il cluster, fare clic su Remove Local Cluster (Rimuovi cluster locale) nell'app dell'area di notifica. Questa opzione comporterà un'altra distribuzione lenta la prossima volta che si preme F5 in Visual Studio. Rimuovere il cluster locale solo se non si prevede di usarlo per un certo periodo o se è necessario recuperare risorse.

Modalità cluster a un nodo e a cinque nodi

Quando si sviluppano applicazioni, ci si ritroverà spesso a eseguire rapide iterazioni di scrittura di codice, debug, modifica del codice e debug. Per ottimizzare questo processo, il cluster locale può essere eseguito in due modalità: a un nodo o a cinque nodi. Entrambe le modalità cluster presentano vantaggi. La modalità cluster a cinque nodi consente di usare un vero cluster. È possibile testare gli scenari di failover e usare più istanze e repliche dei servizi. La modalità cluster a un nodo è ottimizzata per eseguire rapidamente la distribuzione e la registrazione dei servizi e convalidare quindi velocemente il codice usando il runtime di Service Fabric.

Né la modalità cluster a un nodo, né quella a cinque è un emulatore o un simulatore. Il cluster di sviluppo locale esegue lo stesso codice della piattaforma eseguito nei cluster costituiti da più macchine virtuali.

Avviso

Quando si cambia la modalità cluster, il cluster corrente viene rimosso dal sistema e viene creato un nuovo cluster. Quando si cambia la modalità cluster, i dati archiviati nel cluster vengono eliminati.

Per cambiare la modalità cluster con un cluster a un nodo, selezionare Switch Cluster Mode (Cambia modalità cluster) in Local Cluster Manager (Gestione cluster locale) di Service Fabric.

Cambiare la modalità cluster

In alternativa, modificare la modalità di cluster usando PowerShell:

  1. Avviare una nuova finestra di PowerShell come amministratore.
  2. Eseguire lo script di installazione del cluster dalla cartella dell'SDK:

    & "$ENV:ProgramFiles\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1" -CreateOneNodeCluster
    

    La configurazione del cluster richiede alcuni istanti. Al termine, l'output visualizzato sarà simile al seguente:

    Output installazione del cluster

Passaggi successivi