Introduzione alla distribuzione e all'aggiornamento di applicazioni nel cluster localeGet started with deploying and upgrading applications on your local cluster

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.The Azure Service Fabric SDK includes a full local development environment that you can use to quickly get started with deploying and managing applications on a local cluster. 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.In this article, you create a local cluster, deploy an existing application to it, and then upgrade that application to a new version, all from Windows PowerShell.

Nota

Questo articolo presuppone che l' ambiente di sviluppo sia già stato configurato.This article assumes that you already set up your development environment.

Creare un cluster localeCreate a local cluster

Un cluster di Service Fabric rappresenta un set di risorse hardware in cui è possibile distribuire le applicazioni.A Service Fabric cluster represents a set of hardware resources that you can deploy applications to. In genere un cluster è costituito da un minimo di 5 fino a diverse migliaia di macchine virtuali,Typically, a cluster is made up of anywhere from five to many thousands of machines. tuttavia Service Fabric SDK include una configurazione cluster che può essere eseguita in una singola macchina virtuale.However, the Service Fabric SDK includes a cluster configuration that can run on a single machine.

È importante comprendere che il cluster locale di Service Fabric non è un emulatore o un simulatore.It is important to understand that the Service Fabric local cluster is not an emulator or simulator. Esegue lo stesso codice della piattaforma eseguito nei cluster costituiti da più macchine virtuali.It runs the same platform code that is found on multi-machine clusters. La differenza sta nel fatto che esegue in una sola macchina virtuale i processi della piattaforma che normalmente vengono eseguiti in cinque macchine virtuali.The only difference is that it runs the platform processes that are normally spread across five machines on one machine.

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.The SDK provides two ways to set up a local cluster: a Windows PowerShell script and the Local Cluster Manager system tray app. Per questa esercitazione si userà lo script di PowerShell.In this tutorial, we use the PowerShell script.

Nota

Se è già stato creato un cluster locale con la distribuzione di un'applicazione da Visual Studio, è possibile ignorare questa sezione.If you have already created a local cluster by deploying an application from Visual Studio, you can skip this section.

  1. Avviare una nuova finestra di PowerShell come amministratore.Launch a new PowerShell window as an administrator.
  2. Eseguire lo script di installazione del cluster dalla cartella dell'SDK:Run the cluster setup script from the SDK folder:

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

    La configurazione del cluster richiede alcuni istanti.Cluster setup takes a few moments. Al termine, l'output visualizzato sarà simile al seguente:After setup is finished, you should see output similar to:

    Output installazione del cluster

    A questo punto, è possibile provare a distribuire un'applicazione nel cluster.You are now ready to try deploying an application to your cluster.

Distribuire un'applicazioneDeploy an application

Service Fabric SDK include un set avanzato di framework e strumenti di sviluppo per la creazione di applicazioni.The Service Fabric SDK includes a rich set of frameworks and developer tooling for creating applications. Per informazioni su come creare applicazioni in Visual Studio, vedere Creare la prima applicazione di Service Fabric in Visual Studio.If you are interested in learning how to create applications in Visual Studio, see Create your first Service Fabric application 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.In this tutorial, you use an existing sample application (called WordCount) so that you can focus on the management aspects of the platform: deployment, monitoring, and upgrade.

  1. Avviare una nuova finestra di PowerShell come amministratore.Launch a new PowerShell window as an administrator.
  2. Importare il modulo PowerShell di Service Fabric SDK.Import the Service Fabric SDK PowerShell module.

    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.Create a directory to store the application that you download and deploy, such as C:\ServiceFabric.

    mkdir c:\ServiceFabric\
    cd c:\ServiceFabric\
    
  4. Scaricare l'applicazione WordCount nel percorso creato.Download the WordCount application to the location you created. Nota: il browser Microsoft Edge salva il file con l'estensione zip .Note: the Microsoft Edge browser saves the file with a .zip extension. Modificare l'estensione di file in sfpkg.Change the file extension to .sfpkg.
  5. Connettersi al cluster locale:Connect to the local cluster:

    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.Create a new application using the SDK's deployment command with a name and a path to the application package.

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

    Se l'operazione viene eseguita correttamente, viene visualizzato l'output seguente:If all goes well, you should see the following output:

    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.To see the application in action, launch the browser and navigate to http://localhost:8081/wordcount/index.html. Dovrebbe essere visualizzato:You should see:

    Interfaccia utente dell'applicazione distribuita

    L'applicazione WordCount è semplice.The WordCount application is simple. 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.It includes client-side JavaScript code to generate random five-character "words", which are then relayed to the application via ASP.NET Web API. Un servizio con stato tiene traccia del numero di parole conteggiate,A stateful service tracks the number of words counted. che vengono partizionate in base al primo carattere della parola.They are partitioned based on the first character of the word. È possibile trovare il codice sorgente per l'app WordCount negli esempi introduttivi classici.You can find the source code for the WordCount app in the classic getting started samples.

    L'applicazione distribuita contiene quattro partizioni.The application that we deployed contains four partitions. 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.So words beginning with A through G are stored in the first partition, words beginning with H through N are stored in the second partition, and so on.

Visualizzare i dettagli e lo stato dell'applicazioneView application details and status

Una volta distribuita l'applicazione, si osserveranno alcuni dettagli dell'app in PowerShell.Now that we have deployed the application, let's look at some of the app details in PowerShell.

  1. Eseguire una query per individuare tutte le applicazioni nel cluster:Query all deployed applications on the cluster:

    Get-ServiceFabricApplication
    

    Partendo dal presupposto che è stata distribuita solo l'app WordCount, verrà visualizzato un output simile al seguente:Assuming that you have only deployed the WordCount app, you see something similar to:

    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.Go to the next level by querying the set of services that are included in the WordCount application.

    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.The application is made up of two services, the web front end, and the stateful service that manages the words.

  3. Osservare infine l'elenco di partizioni per WordCountService:Finally, look at the list of partitions for 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.The set of commands that you used, like all Service Fabric PowerShell commands, are available for any cluster that you might connect to, local or remote.

    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.For a more visual way to interact with the cluster, you can use the web-based Service Fabric Explorer tool by navigating to http://localhost:19080/Explorer in the 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.To learn more about Service Fabric Explorer, see Visualizing your cluster with Service Fabric Explorer.

Aggiornare un'applicazioneUpgrade an application

Con l'infrastruttura di servizi è possibile eseguire aggiornamenti senza tempi di inattività, grazie al monitoraggio dell'integrità dell'applicazione durante il rollout nel cluster.Service Fabric provides no-downtime upgrades by monitoring the health of the application as it rolls out across the cluster. Eseguire un aggiornamento dell'applicazione WordCount.Perform an upgrade of the WordCount application.

La nuova versione dell'applicazione ora conta solo le parole che iniziano con una vocale.The new version of the application now counts only words that begin with a vowel. Durante il rollout dell'aggiornamento si noteranno due variazioni nel comportamento dell'applicazione.As the upgrade rolls out, we see two changes in the application's behavior. In primo luogo, l'incremento del conteggio dovrebbe rallentare, perché viene conteggiato un minor numero di parole.First, the rate at which the count grows should slow, since fewer words are being counted. 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.Second, since the first partition has two vowels (A and E) and all other partitions contain only one each, its count should eventually start to outpace the others.

  1. Scaricare il pacchetto WordCount versione 2 e salvarlo nello stesso percorso in cui è stato scaricato il pacchetto versione 1.Download the WordCount version 2 package to the same location where you downloaded the version 1 package.
  2. Tornare alla finestra di PowerShell e usare il comando di aggiornamento dell'SDK per registrare la nuova versione nel cluster.Return to your PowerShell window and use the SDK's upgrade command to register the new version in the cluster. Iniziare quindi ad aggiornare l'applicazione fabric:/WordCount.Then begin upgrading the fabric:/WordCount application.

    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.You should see the following output in PowerShell as the upgrade begins.

    Stato dell'aggiornamento in PowerShell

  3. Sarà più facile monitorare lo stato dell'aggiornamento da Service Fabric Explorer.While the upgrade is proceeding, you may find it easier to monitor its status from Service Fabric Explorer. Avviare una finestra del browser e passare all'indirizzo http://localhost:19080/Explorer.Launch a browser window and navigate to http://localhost:19080/Explorer. Espandere Applicazioni nell'albero a sinistra, quindi scegliere WordCount e infine fabric:/WordCount.Expand Applications in the tree on the left, then choose WordCount, and finally fabric:/WordCount. Nella scheda Informazioni di base viene visualizzato lo stato dell'operazione di aggiornamento nei domini di aggiornamento del cluster.In the essentials tab, you see the status of the upgrade as it proceeds through the cluster's upgrade domains.

    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.As the upgrade proceeds through each domain, health checks are performed to ensure that the application is behaving properly.

  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:If you rerun the earlier query for the set of services in the fabric:/WordCount application, notice that the WordCountService version changed but the WordCountWebService version did not:

    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.This example highlights how Service Fabric manages application upgrades. 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à.It touches only the set of services (or code/configuration packages within those services) that have changed, which makes the process of upgrading faster and more reliable.

  5. Infine, tornare di nuovo alla finestra del browser per osservare il comportamento della nuova versione dell'applicazione.Finally, return to the browser to observe the behavior of the new application version. Come previsto, il conteggio aumenta più lentamente e la prima partizione presenta un volume maggiore di quello delle altre.As expected, the count progresses more slowly, and the first partition ends up with slightly more of the volume.

    Visualizzazione della nuova versione dell'applicazione nel browser

+ Cleaning upCleaning up

Prima di concludere, è importante ricordare che il cluster locale è reale.Before wrapping up, it's important to remember that the local cluster is real. L'esecuzione delle applicazioni continua in background finché non vengono rimosse.Applications continue to run in the background until you remove them. A seconda della natura delle app, un'app in esecuzione può richiedere risorse significative del computer.Depending on the nature of your apps, a running app can take up significant resources on your machine. Sono disponibili diverse opzioni per gestire le applicazioni e il cluster:You have several options to manage applications and the cluster:

  1. Per rimuovere una singola applicazione con tutti i dati, eseguire il comando seguente:To remove an individual application and all it's data, run the following command:

    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.Or, delete the application from the Service Fabric Explorer ACTIONS menu or the context menu in the left-hand application list view.

    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.After deleting the application from the cluster, unregister versions 1.0.0 and 2.0.0 of the WordCount application type. L'operazione di eliminazione rimuove i pacchetti dell'applicazione, inclusi il codice e la configurazione, dall'archivio immagini del cluster.Deletion removes the application packages, including the code and configuration, from the cluster's image store.

    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.Or, in Service Fabric Explorer, choose Unprovision Type for the application.

  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.To shut down the cluster but keep the application data and traces, click Stop Local Cluster in the system tray app.
  4. Per eliminare completamente il cluster, fare clic su Remove Local Cluster (Rimuovi cluster locale) nell'app dell'area di notifica.To delete the cluster entirely, click Remove Local Cluster in the system tray app. Questa opzione comporterà un'altra distribuzione lenta la prossima volta che si preme F5 in Visual Studio.This option will result in another slow deployment the next time you press F5 in Visual Studio. Rimuovere il cluster locale solo se non si prevede di usarlo per un certo periodo o se è necessario recuperare risorse.Remove the local cluster only if you don't intend to use it for some time or if you need to reclaim resources.

Modalità cluster a un nodo e a cinque nodiOne-node and five-node cluster mode

Quando si sviluppano applicazioni, ci si ritroverà spesso a eseguire rapide iterazioni di scrittura di codice, debug, modifica del codice e debug.When developing applications, you often find yourself doing quick iterations of writing code, debugging, changing code, and debugging. Per ottimizzare questo processo, il cluster locale può essere eseguito in due modalità: a un nodo o a cinque nodi.To help optimize this process, the local cluster can run in two modes: one-node or five-node. Entrambe le modalità cluster presentano vantaggi.Both cluster modes have their benefits. La modalità cluster a cinque nodi consente di usare un vero cluster.Five-node cluster mode enables you to work with a real cluster. È possibile testare gli scenari di failover e usare più istanze e repliche dei servizi.You can test failover scenarios, work with more instances and replicas of your services. 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.One-node cluster mode is optimized to do quick deployment and registration of services, to help you quickly validate code using the Service Fabric runtime.

Né la modalità cluster a un nodo, né quella a cinque è un emulatore o un simulatore.Neither one-node cluster or five-node cluster modes are an emulator or simulator. Il cluster di sviluppo locale esegue lo stesso codice della piattaforma eseguito nei cluster costituiti da più macchine virtuali.The local development cluster runs the same platform code that is found on multi-machine clusters.

Avviso

Quando si cambia la modalità cluster, il cluster corrente viene rimosso dal sistema e viene creato un nuovo cluster.When you change the cluster mode, the current cluster is removed from your system and a new cluster is created. Quando si cambia la modalità cluster, i dati archiviati nel cluster vengono eliminati.The data stored in the cluster is deleted when you change cluster mode.

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.To change the mode to one-node cluster, select Switch Cluster Mode in the Service Fabric Local Cluster Manager.

Cambiare la modalità cluster

In alternativa, modificare la modalità di cluster usando PowerShell:Or, change the cluster mode using PowerShell:

  1. Avviare una nuova finestra di PowerShell come amministratore.Launch a new PowerShell window as an administrator.
  2. Eseguire lo script di installazione del cluster dalla cartella dell'SDK:Run the cluster setup script from the SDK folder:

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

    La configurazione del cluster richiede alcuni istanti.Cluster setup takes a few moments. Al termine, l'output visualizzato sarà simile al seguente:After setup is finished, you should see output similar to:

    Output installazione del cluster

Passaggi successiviNext steps