Service Fabric et conteneursService Fabric and containers

PrésentationIntroduction

Azure Service Fabric est une plateforme de systèmes distribués qui facilite le packaging, le déploiement et la gestion de conteneurs et de microservices évolutifs et fiables.Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices and containers.

Service Fabric est l’orchestrateur de conteneurs de Microsoft qui permet de déployer des microservices sur un cluster de machines.Service Fabric is Microsoft's container orchestrator for deploying microservices across a cluster of machines. Service Fabric tire profit de l’expérience acquise au cours de ses années d’exécution de services à grande échelle, chez Microsoft.Service Fabric benefits from the lessons learned during its years running services at Microsoft at massive scale.

Les microservices peuvent être développés de nombreuses manières, par le biais des modèles de programmation de Service Fabric, ASP.NET Core, ou en déployant n’importe quel code de votre choix.Microservices can be developed in many ways from using the Service Fabric programming models, ASP.NET Core, to deploying any code of your choice. Si vous souhaitez simplement déployer et gérer des conteneurs, Service Fabric se révèle également un excellent choix.Or, if you just want to deploy and manage containers, Service Fabric is also a great choice.

Par défaut, Service Fabric déploie et active ces services en tant que processus.By default, Service Fabric deploys and activates these services as processes. Ces processus assurent l’activation la plus rapide et offrent la densité la plus élevée en matière de ressources dans un cluster.Processes provide the fastest activation and highest density usage of the resources in a cluster. Service Fabric peut également déployer des services dans les images de conteneur.Service Fabric can also deploy services in container images. Au sein de la même application, vous pouvez également combiner des services avec des processus, et des services avec des conteneurs.You can also mix services in processes, and services in containers, in the same application.

Pour vous familiariser rapidement et essayer les conteneurs sur Service Fabric, suivez un guide de démarrage rapide, un tutoriel ou un exemple pratique :To jump right in and try out containers on Service Fabric, try a quickstart, tutorial, or sample:

Démarrage rapide : Déployer une application de conteneur Linux sur Service FabricQuickstart: Deploy a Linux container application to Service Fabric
Démarrage rapide : Déployer une application de conteneur Windows sur Service FabricQuickstart: Deploy a Windows container application to Service Fabric
Mettre en conteneur une application .NETContainerize an existing .NET app
Exemples de conteneurs Service FabricService Fabric Container Samples

Les conteneursWhat are containers

Les conteneurs constituent la solution au problème de fiabilité de l’exécution des applications dans les environnements informatiques différents, en fournissant un environnement immuable dans lequel exécuter l’application.Containers solve the problem of running applications reliably in different computing environments by providing an immutable environment for the application to run in. Les conteneurs wrappent une application et toutes ses dépendances (telles que les bibliothèques et les fichiers de configuration) dans sa propre « zone » isolée qui contient tous les éléments nécessaires à l’exécution du logiciel à l’intérieur du conteneur.Containers wrap an application and all of its dependencies, such as libraries and configuration files, into its own isolated 'box' that contains everything needed to run the software inside the container. Chaque fois que le conteneur s’exécute, l’application qu’il renferme a toujours ce dont elle a besoin pour s’exécuter, telles que les versions appropriées de ses bibliothèques dépendantes, les fichiers de configuration et tout autre élément qui lui est utile pour son exécution.Wherever the container runs, the application inside it always has everything it needs to run such as the right versions of its dependent libraries, any configuration files, and anything else it needs to run.

Les conteneurs s’exécutent directement sur le noyau et disposent d’une vue isolée sur le système de fichiers et d’autres ressources.Containers run directly on top of the kernel and have an isolated view of the file system and other resources. Une application située dans un conteneur n’a aucune connaissance des autres applications ou processus se trouvant en dehors de son conteneur.An application in a container has no knowledge of any other applications or processes outside of its container. Chaque application, avec son runtime, ses dépendances et ses bibliothèques système, s’exécute dans un conteneur, en bénéficiant d’un accès privé complet à la propre vue isolée du conteneur sur le système d’exploitation.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 the operating system. Non seulement la fourniture de toutes les dépendances nécessaires à l’exécution de votre application dans différents environnements informatiques est facilitée, mais la sécurité et l’isolation des ressources présentent des avantages importants lors de l’utilisation de conteneurs avec Service Fabric qui, sinon, exécute les services dans un processus.In addition to making it easy to provide all of your application's dependencies it needs to run in different computing environments, security and resource isolation are important benefits of using containers with Service Fabric--which otherwise runs services in a process.

