Panoramica della terminologia di Service FabricService Fabric terminology overview

Azure Service Fabric è una piattaforma di sistemi distribuiti che semplifica la creazione di pacchetti, la distribuzione e la gestione di microservizi scalabili e affidabili.Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices. Questo articolo illustra in modo dettagliato la terminologia usata da Service Fabric, per agevolare la comprensione dei termini usati nella documentazione.This article details the terminology used by Service Fabric to understand the terms used in the documentation.

I concetti elencati in questa sezione vengono illustrati anche nei video di Microsoft Virtual Academy relativi a: Concetti fondamentali, Concetti di progettazione e Concetti di esecuzione.The concepts listed in this section are also discussed in the following Microsoft Virtual Academy videos: Core concepts, Design-time concepts, and Runtime concepts.

Concetti relativi all'infrastrutturaInfrastructure concepts

Cluster: un set di computer fisici o macchine virtuali connesse tramite rete in cui vengono distribuiti e gestiti i microservizi.Cluster: A network-connected set of virtual or physical machines into which your microservices are deployed and managed. I cluster possono supportare migliaia di macchine.Clusters can scale to thousands of machines.

Nodo: un computer o una macchina virtuale che fa parte di un cluster viene detto nodo.Node: A machine or VM that's part of a cluster is called a node. A ogni nodo viene assegnato un nome (stringa).Each node is assigned a node name (a string). I nodi hanno alcune caratteristiche, ad esempio le proprietà di selezione host.Nodes have characteristics, such as placement properties. Ogni computer o macchina virtuale ha un servizio Windows di avvio automatico, FabricHost.exe, che viene eseguito all'avvio e che a sua volta avvia due eseguibili: Fabric.exe e FabricGateway.exe.Each machine or VM has an auto-start Windows service, FabricHost.exe, that starts running upon boot and then starts two executables: Fabric.exe and FabricGateway.exe. Questi due eseguibili costituiscono il nodo.These two executables make up the node. Negli scenari di test è possibile ospitare più nodi in un singolo PC o una singola macchina virtuale eseguendo più istanze di Fabric.exe e FabricGateway.exe.For testing scenarios, you can host multiple nodes on a single machine or VM by running multiple instances of Fabric.exe and FabricGateway.exe.

Concetti relativi alle applicazioniApplication concepts

Tipo di applicazione: il nome e la versione assegnati a una raccolta di tipi di servizio.Application type: The name/version assigned to a collection of service types. Viene definito in un file ApplicationManifest.xml e incorporato in una directory del pacchetto dell'applicazione.It is defined in an ApplicationManifest.xml file and embedded in an application package directory. La directory viene quindi copiata nell'archivio immagini del cluster di Service Fabric.The directory is then copied to the Service Fabric cluster's image store. È quindi possibile creare un'applicazione denominata da questo tipo di applicazione all'interno del cluster.You can then create a named application from this application type within the cluster.

Per altre informazioni, leggere l'articolo Modellare un'applicazione.Read the Application model article for more information.

Pacchetto dell'applicazione: directory del disco contenente il file ApplicationManifest.xml del tipo di applicazione.Application package: A disk directory containing the application type's ApplicationManifest.xml file. Fa riferimento ai pacchetti del servizio per ogni servizio che costituisce il tipo di applicazione.References the service packages for each service type that makes up the application type. I file nella directory del pacchetto dell'applicazione vengono copiati nell'archivio immagini del cluster di Service Fabric.The files in the application package directory are copied to Service Fabric cluster's image store. Un pacchetto dell'applicazione per il tipo di applicazione posta elettronica può ad esempio contenere riferimenti a un pacchetto del servizio di accodamento, un pacchetto del servizio front-end e un pacchetto del servizio di database.For example, an application package for an email application type might contain references to a queue-service package, a frontend-service package, and a database-service package.

Applicazione denominata: dopo aver copiato un pacchetto dell'applicazione nell'archivio immagini, è possibile creare un'istanza dell'applicazione all'interno del cluster.Named application: After you copy an application package to the image store, you create an instance of the application within the cluster. Si crea un'istanza quando si specifica il tipo di applicazione del pacchetto dell'applicazione, usando il relativo nome o versione.You create an instance when you specify the application package's application type, by using its name or version. A ogni istanza del tipo di applicazione viene assegnato un URI (Uniform Resource Identifier) simile al seguente: "fabric:/MyNamedApp".Each application type instance is assigned a uniform resource identifier (URI) name that looks like: "fabric:/MyNamedApp". All'interno di un cluster è possibile creare più applicazioni denominate da un singolo tipo di applicazione.Within a cluster, you can create multiple named applications from a single application type. È anche possibile creare applicazioni denominate da tipi di applicazione diversi.You can also create named applications from different application types. L'amministrazione e il controllo delle versioni sono gestiti in modo indipendente per ogni applicazione.Each named application is managed and versioned independently.

