Service Fabric e contêineresService Fabric and containers

IntroduçãoIntroduction

O Azure Service Fabric é uma plataforma de sistemas distribuídos que facilita o empacotamento, a implementação e a gestão de microsserviços e contentores dimensionáveis e fiáveis.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 é o orquestrador de contêiner da Microsoft para implantar microserviços em um cluster de computadores.Service Fabric is Microsoft's container orchestrator for deploying microservices across a cluster of machines. Service Fabric benefícios das lições aprendidas durante seus anos executando serviços na Microsoft em grande escala.Service Fabric benefits from the lessons learned during its years running services at Microsoft at massive scale.

Os microsserviços podem ser desenvolvidos de muitas formas, desde a utilização dos modelos de programação do Service Fabric e do ASP.NET Core até à implementação de qualquer código à sua escolha.Microservices can be developed in many ways from using the Service Fabric programming models, ASP.NET Core, to deploying any code of your choice. Ou, se você apenas deseja implantar e gerenciar contêineres, Service Fabric também é uma ótima opção.Or, if you just want to deploy and manage containers, Service Fabric is also a great choice.

Por padrão, o Service Fabric implanta e ativa esses serviços como processos.By default, Service Fabric deploys and activates these services as processes. Os processos fornecem a ativação mais rápida e o uso de densidade mais alto dos recursos em um cluster.Processes provide the fastest activation and highest density usage of the resources in a cluster. Service Fabric também pode implantar serviços em imagens de contêiner.Service Fabric can also deploy services in container images. Você também pode misturar serviços em processos e serviços em contêineres, no mesmo aplicativo.You can also mix services in processes, and services in containers, in the same application.

Para ir direto e experimentar contêineres em Service Fabric, experimente um início rápido, tutorial ou exemplo:To jump right in and try out containers on Service Fabric, try a quickstart, tutorial, or sample:

Quickstart: Implantar um aplicativo de contêiner do Linux para Service FabricQuickstart: Deploy a Linux container application to Service Fabric
Quickstart: Implantar um aplicativo de contêiner do Windows para Service FabricQuickstart: Deploy a Windows container application to Service Fabric
Colocar um aplicativo .NET existente em um contêinerContainerize an existing .NET app
Exemplos de Contentor do Service FabricService Fabric Container Samples

O que são contêineresWhat are containers

Os contêineres resolvem o problema da execução de aplicativos de forma confiável em ambientes de computação diferentes, fornecendo um ambiente imutável para que o aplicativo seja executado no.Containers solve the problem of running applications reliably in different computing environments by providing an immutable environment for the application to run in. Os contêineres encapsulam um aplicativo e todas as suas dependências, como bibliotecas e arquivos de configuração, em sua própria ' caixa ' isolada que contém tudo o que é necessário para executar o software dentro do contêiner.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. Onde quer que o contêiner seja executado, o aplicativo dentro dele sempre tem tudo o que precisa para ser executado, como as versões certas de suas bibliotecas dependentes, quaisquer arquivos de configuração e qualquer outra coisa que precise executar.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.

Os contêineres são executados diretamente na parte superior do kernel e têm uma exibição isolada do sistema de arquivos e de outros recursos.Containers run directly on top of the kernel and have an isolated view of the file system and other resources. Um aplicativo em um contêiner não tem nenhum conhecimento de outros aplicativos ou processos fora de seu contêiner.An application in a container has no knowledge of any other applications or processes outside of its container. Cada aplicativo e seu tempo de execução, suas dependências e suas bibliotecas de sistema são executados dentro de um contêiner com acesso privado e completo à exibição isolada própria do contêiner do sistema operacional.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. Além de facilitar o fornecimento de todas as dependências do seu aplicativo, ele precisa ser executado em diferentes ambientes de computação, segurança e isolamento de recursos são benefícios importantes do uso de contêineres com Service Fabric – que, de outra forma, executa serviços em um Process.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.

