Service Fabric e contentores

Introdução

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.

O Service Fabric é o orquestrador de contentores da Microsoft para implementar microsserviços num cluster de máquinas. O Service Fabric beneficia das lições aprendidas durante os seus anos a executar serviços na Microsoft em grande escala.

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. Em alternativa, se apenas quiser implementar e gerir contentores, o Service Fabric também é uma ótima opção.

Por predefinição, o Service Fabric implementa e ativa estes serviços como processos. Os processos fornecem a ativação mais rápida e a maior utilização de densidade dos recursos num cluster. O Service Fabric também pode implementar serviços em imagens de contentor. Também pode misturar serviços em processos e serviços em contentores, na mesma aplicação.

Para aceder diretamente e experimentar contentores no Service Fabric, experimente um início rápido, tutorial ou exemplo:

Início Rápido: Implementar uma aplicação de contentor do Linux no Service Fabric
Início Rápido: Implementar uma aplicação de contentor do Windows no Service Fabric
Colocar uma aplicação .NET existente num contentor
Exemplos de Contentor do Service Fabric

O que são contentores

Os contentores resolvem o problema de executar aplicações de forma fiável em diferentes ambientes de computação ao fornecer um ambiente imutável para a aplicação ser executada. Os contentores moldam uma aplicação e todas as respetivas dependências, como bibliotecas e ficheiros de configuração, na sua própria "caixa" isolada que contém tudo o que é necessário para executar o software dentro do contentor. Onde quer que o contentor seja executado, a aplicação no mesmo tem sempre tudo o que precisa para ser executada, como as versões certas das respetivas bibliotecas dependentes, quaisquer ficheiros de configuração e qualquer outra coisa que precise de executar.

Os contentores são executados diretamente na parte superior do kernel e têm uma vista isolada do sistema de ficheiros e de outros recursos. Uma aplicação num contentor não tem conhecimento de quaisquer outras aplicações ou processos fora do contentor. Cada aplicação e o seu runtime, dependências e bibliotecas de sistema são executados dentro de um contentor com acesso privado completo à vista isolada do próprio contentor do sistema operativo. Além de facilitar a disponibilização de todas as dependências da sua aplicação, tem de ser executada em diferentes ambientes de computação, a segurança e o isolamento de recursos são benefícios importantes da utilização de contentores com o Service Fabric, que de outra forma executa serviços num processo.

Em comparação com as máquinas virtuais, os contentores têm as seguintes vantagens:

  • Pequeno: os contentores utilizam um único espaço de armazenamento e versões de camada e atualizações para aumentar a eficiência.
  • Rápido: os contentores não têm de arrancar um sistema operativo inteiro, pelo que podem iniciar muito mais rapidamente, normalmente em segundos.
  • Portabilidade: uma imagem de aplicação em contentores pode ser transferida para ser executada na cloud, no local, dentro de máquinas virtuais ou diretamente em máquinas físicas.
  • Governação de recursos: um contentor pode limitar os recursos físicos que pode consumir no anfitrião.

Suporte do Service Fabric para contentores

O Service Fabric suporta a implementação de contentores do Docker no Linux e contentores do Windows Server no Windows Server 2016 e posterior, juntamente com o suporte para o modo de isolamento Hyper-V.

Runtimes de contentor compatíveis com ServiceFabric:

  • Linux: Docker
  • Windows:
    • Windows Server 2022: Mirantis Container Runtime
    • Windows Server 2019/2016: DockerEE

Contentores do Docker no Linux

O Docker fornece APIs para criar e gerir contentores sobre contentores de kernel do Linux. Docker Hub fornece um repositório central para armazenar e obter imagens de contentor. Para obter um tutorial baseado em Linux, veja Criar a sua primeira aplicação de contentor do Service Fabric no Linux.

Contentores do Windows Server

Windows Server 2016 e posterior fornecem dois tipos diferentes de contentores que diferem por nível de isolamento. Os contentores do Windows Server e os contentores do Docker são semelhantes porque têm isolamento do sistema de nomes e do sistema de ficheiros, ao mesmo tempo que partilham o kernel com o anfitrião em que estão a ser executados. No Linux, este isolamento tem sido tradicionalmente fornecido por grupos e espaços de nomes e os contentores do Windows Server comportam-se de forma semelhante.