Tipo di servizio: il nome e la versione assegnati ai pacchetti di codice, ai pacchetti di dati e ai pacchetti di configurazione di un servizio.Service type: The name/version assigned to a service's code packages, data packages, and configuration packages. Il tipo di servizio è definito nel file ServiceManifest.xml e incorporato in una directory del pacchetto del servizio.The service type is defined in the ServiceManifest.xml file and embedded in a service package directory. Il file ApplicationManifest.xml del pacchetto dell'applicazione fa quindi riferimento alla directory del pacchetto del servizio.The service package directory is then referenced by an application package's ApplicationManifest.xml file. All'interno del cluster, dopo aver creato un'applicazione denominata, è possibile creare un servizio denominato da uno dei tipi di servizio del tipo di applicazione.Within the cluster, after creating a named application, you can create a named service from one of the application type's service types. Il file ServiceManifest.xml del tipo di servizio descrive il servizio.The service type's ServiceManifest.xml file describes the service.

Per altre informazioni, leggere l'articolo Modellare un'applicazione.Read the Application model article for more information.

Sono disponibili due tipi di servizi:There are two types of services:

  • Senza stato: usare un servizio senza stato quando lo stato permanente del servizio è archiviato in un servizio di archiviazione esterno, ad esempio Archiviazione di Azure, database SQL di Azure o Azure Cosmos DB.Stateless: Use a stateless service when the service's persistent state is stored in an external storage service, such as Azure Storage, Azure SQL Database, or Azure Cosmos DB. Usare un servizio senza stato nei casi in cui il servizio non prevede alcun tipo di archivio permanente.Use a stateless service when the service has no persistent storage. Ad esempio, per un servizio di calcolo in cui i valori vengono passati al servizio, viene eseguito un calcolo che usa tali valori e viene restituito un risultato.For example, for a calculator service where values are passed to the service, a computation is performed that uses these values, and then a result is returned.
  • Con stato: usare un servizio con stato quando si vuole che Service Fabric gestisca lo stato del servizio tramite i modelli di programmazione Reliable Collections o Reliable Actors.Stateful: Use a stateful service when you want Service Fabric to manage your service's state via its Reliable Collections or Reliable Actors programming models. Quando si crea un servizio denominato, specificare il numero di partizioni su cui distribuire lo stato per ottenere scalabilità.When you create a named service, specify how many partitions you want to spread your state over for scalability. Specificare anche quante volte replicare lo stato tra i nodi, per ottenere affidabilità.Also specify how many times to replicate your state across nodes, for reliability. Ogni servizio denominato ha un'unica replica primaria e più repliche secondarie.Each named service has a single primary replica and multiple secondary replicas. Lo stato del servizio denominato si modifica quando si scrive nella replica primaria.You modify your named service's state when you write to the primary replica. Service Fabric replica quindi questo stato in tutte le repliche secondarie, per mantenere lo stato sincronizzato. Quando si verifica un errore nella replica primaria, Service Fabric lo rileva automaticamente e alza di livello una delle repliche secondarie rendendola così la replica primaria.Service Fabric then replicates this state to all the secondary replicas to keep your state in sync. Service Fabric automatically detects when a primary replica fails and promotes an existing secondary replica to a primary replica. Crea quindi una nuova replica secondaria.Service Fabric then creates a new secondary replica.

Le repliche o istanze fanno riferimento al codice (e allo stato per i servizi con stato) di un servizio distribuito e in esecuzione.Replicas or instances refer to code (and state for stateful services) of a service that's deployed and running. Vedere Repliche e istanze.See Replicas and instances.

Riconfigurazione fa riferimento al processo di qualsiasi modifica nel set di repliche di un servizio.Reconfiguration refers to the process of any change in the replica set of a service. Vedere Riconfigurazione.See Reconfiguration.

