Service Fabric e contenitoriService Fabric and containers

Nota

La distribuzione di contenitori in un cluster di Service Fabric in Windows 10 o con Docker CE non è supportata.Deploying containers to a Service Fabric cluster in Windows 10 or with Docker CE isn't supported.

Nota

Service Fabric versione 6.1 offre il supporto in anteprima per Windows Server versione 1709.Service Fabric version 6.1 has preview support for Windows Server version 1709. Le reti aperte e il servizio DNS di Service Fabric non funzionano con Windows Server versione 1709.Open networking and Service Fabric DNS Service do not work with Windows Server version 1709.

IntroduzioneIntroduction

Azure Service Fabric è un agente di orchestrazione dei servizi in un cluster di computer, con anni di uso e ottimizzazione alle spalle nei servizi Microsoft con scalabilità estremamente elevata.Azure Service Fabric is an orchestrator of services across a cluster of machines, with years of usage and optimization in massive scale services at Microsoft. I servizi possono essere sviluppati in molti modi: dall'uso dei modelli di programmazione di Service Fabric alla distribuzione di eseguibili guest.Services can be developed in many ways, from using the Service Fabric programming models to deploying guest executables. Per impostazione predefinita, Service Fabric distribuisce e attiva i servizi come processi.By default, Service Fabric deploys and activates these services as processes. I processi offrono la massima velocità di attivazione e l'utilizzo della massima densità delle risorse in un cluster.Processes provide the fastest activation and highest density usage of the resources in a cluster. Service Fabric può anche distribuire servizi in immagini contenitore.Service Fabric can also deploy services in container images. Un aspetto importante è che è possibile combinare servizi in processi e servizi in contenitori nella stessa applicazione.Importantly, you can mix services in processes and services in containers in the same application.

Informazioni sui contenitoriWhat are containers?

I contenitori sono componenti incapsulati distribuibili singolarmente che vengono eseguiti come istanze isolate sullo stesso kernel per sfruttare i meccanismi di virtualizzazione offerti da un sistema operativo.Containers are encapsulated, individually deployable components that run as isolated instances on the same kernel to take advantage of virtualization that an operating system provides. Pertanto ogni applicazione, il relativo runtime e le relative dipendenze e librerie di sistema vengono eseguiti all'interno di un contenitore con accesso privato completo alla vista isolata specifica del contenitore dei costrutti del sistema operativo.Thus, each application and its runtime, dependencies, and system libraries run inside a container with full, private access to the container's own isolated view of operating system constructs. Insieme alla portabilità, questo grado di sicurezza e isolamento delle risorse è il principale vantaggio associato all'uso di contenitori con Service Fabric, che in alternativa esegue i servizi in processi.Along with portability, this degree of security and resource isolation is the main benefit for using containers with Service Fabric, which otherwise runs services in processes.

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. I contenitori offrono un ambiente immutabile per eseguire le applicazioni con un grado variabile di isolamento.Containers provide an immutable environment for applications to run with varying degrees of isolation. Vengono eseguiti direttamente sul kernel e hanno una vista isolata del file system e delle altre risorse.Containers run directly on top of the kernel and have an isolated view of the file system and other resources. Rispetto alle macchine virtuali, i contenitori offrono i vantaggi seguenti:Compared to virtual machines, containers have the following advantages:

  • Dimensioni ridotte: i contenitori usano uno spazio di archiviazione singolo e sovrappongono i diversi livelli di versioni e aggiornamenti per aumentare l'efficienza.Small: Containers use a single storage space and layer versions and updates to increase efficiency.
  • Velocità: i contenitori non devono avviare un intero sistema operativo, pertanto il loro avvio è molto più rapido e richiede in genere pochi secondi.Fast: Containers don’t have to boot an entire operating system, so they can start much faster, typically in seconds.
  • Portabilità: l'immagine di un'applicazione in contenitore può essere trasferita per essere eseguita nel cloud, in locale, all'interno di macchine virtuali o direttamente in computer fisici.Portability: A containerized application image can be ported to run in the cloud, on premises, inside virtual machines, or directly on physical machines.
  • Governance delle risorse: è possibile limitare le risorse fisiche utilizzabili da un contenitore nell'host.Resource governance: A container can limit the physical resources that it can consume on its host.