Os contentores do Windows com suporte hyper-V proporcionam mais isolamento e segurança porque nenhum contentor partilha o kernel do sistema operativo com qualquer outro contentor ou com o anfitrião. Com este nível mais elevado de isolamento de segurança, os contentores preparados para Hyper-V são direcionados para cenários potencialmente hostis e multi-inquilinos. Para obter um tutorial baseado no Windows, veja Criar a sua primeira aplicação de contentor do Service Fabric no Windows.

A figura seguinte mostra os diferentes tipos de níveis de virtualização e isolamento disponíveis. Plataforma do Service Fabric

Cenários para utilizar contentores

Eis exemplos típicos em que um contentor é uma boa opção:

  • Lift-and-shift do IIS: pode colocar uma aplicação MVC ASP.NET existente num contentor em vez de a migrar para ASP.NET Core. Estas ASP.NET aplicações MVC dependem dos Serviços de Informação Internet (IIS). Pode empacotar estas aplicações em imagens de contentor a partir da imagem do IIS pré-criada e implementá-las com o Service Fabric. Consulte Imagens de Contentor no Windows Server para obter informações sobre contentores do Windows.

  • Misturar contentores e microsserviços do Service Fabric: utilize uma imagem de contentor existente para parte da sua aplicação. Por exemplo, pode utilizar o contentor NGINX para o front-end Web da sua aplicação e serviços com monitorização de estado para a computação de back-end mais intensiva.

  • Reduzir o impacto dos serviços de "vizinhos ruidosos": pode utilizar a capacidade de governação de recursos dos contentores para restringir os recursos que um serviço utiliza num anfitrião. Se os serviços podem consumir muitos recursos e afetar o desempenho de outros (como uma operação de execução prolongada, semelhante a consultas), considere colocar estes serviços em contentores que tenham governação de recursos.

Nota

Um cluster do Service Fabric é um inquilino único por design e as aplicações alojadas são consideradas fidedignas. Se estiver a considerar alojar aplicações não fidedignos, veja Alojamento de aplicações não fidedignos num cluster do Service Fabric.

O Service Fabric fornece um modelo de aplicação no qual um contentor representa um anfitrião de aplicações no qual são colocadas múltiplas réplicas de serviço. O Service Fabric também suporta um cenário executável convidado no qual não utiliza os modelos de programação incorporados do Service Fabric, mas empacota uma aplicação existente, escrita com qualquer linguagem ou arquitetura, dentro de um contentor. Este cenário é o caso de utilização comum para contentores.

Também pode executar serviços do Service Fabric dentro de um contentor. O suporte para executar serviços do Service Fabric dentro de contentores está atualmente limitado.

O Service Fabric fornece várias capacidades de contentor que o ajudam a criar aplicações compostas por microsserviços em contentores, tais como:

  • Implementação e ativação de imagens de contentor.
  • Governação de recursos, incluindo a definição de valores de recursos por predefinição nos clusters do Azure.
  • Autenticação do repositório.
  • Porta de contentor para alojar o mapeamento de portas.
  • Deteção e comunicação contentor a contentor.
  • Capacidade de configurar e definir variáveis de ambiente.
  • Capacidade de definir credenciais de segurança no contentor.
  • Uma escolha de diferentes modos de rede para contentores.

Para obter uma descrição geral abrangente do suporte a contentores no Azure, como criar um cluster do Kubernetes com Azure Kubernetes Service, como criar um registo privado do Docker no Azure Container Registry e muito mais, veja Azure for Containers (Azure para Contentores).

Passos seguintes

Neste artigo, ficou a conhecer o suporte fornecido pelo Service Fabric para executar contentores. Em seguida, vamos analisar exemplos de cada uma das funcionalidades para lhe mostrar como utilizá-las.

Criar a sua primeira aplicação de contentor do Service Fabric no Linux
Criar a sua primeira aplicação de contentor do Service Fabric no Windows
Saiba mais sobre os Contentores do Windows