Informazioni sulle differenze tra Servizi cloud e Service Fabric che è opportuno conoscere prima di procedere alla migrazione di applicazioni.Learn about the differences between Cloud Services and Service Fabric before migrating applications.

Microsoft Azure Service Fabric è la piattaforma di applicazioni cloud di nuova generazione per applicazioni distribuite con livelli di scalabilità e affidabilità elevati.Microsoft Azure Service Fabric is the next-generation cloud application platform for highly scalable, highly reliable distributed applications. Introduce molte nuove funzionalità per la creazione di pacchetti, la distribuzione, l'aggiornamento e la gestione di applicazioni cloud distribuite.It introduces many new features for packaging, deploying, upgrading, and managing distributed cloud applications.

Questa è una guida introduttiva alla migrazione di applicazioni da Servizi cloud a Service Fabric.This is an introductory guide to migrating applications from Cloud Services to Service Fabric. La guida è incentrata soprattutto sulle differenze a livello di architettura e progettazione tra Servizi cloud e Service Fabric.It focuses primarily on architectural and design differences between Cloud Services and Service Fabric.

Applicazioni e infrastrutturaApplications and infrastructure

Una differenza fondamentale tra Servizi cloud e Service Fabric è la relazione tra macchine virtuali, carichi di lavoro e applicazioni.A fundamental difference between Cloud Services and Service Fabric is the relationship between VMs, workloads, and applications. Per carico di lavoro in questo caso si intente il codice scritto dall'utente per eseguire un'attività specifica o fornire un servizio.A workload here is defined as the code you write to perform a specific task or provide a service.

  • Servizi cloud viene usato per la distribuzione di applicazioni come macchine virtuali.Cloud Services is about deploying applications as VMs. Il codice scritto dall'utente è strettamente accoppiato a un'istanza di macchina virtuale, ad esempio un ruolo di lavoro o Web.The code you write is tightly coupled to a VM instance, such as a Web or Worker Role. Per distribuire un carico di lavoro in Servizi Cloud, distribuire una o più istanze di VM che eseguono il carico di lavoro.To deploy a workload in Cloud Services is to deploy one or more VM instances that run the workload. Non essendoci una separazione tra applicazioni e VM, non esiste una definizione formale di applicazione.There is no separation of applications and VMs, and so there is no formal definition of an application. Un'applicazione può essere considerata come un set di istanze del ruolo di lavoro o Web all'interno di una distribuzione di Servizi cloud o come un'intera distribuzione di Servizi cloud.An application can be thought of as a set of Web or Worker Role instances within a Cloud Services deployment or as an entire Cloud Services deployment. In questo esempio un'applicazione viene illustrata come un set di istanze del ruolo.In this example, an application is shown as a set of role instances.

Applicazioni e topologia di Servizi cloud

  • Service Fabric viene usato per la distribuzione di applicazioni in macchine virtuali esistenti o nei computer che eseguono Service Fabric in Windows o Linux.Service Fabric is about deploying applications to existing VMs or machines running Service Fabric on Windows or Linux. I servizi scritti dall'utente sono completamente disaccoppiati dall'infrastruttura sottostante, che è astratta dalla piattaforma di applicazioni di Service Fabric, consentendo la distribuzione di un'applicazione in più ambienti.The services you write are completely decoupled from the underlying infrastructure, which is abstracted away by the Service Fabric application platform, so an application can be deployed to multiple environments. Un carico di lavoro in Service Fabric è detto "servizio" e uno o più servizi sono raggruppati in un'applicazione definita formalmente che viene eseguita sulla piattaforma di applicazioni di Service Fabric.A workload in Service Fabric is called a "service," and one or more services are grouped in a formally-defined application that runs on the Service Fabric application platform. Più applicazioni possono essere distribuite in un singolo cluster di Service Fabric.Multiple applications can be deployed to a single Service Fabric cluster.

Applicazioni e topologia di Service Fabric

Lo stesso Service Fabric è un livello della piattaforma di applicazioni eseguito in Windows o Linux, mentre Servizi cloud è un sistema per la distribuzione di macchine virtuali gestite di Azure con carichi di lavoro collegati.Service Fabric itself is an application platform layer that runs on Windows or Linux, whereas Cloud Services is a system for deploying Azure-managed VMs with workloads attached. Il modello di applicazione di Service Fabric offre numerosi vantaggi:The Service Fabric application model has a number of advantages:

  • Tempi di distribuzione rapidi.Fast deployment times. La creazione di istanze di macchina virtuale può richiedere tempi lunghi.Creating VM instances can be time consuming. In Service Fabric le macchine virtuali sono distribuite solo una volta per formare un cluster che ospita la piattaforma di applicazioni di Service Fabric.In Service Fabric, VMs are only deployed once to form a cluster that hosts the Service Fabric application platform. Da quel momento, i pacchetti di applicazioni possono essere distribuiti nel cluster molto rapidamente.From that point on, application packages can be deployed to the cluster very quickly.
  • Hosting ad alta densità.High-density hosting. In Servizi cloud una macchina virtuale con ruolo di lavoro ospita un carico di lavoro.In Cloud Services, a Worker Role VM hosts one workload. In Service Fabric le applicazioni sono separate dalle macchine virtuali che le eseguono, quindi è possibile distribuire un numero elevato di applicazioni in un numero limitato di macchine virtuali, con la possibilità di ridurre il costo complessivo per le distribuzioni estese.In Service Fabric, applications are separate from the VMs that run them, meaning you can deploy a large number of applications to a small number of VMs, which can lower overall cost for larger deployments.
  • La piattaforma di Service Fabric può essere eseguita ovunque sia disponibile un computer con Windows Server o Linux, sia in Azure che in locale.The Service Fabric platform can run anywhere that has Windows Server or Linux machines, whether it's Azure or on-premises. La piattaforma offre un livello di astrazione dall'infrastruttura sottostante, consentendo l'esecuzione dell'applicazione in ambienti diversi.The platform provides an abstraction layer over the underlying infrastructure so your application can run on different environments.
  • Gestione delle applicazioni distribuite.Distributed application management. Service Fabric è una piattaforma che ospita non solo le applicazioni distribuite, ma consente anche di gestire il relativo ciclo di vita indipendentemente dalla macchina virtuale che le ospita o dal ciclo di vita del computer.Service Fabric is a platform that not only hosts distributed applications, but also helps manage their lifecycle independently of the hosting VM or machine lifecycle.

Architettura dell'applicazioneApplication architecture

L'architettura di un'applicazione di Servizi cloud include in genere numerose dipendenze dei servizi esterni, ad esempio Bus di servizio, tabelle e archivio BLOB di Azure, SQL, Redis e altri, per gestire lo stato e i dati di un'applicazione e le comunicazioni tra ruoli di lavoro e Web in una distribuzione di Servizi cloud.The architecture of a Cloud Services application usually includes numerous external service dependencies, such as Service Bus, Azure Table and Blob Storage, SQL, Redis, and others to manage the state and data of an application and communication between Web and Worker Roles in a Cloud Services deployment. Un esempio di applicazione di Servizi cloud completa può avere un aspetto simile al seguente:An example of a complete Cloud Services application might look like this:

Architettura di Servizi cloud

Le applicazioni di Service Fabric possono anche scegliere di usare gli stessi servizi esterni in un'applicazione completa.Service Fabric applications can also choose to use the same external services in a complete application. Usando questo esempio di architettura di Servizi Cloud, il percorso di migrazione più semplice da Servizi cloud a Service Fabric consiste nel sostituire solo la distribuzione di Servizi cloud con un'applicazione di Service Fabric, conservando la stessa architettura complessiva.Using this example Cloud Services architecture, the simplest migration path from Cloud Services to Service Fabric is to replace only the Cloud Services deployment with a Service Fabric application, keeping the overall architecture the same. I ruoli di lavoro e Web possono essere applicati ai servizi senza stato di Service Fabric con modifiche minime al codice.The Web and Worker Roles can be ported to Service Fabric stateless services with minimal code changes.

Architettura di Service Fabric dopo una migrazione semplice

In questa fase il sistema continuerà a funzionare come prima.At this stage, the system should continue to work the same as before. Sfruttando le funzionalità con stato di Service Fabric, è possibile internalizzare gli archivi stati esterni come servizi con stato, se applicabile.Taking advantage of Service Fabric's stateful features, external state stores can be internalized as stateful services where applicable. Questo approccio è più complesso di una semplice migrazione di ruoli di lavoro e Web a servizi senza stato di Service Fabric, perché richiede la scrittura di servizi personalizzati che forniscono funzionalità equivalenti all'applicazione come avveniva in precedenza con i servizi esterni.This is more involved than a simple migration of Web and Worker Roles to Service Fabric stateless services, as it requires writing custom services that provide equivalent functionality to your application as the external services did before. I vantaggi di questa operazione includono:The benefits of doing so include:

  • Rimozione delle dipendenze esterneRemoving external dependencies
  • Unificazione dei modelli di distribuzione, gestione e aggiornamentoUnifying the deployment, management, and upgrade models.

Un'architettura di esempio risultante dall'internalizzazione di questi servizi può avere un aspetto simile al seguente:An example resulting architecture of internalizing these services could look like this:

Architettura di Service Fabric dopo una migrazione completa

Comunicazioni e flusso di lavoroCommunication and workflow

La maggior parte delle applicazioni di Servizi Cloud è costituita da più di un livello.Most Cloud Service applications consist of more than one tier. Analogamente, un'applicazione di Service Fabric è costituita da più di un servizio, in genere molti servizi.Similarly, a Service Fabric application consists of more than one service (typically many services). Due modelli di comunicazione comuni sono la comunicazione diretta e quella tramite una risorsa di archiviazione esterna permanente.Two common communication models are direct communication and via an external durable storage.

Comunicazione direttaDirect communication

Con la comunicazione diretta i livelli possono comunicare direttamente tramite l'endpoint esposto da ogni livello.With direct communication, tiers can communicate directly through endpoint exposed by each tier. In ambienti senza stati, ad esempio Servizi cloud, questo significa selezionare un'istanza di un ruolo VM, in modo casuale o con bilanciamento del carico round robin, e connettersi direttamente all'endpoint.In stateless environments such as Cloud Services, this means selecting an instance of a VM role, either randomly or round-robin to balance load, and connecting to its endpoint directly.

Comunicazione diretta di Servizi cloud

La comunicazione diretta è un modello di comunicazione comune in Service Fabric.Direct communication is a common communication model in Service Fabric. La differenza principale tra Service Fabric e Servizi cloud è che in Servizi cloud ci si connette a una macchina virtuale, mentre in Service Fabric ci si connette a un servizio.The key difference between Service Fabric and Cloud Services is that in Cloud Services you connect to a VM, whereas in Service Fabric you connect to a service. Questa è una distinzione importante per due motivi:This is an important distinction for a couple reasons:

  • I servizi di Service Fabric non sono associati alle macchine virtuali che li ospitano. I servizi possono spostarsi all'interno del cluster e, in effetti, è previsto che si spostino per vari motivi, ovvero per bilanciamento delle risorse, failover, aggiornamenti di applicazioni e infrastruttura e vincoli di bilanciamento di carico o selezione.Services in Service Fabric are not bound to the VMs that host them; services may move around in the cluster, and in fact, are expected to move around for various reasons: Resource balancing, failover, application and infrastructure upgrades, and placement or load constraints. Ciò significa che l'indirizzo di un'istanza del servizio può cambiare in qualsiasi momento.This means a service instance's address can change at any time.
  • Una macchina virtuale in Service Fabric può ospitare più servizi, ognuno con un endpoint univoco.A VM in Service Fabric can host multiple services, each with unique endpoints.

Service Fabric fornisce un meccanismo di individuazione del servizio, detto Naming Service, che può essere usato per risolvere gli indirizzi degli endpoint dei servizi.Service Fabric provides a service discovery mechanism, called the Naming Service, which can be used to resolve endpoint addresses of services.

Comunicazione diretta di Service Fabric

QueuesQueues

Un meccanismo di comunicazione comune tra i livelli in ambienti senza stati come Servizi cloud consiste nell'usare una coda di archiviazione esterna per archiviare in modo permanente le attività di lavoro da un livello a un altro.A common communication mechanism between tiers in stateless environments such as Cloud Services is to use an external storage queue to durably store work tasks from one tier to another. Uno scenario comune è un livello web che invia processi a una coda di Azure o un bus di servizio in cui le istanze del ruolo di lavoro possono rimuovere dalla coda ed elaborare i processi.A common scenario is a web tier that sends jobs to an Azure Queue or Service Bus where Worker Role instances can dequeue and process the jobs.

Comunicazione con coda di Servizi cloud

Lo stesso modello di comunicazione può essere usato in Service Fabric.The same communication model can be used in Service Fabric. Può essere utile durante la migrazione di un'applicazione di Servizi cloud esistente a Service Fabric.This can be useful when migrating an existing Cloud Services application to Service Fabric.

Comunicazione diretta di Service Fabric

Passaggi successiviNext Steps

Il percorso di migrazione più semplice da Servizi cloud a Service Fabric consiste nel sostituire solo la distribuzione di Servizi cloud con un'applicazione di Service Fabric, conservando approssimativamente la stessa l'architettura complessiva.The simplest migration path from Cloud Services to Service Fabric is to replace only the Cloud Services deployment with a Service Fabric application, keeping the overall architecture of your application roughly the same. L'articolo seguente fornisce una guida per convertire un ruolo di lavoro o Web in un servizio di Service Fabric senza stato.The following article provides a guide to help convert a Web or Worker Role to a Service Fabric stateless service.