Tipi di contenitori e ambienti supportatiContainer types and supported environments

Service Fabric supporta i contenitori sia in Linux sia in Windows e in Windows supporta anche la modalità di isolamento di Hyper-V.Service Fabric supports containers on both Linux and Windows, and also supports Hyper-V isolation mode on the latter.

Nota

La distribuzione di contenitori a un cluster di Service Fabric in Windows 10 non è attualmente supportata.Deploying containers to a Service Fabric cluster on Windows 10 isn't currently supported.

Contenitori Docker in LinuxDocker containers on Linux

Docker fornisce le API di alto livello per creare e gestire contenitori su contenitori del kernel Linux.Docker provides high-level APIs to create and manage containers on top of Linux kernel containers. Docker Hub è un repository centrale per archiviare e recuperare immagini contenitore.Docker Hub is a central repository to store and retrieve container images. Per un'esercitazione, vedere Distribuire un contenitore Docker in Service Fabric.For a tutorial, see Deploy a Docker container to Service Fabric.

Contenitori Windows ServerWindows Server containers

Windows Server 2016 fornisce due diversi tipi di contenitori che si differenziano per il livello di isolamento offerto.Windows Server 2016 provides two different types of containers that differ in the level of provided isolation. I contenitori Windows Server e i contenitori Docker sono simili perché entrambi usufruiscono dell'isolamento dello spazio dei nomi e del file system, ma condividono il kernel con l'host in cui vengono eseguiti.Windows Server containers and Docker containers are similar because both have namespace and file system isolation but share the kernel with the host they are running on. In Linux questo isolamento viene tradizionalmente garantito con cgroups e namespaces e i contenitori Windows Server presentano un comportamento simile.On Linux, this isolation has traditionally been provided by cgroups and namespaces, and Windows Server containers behave similarly.

I contenitori Windows con il supporto Hyper offrono un grado superiore di isolamento e sicurezza perché i singoli contenitori non condividono il kernel del sistema operativo con altri contenitori o con l'host.Windows containers with Hyper- support provide more isolation and security because each container does not share the operating system kernel with other containers or with the host. Con questo livello superiore di isolamento di sicurezza, i contenitori abilitati Hyper-V sono destinati a scenari multi-tenant ostili.With this higher level of security isolation, Hyper-V enabled containers are targeted at hostile, multitenant scenarios. Per un'esercitazione, vedere Distribuire un contenitore Windows in Service Fabric.For a tutorial, see Deploy a Windows container to Service Fabric.

La figura seguente illustra i diversi tipi di livelli di virtualizzazione e isolamento disponibili nel sistema operativo.The following figure shows the different types of virtualization and isolation levels available in the operating system. Piattaforma Service FabricService Fabric platform

Scenari per l'uso di contenitoriScenarios for using containers

Ecco alcuni esempi tipici dei casi in cui un contenitore rappresenta una buona scelta:Here are typical examples where a container is a good choice:

  • Trasferimento da IIS: se sono disponibili app ASP.NET MVC che si vuole continuare a usare, anziché eseguirne la migrazione ad ASP.NET Core è possibile inserirle in un contenitore.IIS lift and shift: If you have existing ASP.NET MVC apps that you want to continue to use, put them in a container instead of migrating them to ASP.NET Core. Queste app ASP.NET MVC dipendono da IIS (Internet Information Services).These ASP.NET MVC apps depend on Internet Information Services (IIS). È possibile creare pacchetti delle applicazioni in immagini contenitore dall'immagine IIS creata in precedenza e distribuirle con Service Fabric.You can package these applications into container images from the precreated IIS image and deploy them with Service Fabric. Per informazioni sulla creazione di contenitori Windows, vedere Immagini contenitore in Windows Server.See Container Images on Windows Server for information about Windows containers.
  • Combinazione di contenitori e microservizi di Service Fabric: usare un'immagine contenitore esistente per parte dell'applicazione.Mix containers and Service Fabric microservices: Use an existing container image for part of your application. È ad esempio possibile usare il contenitore NGINX per il front-end Web dell'applicazione e i servizi con stato per le operazioni di calcolo back-end più intensive.For example, you might use the NGINX container for the web front end of your application and stateful services for the more intensive back-end computation.
  • Riduzione dell'impatto dei servizi che influiscono negativamente: è possibile usare la funzionalità di governance delle risorse dei contenitori per limitare le risorse usate da un servizio in un host.Reduce impact of "noisy neighbors" services: You can use the resource governance ability of containers to restrict the resources that a service uses on a host. Se sono presenti servizi che potrebbero usare un elevato numero di risorse e quindi influire sulle prestazioni degli altri (ad esempio, un'operazione come una query a esecuzione prolungata), può essere opportuno inserire tali servizi in contenitori con governance delle risorse.If services might consume many resources and affect the performance of others (such as a long-running, query-like operation), consider putting these services into containers that have resource governance.