Pacchetto del servizio: directory del disco contenente il file ServiceManifest.xml del tipo di servizio.Service package: A disk directory containing the service type's ServiceManifest.xml file. Questo file fa riferimento al codice, ai dati statici e ai pacchetti di configurazione per il tipo di servizio.This file references the code, static data, and configuration packages for the service type. Il file ApplicationManifest.xml del tipo di applicazione fa riferimento ai file nella directory del pacchetto del servizio.The files in the service package directory are referenced by the application type's ApplicationManifest.xml file. Un pacchetto del servizio può ad esempio fare riferimento al codice, ai dati statici e ai pacchetti di configurazione che costituiscono un servizio di database.For example, a service package might refer to the code, static data, and configuration packages that make up a database service.

Servizio denominato: dopo aver creato un'applicazione denominata, è possibile creare un'istanza di uno dei relativi tipi di servizio all'interno del cluster.Named service: After you create a named application, you can create an instance of one of its service types within the cluster. Specificare il tipo di servizio usando i relativi nome e versione.You specify the service type by using its name/version. A ogni istanza del tipo di servizio viene assegnato un nome URI con un ambito definito dall'URI della relativa applicazione denominata.Each service type instance is assigned a URI name scoped under its named application's URI. Se ad esempio si crea un servizio denominato "MyDatabase" all'interno di un'applicazione denominata "MyNamedApp", l'URI corrispondente sarà simile al seguente: "fabric:/MyNamedApp/MyDatabase".For example, if you create a "MyDatabase" named service within a "MyNamedApp" named application, the URI looks like: "fabric:/MyNamedApp/MyDatabase". All'interno di un'applicazione denominata è possibile creare vari servizi denominati.Within a named application, you can create several named services. Ogni servizio denominato può avere uno schema di partizione e numeri di istanze o repliche specifici.Each named service can have its own partition scheme and instance or replica counts.

Pacchetto di codice: directory del disco contenente i file eseguibili del tipo di servizio, in genere file EXE/DLL.Code package: A disk directory containing the service type's executable files, typically EXE/DLL files. Il file ServiceManifest.xml del tipo di servizio fa riferimento ai file nella directory del pacchetto di codice.The files in the code package directory are referenced by the service type's ServiceManifest.xml file. Quando si crea un servizio denominato, il pacchetto di codice viene copiato nel nodo o nei nodi selezionati per l'esecuzione del servizio denominato.When you create a named service, the code package is copied to the node or nodes selected to run the named service. Viene quindi avviata l'esecuzione del codice.Then the code starts to run. Esistono due tipi di eseguibili di pacchetto di codice:There are two types of code package executables:

  • Eseguibili guest: eseguibili che vengono eseguiti così come sono nel sistema operativo (Windows o Linux) host.Guest executables: Executables that run as-is on the host operating system (Windows or Linux). Questi eseguibili non rimandano né fanno riferimento ad alcun file del runtime di Service Fabric e quindi non usano i modelli di programmazione di Service Fabric.These executables don't link to or reference any Service Fabric runtime files and therefore don't use any Service Fabric programming models. Questi file eseguibili non sono in grado di usare alcune funzionalità di Service Fabric, ad esempio il servizio Naming per l'individuazione di endpoint.These executables are unable to use some Service Fabric features, such as the naming service for endpoint discovery. I file guest eseguibili non possono segnalare le metriche di caricamento specifiche per ogni istanza del servizio.Guest executables can't report load metrics that are specific to each service instance.
  • Eseguibili host del servizio: eseguibili che usano i modelli di programmazione di Service Fabric tramite il collegamento ai file di runtime di Service Fabric, per abilitare le funzionalità di Service Fabric.Service host executables: Executables that use Service Fabric programming models by linking to Service Fabric runtime files, enabling Service Fabric features. Un'istanza di servizio denominato può ad esempio registrare gli endpoint con il servizio Naming di Service Fabric e anche segnalare le metriche di carico.For example, a named service instance can register endpoints with Service Fabric's Naming Service and can also report load metrics.

Pacchetto dati: directory del disco contenente file di dati di sola lettura statici, in genere file di foto, audio e video, del tipo di servizio.Data package: A disk directory that contains the service type's static, read-only data files, typically photo, sound, and video files. Il file ServiceManifest.xml del tipo di servizio fa riferimento ai file nella directory del pacchetto dati.The files in the data package directory are referenced by the service type's ServiceManifest.xml file. Quando si crea un servizio denominato, il pacchetto di dati viene copiato nel nodo o nei nodi selezionati per l'esecuzione del servizio denominato.When you create a named service, the data package is copied to the node or nodes selected to run the named service. Il codice avvia l'esecuzione e può quindi accedere ai file di dati.The code starts running and can now access the data files.