Par rapport aux machines virtuelles, les conteneurs présentent les avantages suivants :Compared to virtual machines, containers have the following advantages:

  • Petit : Conteneurs utilisent un espace de stockage unique et les versions de couche et les mises à jour pour une efficacité accrue.Small: Containers use a single storage space and layer versions and updates to increase efficiency.
  • Fast: Conteneurs n’êtes pas obligé de démarrer l’ensemble du système d’exploitation, ils peuvent démarrer beaucoup plus rapidement, généralement en quelques secondes.Fast: Containers don’t have to boot an entire operating system, so they can start much faster--typically in seconds.
  • Portabilité: Une image de l’application en conteneur permettre être transférée pour s’exécuter dans le cloud, en local, à l’intérieur de machines virtuelles, ou directement sur des machines physiques.Portability: A containerized application image can be ported to run in the cloud, on premises, inside virtual machines, or directly on physical machines.
  • Gouvernance des ressources: Un conteneur peut limiter les ressources physiques qui peut consommer sur son ordinateur hôte.Resource governance: A container can limit the physical resources that it can consume on its host.

Types de conteneurs et environnements pris en chargeContainer types and supported environments

Service Fabric prend en charge les conteneurs sur Linux et sur Windows ; le mode d’isolation Hyper-V est pris en charge sur Windows.Service Fabric supports containers on both Linux and Windows, and supports Hyper-V isolation mode on Windows.

Conteneurs Docker sur LinuxDocker containers on Linux

Docker fournit des API pour créer et gérer des conteneurs sur des conteneurs du noyau Linux.Docker provides APIs to create and manage containers on top of Linux kernel containers. Docker Hub fournit un dépôt central permettant de stocker et de récupérer des images conteneur.Docker Hub provides a central repository to store and retrieve container images. Pour suivre un tutoriel Linux, voir Créer votre première application conteneur Service Fabric sur Linux.For a Linux-based tutorial, see Create your first Service Fabric container application on Linux.

Conteneurs Windows ServerWindows Server containers

Windows Server 2016 fournit deux types de conteneurs, qui proposent des niveaux d’isolation différents.Windows Server 2016 provides two different types of containers that differ by level of isolation. Les conteneurs Windows Server sont similaires aux conteneurs Docker, en ce sens qu’ils offrent tous l’isolation des systèmes de fichiers et des espaces de noms, alors qu’ils partagent le noyau avec l’hôte sur lequel ils s’exécutent.Windows Server containers and Docker containers are similar because both have namespace and file system isolation, while sharing the kernel with the host they are running on. Sur Linux, cette isolation est généralement fournie via des espaces de noms et cgroups. Les conteneurs Windows Server se comportent de la même manière.On Linux, this isolation has traditionally been provided by cgroups and namespaces, and Windows Server containers behave similarly.

Les conteneurs Windows avec la prise en charge Hyper-V présentent un niveau d’isolation et de sécurité plus élevé, car aucun d’entre eux ne partage le noyau du système d’exploitation avec les autres conteneurs, ou avec l’hôte.Windows containers with Hyper-V support provide more isolation and security because no container shares the operating system kernel with any other container, or with the host. Avec ce niveau élevé d’isolation en matière de sécurité, les conteneurs compatibles Hyper-V sont destinés à des scénarios multilocataires, potentiellement hostiles.With this higher level of security isolation, Hyper-V enabled containers are targeted at potentially hostile, multi-tenant scenarios. Pour suivre un tutoriel Windows, voir Créer votre première application conteneur Service Fabric sur Windows.For a Windows-based tutorial, see Create your first Service Fabric container application on Windows.

La figure suivante illustre les différents types de virtualisation et niveaux d’isolation disponibles.The following figure shows the different types of virtualization and isolation levels available. Plateforme Service FabricService Fabric platform

Scénarios d’utilisation des conteneursScenarios for using containers

Voici des exemples pour lesquels le conteneur est un bon choix :Here are typical examples where a container is a good choice:

  • IIS lift- and -shift: Vous pouvez placer un existant ASP.NET MVC application dans un conteneur au lieu de la migration à ASP.NET Core.IIS lift and shift: You can put an existing ASP.NET MVC app in a container instead of migrating it to ASP.NET Core. Ces applications ASP.NET MVC dépendent des services Internet (IIS, Internet Information Services).These ASP.NET MVC apps depend on Internet Information Services (IIS). Vous pouvez empaqueter ces applications dans des images de conteneur à partir de l’image IIS créée au préalable, puis les déployer avec Service Fabric.You can package these applications into container images from the precreated IIS image and deploy them with Service Fabric. Pour plus d’informations sur les conteneurs Windows, consultez la page Images conteneurs sur Windows Server.See Container Images on Windows Server for information about Windows containers.

  • Mélange de conteneurs et microservices Service Fabric: Utilisez une image de conteneur existante pour une partie de votre application.Mix containers and Service Fabric microservices: Use an existing container image for part of your application. Par exemple, vous pouvez utiliser le conteneur NGINX pour le système frontal web de votre application et les services avec état pour les calculs les plus intenses du back-end.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.

  • Réduire l’impact des services de « voisins bruyants »: Vous pouvez utiliser la capacité de gouvernance des ressources des conteneurs pour limiter les ressources utilisées par un service sur un ordinateur hôte.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. Si les services sont susceptibles de consommer un grand nombre de ressources et, de ce fait, d’affecter les performances d’autres services (opération de type requête exécutée sur le long terme, par exemple), vous pouvez envisager de les placer dans des conteneurs soumis à la gouvernance des ressources.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.

Prise en charge des conteneurs par Service FabricService Fabric support for containers

Service Fabric prend en charge le déploiement de conteneurs Docker sur Linux, et celui de conteneurs Windows Server sur Windows Server 2016 avec une prise en charge du mode d’isolation 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.

Service Fabric fournit un modèle d’application dans lequel un conteneur représente un hôte d’application sur lequel sont placés plusieurs réplicas de service.Service Fabric provides an application model in which a container represents an application host in which multiple service replicas are placed. Service Fabric prend également en charge un scénario d’exécutables invités, dans lequel vous n’utilisez pas les modèles de programmation Service Fabric intégrés, mais empaquetez plutôt une application existante, écrite à l’aide de n’importe quel langage ou framework, à l’intérieur d’un conteneur.Service Fabric also supports a guest executable scenario in which you don't use the built-in Service Fabric programming models but instead package an existing application, written using any language or framework, inside a container. Ce scénario est le cas d’utilisation courant pour les conteneurs.This scenario is the common use-case for containers.

Vous pouvez également exécuter les services Service Fabric à l’intérieur d’un conteneur.You can also run Service Fabric services inside a container. La prise en charge de cette exécution est pour l’instant limitée.Support for running Service Fabric services inside containers is currently limited.

Service Fabric propose plusieurs fonctionnalités de gestion des conteneurs, celles-ci vous aident à créer des applications composées de microservices mis en conteneur, telles que :Service Fabric provides several container capabilities that help you build applications that are composed of containerized microservices, such as:

  • Activation et déploiement d’images de conteneurContainer image deployment and activation.
  • Gouvernance des ressources, notamment la définition des valeurs des ressources par défaut sur les clusters Azure.Resource governance including setting resource values by default on Azure clusters.
  • Authentification de référentiels.Repository authentication.
  • Mappage des ports de conteneur aux ports hôtes.Container port to host port mapping.
  • Découverte et communication entre des conteneurs.Container-to-container discovery and communication.
  • Possibilité de configurer et de définir des variables d’environnement.Ability to configure and set environment variables.
  • Possibilité de définir des identifiants de sécurité sur le conteneur.Ability to set security credentials on the container.
  • Différents modes de mise en réseau pour les conteneurs.A choice of different networking modes for containers.

Pour une vue d’ensemble complète de la prise en charge des conteneurs sur Azure, par exemple la création d’un cluster Kubernetes avec Azure Kubernetes Service, la création d’un registre Docker privé dans Azure Container Registry, et bien plus encore, voir Azure for Containers.For a comprehensive overview of container support on Azure, such as how to create a Kubernetes cluster with Azure Kubernetes Service, how to create a private Docker registry in Azure Container Registry, and more, see Azure for Containers.

Étapes suivantesNext steps

Dans cet article, vous avez découvert la prise en charge offerte par Service Fabric pour les conteneurs en cours d’exécution.In this article, you learned about the support Service Fabric provides for running containers. Nous allons à présent parcourir ces différentes fonctionnalités illustrées par des exemples, et vous montrer comment les utiliser.Next, we will go over examples of each of the features to show you how to use them.

Créer sa première application conteneur Service Fabric sous LinuxCreate your first Service Fabric container application on Linux
Créer sa première application conteneur Service Fabric sous WindowsCreate your first Service Fabric container application on Windows
En savoir plus sur les conteneurs WindowsLearn more about Windows Containers