Supporto di Service Fabric per i contenitoriService Fabric support for containers

Service Fabric supporta la distribuzione di contenitori Docker in Linux e di contenitori Windows Server in Windows Server 2016, nonché la modalità di isolamento di Hyper-V.Service Fabric supports the deployment of Docker containers on Linux and Windows Server containers on Windows Server 2016, along with support for Hyper-V isolation mode.

Nel modello applicativodi Service Fabric, un contenitore rappresenta un host applicazione in cui sono inserite più repliche dei servizi.In the Service Fabric application model, a container represents an application host in which multiple service replicas are placed. Service Fabric può eseguire qualsiasi contenitore e lo scenario è simile allo scenario degli eseguibili guest, in cui il pacchetto di un'applicazione esistente viene creato all'interno di un contenitore.Service Fabric can run any containers, and the scenario is similar to the guest executable scenario, where you package an existing application inside a container. Questo scenario è il caso d'uso comune per i contenitori. Gli esempi includono l'esecuzione di un'applicazione scritta in qualsiasi linguaggio o framework, ma non con i modelli di programmazione incorporati di Service Fabric.This scenario is the common use-case for containers, and examples include running an application written using any language or frameworks, but not using the built-in Service Fabric programming models.

È anche possibile eseguire i servizi Service Fabric all'interno dei contenitori.In addition, you can run Service Fabric services inside containers as well. Il supporto dell'esecuzione dei servizi di Service Fabric all'interno dei contenitori è attualmente limitato e verrà migliorato nelle versioni future.Support for running Service Fabric services inside containers is currently limited, and will be improved in upcoming releases.

Service Fabric offre diverse funzionalità relative ai contenitori che consentono di creare applicazioni costituite da microservizi inseriti in contenitori,Service Fabric has several container capabilities that help you build applications that are composed of microservices that are containerized. Service Fabric offre le funzionalità seguenti per i servizi nei contenitori:Service Fabric offers the following capabilities for containerized services:

  • Distribuzione e attivazione di immagini contenitoreContainer image deployment and activation.
  • Governance delle risorse, tra cui l'impostazione dei valori delle risorse per impostazione predefinita nei cluster di Azure.Resource governance including setting resource values by default on Azure clusters.
  • Autenticazione nel repository.Repository authentication.
  • Mapping tra porta del contenitore e porta dell'host.Container port to host port mapping.
  • Individuazione e comunicazione da contenitore a contenitore.Container-to-container discovery and communication.
  • Possibilità di configurare e impostare variabili di ambiente.Ability to configure and set environment variables.
  • Possibilità di impostare le credenziali di sicurezza nel contenitore.Ability to set security credentials on the container.
  • Scelta tra modalità di rete diverse per i contenitori.A choice of different networking modes for containers.

Passaggi successiviNext steps

In questo articolo sono stati illustrati i contenitori, la funzione di agente di orchestrazione dei contenitori svolta da Service Fabric e le funzionalità offerte da Service Fabric per supportare i contenitori.In this article, you learned about containers, that Service Fabric is a container orchestrator, and that Service Fabric has features that support containers. Come passaggio successivo verranno esaminati esempi delle singole funzionalità per mostrarne le modalità d'uso.As a next step, we will go over examples of each of the features to show you how to use them.

Creare la prima applicazione contenitore di Service Fabric in WindowsCreate your first Service Fabric container application on Windows

Creare la prima applicazione contenitore di Service Fabric in LinuxCreate your first Service Fabric container application on Linux

Altre informazioni sui contenitori WindowsLearn more about Windows Containers