Pacchetto di configurazione: directory del disco contenente file di configurazione di sola lettura statici, in genere file di testo, del tipo di servizio.Configuration package: A disk directory that contains the service type's static, read-only configuration files, typically text files. Il file ServiceManifest.xml del tipo di servizio fa riferimento ai file nella directory del pacchetto di configurazione.The files in the configuration package directory are referenced by the service type's ServiceManifest.xml file. Quando si crea un servizio denominato, i file nel pacchetto di configurazione vengono copiati in uno o più nodi selezionati per l'esecuzione del servizio denominato.When you create a named service, the files in the configuration package are copied one or more nodes selected to run the named service. Viene quindi avviata l'esecuzione del codice, che può accedere ai file di configurazione.Then the code starts to run and can now access the configuration files.

Contenitori: per impostazione predefinita, Service Fabric distribuisce e attiva i servizi come processi.Containers: By default, Service Fabric deploys and activates services as processes. Service Fabric può anche distribuire servizi in immagini contenitore.Service Fabric can also deploy services in container images. I contenitori sono una tecnologia di virtualizzazione che virtualizza il sistema operativo sottostante rispetto alle applicazioni.Containers are a virtualization technology that virtualizes the underlying operating system from applications. Un'applicazione e i relativi runtime, dipendenze e librerie di sistema vengono eseguiti in un contenitore.An application and its runtime, dependencies, and system libraries run inside a container. Il contenitore ha accesso privato completo alla vista isolata dei costrutti del sistema operativo specifica del contenitore stesso.The container has full, private access to the container's own isolated view of the operating system constructs. Service Fabric supporta contenitori Docker in Linux e contenitori Windows Server.Service Fabric supports Docker containers on Linux and Windows Server containers. Per altre informazioni, vedere Service Fabric e contenitori.For more information, read Service Fabric and containers.

Schema di partizione: quando si crea un servizio denominato, si specifica uno schema di partizione.Partition scheme: When you create a named service, you specify a partition scheme. I servizi con una notevole quantità di stato suddividono i dati tra partizioni, distribuendo così lo stato tra i nodi del cluster.Services with substantial amounts of state split the data across partitions, which spreads the state across the cluster's nodes. Suddividendo i dati tra partizioni, è possibile ridimensionare lo stato del servizio denominato.By splitting the data across partitions, your named service's state can scale. All'interno di una partizione, i servizi denominati senza stato hanno istanze, mentre i servizi denominati con stato hanno repliche.Within a partition, stateless named services have instances, whereas stateful named services have replicas. In genere, i servizi denominati senza stato hanno una sola partizione, perché non hanno uno stato interno.Usually, stateless named services have only one partition, because they have no internal state. Le istanze della partizione garantiscono la disponibilità.The partition instances provide for availability. In caso di errore di un'istanza, le altre istanze continuano a funzionare normalmente e Service Fabric crea una nuova istanza.If one instance fails, other instances continue to operate normally, and then Service Fabric creates a new instance. I servizi denominati con stato gestiscono il proprio stato all'interno delle repliche e ogni partizione ha il proprio set di repliche, in modo che lo stato venga mantenuto sincronizzato. Se una replica presenta un errore, Service Fabric ne crea una nuova da quelle esistenti.Stateful named services maintain their state within replicas and each partition has its own replica set so the state is kept in sync. Should a replica fail, Service Fabric builds a new replica from the existing replicas.

Per altre informazioni, vedere Partizionare i servizi Reliable Services di Service Fabric .Read the Partition Service Fabric reliable services article for more information.

Servizi di sistemaSystem services

In ogni cluster vengono creati alcuni servizi di sistema che forniscono le funzionalità della piattaforma di Service Fabric.There are system services that are created in every cluster that provide the platform capabilities of Service Fabric.