Em comparação com as máquinas virtuais, os contêineres têm as seguintes vantagens:Compared to virtual machines, containers have the following advantages:

  • Pequeno: Os contêineres usam um único espaço de armazenamento e versões de camada e atualizações para aumentar a eficiência.Small: Containers use a single storage space and layer versions and updates to increase efficiency.
  • Rápido: Os contêineres não precisam inicializar um sistema operacional inteiro, para que possam começar muito mais rapidamente – normalmente em segundos.Fast: Containers don’t have to boot an entire operating system, so they can start much faster--typically in seconds.
  • Portabilidade: Uma imagem de aplicativo em contêiner pode ser transportada para ser executada na nuvem, local, dentro de máquinas virtuais ou diretamente em máquinas físicas.Portability: A containerized application image can be ported to run in the cloud, on premises, inside virtual machines, or directly on physical machines.
  • Governança de recursos: Um contêiner pode limitar os recursos físicos que ele pode consumir em seu host.Resource governance: A container can limit the physical resources that it can consume on its host.

Tipos de contêiner e ambientes com suporteContainer types and supported environments

O Service Fabric dá suporte a contêineres no Linux e no Windows e dá suporte ao modo de isolamento do Hyper-V no Windows.Service Fabric supports containers on both Linux and Windows, and supports Hyper-V isolation mode on Windows.

Contêineres do Docker no LinuxDocker containers on Linux

O Docker fornece APIs para criar e gerenciar contêineres sobre contêineres de kernel do Linux.Docker provides APIs to create and manage containers on top of Linux kernel containers. O Hub do Docker fornece um repositório central para armazenar e recuperar imagens de contêiner.Docker Hub provides a central repository to store and retrieve container images. Para um tutorial baseado em Linux, consulte criar seu primeiro aplicativo de contêiner de Service Fabric no Linux.For a Linux-based tutorial, see Create your first Service Fabric container application on Linux.

Containers Windows ServerWindows Server containers

O Windows Server 2016 fornece dois tipos diferentes de contêineres que diferem por nível de isolamento.Windows Server 2016 provides two different types of containers that differ by level of isolation. Os contêineres do Windows Server e os contêineres do Docker são semelhantes porque têm o isolamento de namespace e sistema de arquivos, enquanto compartilham o kernel com o host no qual estão sendo executados.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. No Linux, esse isolamento tradicionalmente foi fornecido por cgroups e namespaces, e os contêineres do Windows Server se comportam da mesma forma.On Linux, this isolation has traditionally been provided by cgroups and namespaces, and Windows Server containers behave similarly.

Os contêineres do Windows com suporte a Hyper-V fornecem mais isolamento e segurança porque nenhum contêiner compartilha o kernel do sistema operacional com qualquer outro contêiner ou com o host.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. Com esse nível mais alto de isolamento de segurança, os contêineres habilitados para Hyper-V são direcionados a cenários potencialmente hosts de vários locatários.With this higher level of security isolation, Hyper-V enabled containers are targeted at potentially hostile, multi-tenant scenarios. Para um tutorial baseado no Windows, consulte criar seu primeiro aplicativo de contêiner de Service Fabric no Windows.For a Windows-based tutorial, see Create your first Service Fabric container application on Windows.

A figura a seguir mostra os diferentes tipos de virtualização e níveis de isolamento disponíveis.The following figure shows the different types of virtualization and isolation levels available. Plataforma Service FabricService Fabric platform

Cenários para usar contêineresScenarios for using containers

Aqui estão exemplos típicos em que um contêiner é uma boa opção:Here are typical examples where a container is a good choice:

  • Deslocamento do IIS: Você pode colocar um aplicativo MVC ASP.net existente em um contêiner em vez de migrá-lo para 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. Esses aplicativos ASP.NET MVC dependem do Serviços de Informações da Internet (IIS).These ASP.NET MVC apps depend on Internet Information Services (IIS). Você pode empacotar esses aplicativos em imagens de contêiner da imagem do IIS precriada e implantá-los com Service Fabric.You can package these applications into container images from the precreated IIS image and deploy them with Service Fabric. Consulte imagens de contêiner no Windows Server para obter informações sobre contêineres do Windows.See Container Images on Windows Server for information about Windows containers.

  • Misturar contêineres e Service Fabric microservices: Use uma imagem de contêiner existente para parte do seu aplicativo.Mix containers and Service Fabric microservices: Use an existing container image for part of your application. Por exemplo, você pode usar o contêiner Nginx para o front-end da Web do seu aplicativo e serviços com estado para a computação de back-end mais intensa.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.

  • Reduza o impacto dos serviços "vizinhos com ruído" : Você pode usar a capacidade de governança de recursos de contêineres para restringir os recursos que um serviço usa em um 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 os serviços puderem consumir muitos recursos e afetarem o desempenho de outros (como uma operação de longa execução, semelhante a consulta), considere colocar esses serviços em contêineres que têm governança de recursos.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.

Suporte Service Fabric para contêineresService Fabric support for containers

O Service Fabric dá suporte à implantação de contêineres do Docker no Linux e contêineres do Windows Server no Windows Server 2016, juntamente com o suporte para o modo de isolamento do 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 fornece um modelo de aplicativo no qual um contêiner representa um host de aplicativo no qual várias réplicas de serviço são colocadas.Service Fabric provides an application model in which a container represents an application host in which multiple service replicas are placed. O Service Fabric também dá suporte a um cenário de executável convidado no qual você não usa os modelos de programação de Service Fabric internos, mas, em vez disso, empacota um aplicativo existente, escrito usando qualquer linguagem ou estrutura, dentro de um contêiner.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. Esse cenário é o caso de uso comum para contêineres.This scenario is the common use-case for containers.

Você também pode executar Service Fabric serviços dentro de um contêiner.You can also run Service Fabric services inside a container. O suporte para a execução de serviços de Service Fabric dentro de contêineres é limitado no momento.Support for running Service Fabric services inside containers is currently limited.

O Service Fabric fornece vários recursos de contêiner que ajudam você a criar aplicativos compostos por microservices em contêineres, como:Service Fabric provides several container capabilities that help you build applications that are composed of containerized microservices, such as:

  • Implantação e ativação de imagem de contêiner.Container image deployment and activation.
  • Governança de recursos, incluindo a definição de valores de recurso por padrão em clusters do Azure.Resource governance including setting resource values by default on Azure clusters.
  • Autenticação de repositório.Repository authentication.
  • Porta do contêiner para o mapeamento de porta do host.Container port to host port mapping.
  • Descoberta e comunicação de contêiner para contêiner.Container-to-container discovery and communication.
  • Capacidade de configurar e definir variáveis de ambiente.Ability to configure and set environment variables.
  • Capacidade de definir credenciais de segurança no contêiner.Ability to set security credentials on the container.
  • Uma opção de modos de rede diferentes para contêineres.A choice of different networking modes for containers.

Para obter uma visão geral abrangente do suporte a contêiner no Azure, por exemplo, como criar um cluster kubernetes com o serviço kubernetes do Azure, como criar um registro do Docker privado no registro de contêiner do Azure e muito mais, consulte Azure para contêineres.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.

Passos SeguintesNext steps

Neste artigo, você aprendeu sobre o suporte Service Fabric fornece para contêineres em execução.In this article, you learned about the support Service Fabric provides for running containers. Em seguida, veremos exemplos de cada um dos recursos para mostrar como usá-los.Next, we will go over examples of each of the features to show you how to use them.

Criar seu primeiro aplicativo de contêiner de Service Fabric no LinuxCreate your first Service Fabric container application on Linux
Criar seu primeiro aplicativo de contêiner de Service Fabric no WindowsCreate your first Service Fabric container application on Windows
Saiba mais sobre contêineres do WindowsLearn more about Windows Containers