Servizio Naming: ogni cluster di Service Fabric ha un servizio Naming che risolve i nomi dei servizi in una posizione nel cluster.Naming Service: Each Service Fabric cluster has a Naming Service, which resolves service names to a location in the cluster. L'utente gestisce i nomi e le proprietà dei servizi in modo analogo al servizio DNS (Domain Name Service) Internet per il cluster.You manage the service names and properties, like an internet Domain Name System (DNS) for the cluster. I client comunicano in modo sicuro con qualsiasi nodo del cluster usando il servizio Naming per risolvere il nome di un servizio e il suo percorso.Clients securely communicate with any node in the cluster by using the Naming Service to resolve a service name and its location. Le applicazioni si spostano nel cluster.Applications move within the cluster. Ciò può ad esempio essere dovuto a errori, bilanciamento delle risorse o ridimensionamento del cluster.For example, this can be due to failures, resource balancing, or the resizing of the cluster. È possibile sviluppare servizi e client in grado di risolvere il percorso di rete corrente.You can develop services and clients that resolve the current network location. I client ottengono l'indirizzo IP del computer effettivo e la porta su cui è in esecuzione.Clients obtain the actual machine IP address and port where it's currently running.

Per altre informazioni sulle API di comunicazione di client e servizi che funzionano con il servizio Naming, vedere l'articolo Comunicare con i servizi.Read Communicate with services for more information on the client and service communication APIs that work with the Naming Service.

Servizio archivio immagini: ogni cluster di Service Fabric ha un servizio archivio immagini in cui vengono conservati i pacchetti dell'applicazione distribuiti e con controllo delle versioni.Image Store service: Each Service Fabric cluster has an Image Store service where deployed, versioned application packages are kept. Copiare il contenuto di un pacchetto dell'applicazione nell'archivio immagini e quindi registrare il tipo dell'applicazione all'interno di quel pacchetto dell'applicazione.Copy an application package to the Image Store and then register the application type contained within that application package. Una volta effettuato il provisioning del tipo di applicazione, è possibile creare applicazioni denominate.After the application type is provisioned, you create a named application from it. È possibile annullare la registrazione di un tipo di applicazione dal servizio Image Store solo dopo aver eliminato tutte le relative applicazioni denominate.You can unregister an application type from the Image Store service after all its named applications have been deleted.

Per altre informazioni sul servizio Image Store leggere Informazioni sull'impostazione ImageStoreConnectionString.Read Understand the ImageStoreConnectionString setting for more information about the Image Store service.

Per altre informazioni sulla distribuzione di applicazioni nel servizio archivio immagini, vedere Distribuire un'applicazione.Read the Deploy an application article for more information on deploying applications to the Image Store service.

Servizio Gestione failover: ogni cluster di Service Fabric ha un servizio Gestione failover responsabile delle azioni seguenti:Failover Manager service: Each Service Fabric cluster has a Failover Manager service that is responsible for the following actions:

  • Eseguire funzioni correlate a disponibilità elevata e coerenza dei servizi.Performs functions related to high availability and consistency of services.
  • Orchestrare gli aggiornamenti di applicazioni e cluster.Orchestrates application and cluster upgrades.
  • Interagire con altri componenti del sistema.Interacts with other system components.

Modelli di programmazione predefinitiBuilt-in programming models

Sono disponibili modelli di programmazione di .NET Framework per creare servizi di Service Fabric:There are .NET Framework programming models available for you to build Service Fabric services:

Reliable Services: API che consente di creare servizi con e senza stato.Reliable Services: An API to build stateless and stateful services. I servizi con stato archiviano il proprio stato in Reliable Collections, ad esempio un dizionario o una coda.Stateful services store their state in Reliable Collections, such as a dictionary or a queue. È anche possibile collegare vari stack di comunicazione, ad esempio API Web e Windows Communication Foundation (WCF).You can also plug in various communication stacks, such as Web API and Windows Communication Foundation (WCF).

Reliable Actors: API che consente di creare oggetti con e senza stato tramite il modello di programmazione Actor virtuale.Reliable Actors: An API to build stateless and stateful objects through the virtual Actor programming model. Questo modello è utile in presenza di molte unità indipendenti di calcolo o stato.This model is useful when you have lots of independent units of computation or state. Questo modello usa un modello di threading basato su turni, quindi è consigliabile evitare codice che effettua chiamate ad altri attori o servizi, perché un singolo attore non può elaborare altre richieste in ingresso fino a quando tutte le relative richieste in uscita non sono state completate.This model uses a turn-based threading model, so it's best to avoid code that calls out to other actors or services because an individual actor can't process other incoming requests until all its outbound requests are finished.

Per altre informazioni, vedere Scegliere un modello di programmazione per un servizio.Read the Choose a programming model for your service article for more information.

Passaggi successiviNext steps

Per altre informazioni su Service Fabric, vedere:To learn more about Service Fabric: