Service Fabric e contêineres

Introdução

O Azure Service Fabric é uma plataforma de sistemas distribuídos que facilita o empacotamento, implantação e gerenciamento de microsserviços e contêineres escalonáveis e confiáveis.

O Service Fabric é um orquestrador de cotêiner da Microsoft que implanta microsserviços em um cluster de computadores. Benefícios do Service Fabric das lições aprendidas durante seus anos executando os serviços da Microsoft em grande escala.

Os microsserviços podem ser desenvolvidos de várias maneiras usando os modelos de programação do Service Fabric, o ASP.NET Core, para implantar qualquer código que você escolher. Se você quiser apenas implantar e gerenciar contêineres o Service Fabric também é uma ótima escolha.

Por padrão, o Service Fabric implanta e ativa esses serviços como processos. Processos fornecem a ativação mais rápida e o uso de densidade mais alto dos recursos em um cluster. O Service Fabric também pode implantar serviços em imagens de contêiner. Você também pode misturar serviços em processos e serviços em contêineres no mesmo aplicativo.

Para ir diretamente e experimentar os contêineres no Service Fabric, experimente um início rápido, tutorial ou exemplo:

Início Rápido: implantar um aplicativo do contêiner do Linux ao Service Fabric
Início Rápido: implantar um aplicativo do contêiner do Windows ao Service Fabric
Colocar um aplicativo .NET existente em um contêiner
Exemplos de Contêiner do Service Fabric

O que são contêineres?

Os contêineres resolvem o problema dos aplicativos em execução com confiança em diferentes ambientes de computação, fornecendo um ambiente imutável para o aplicativo ser executado. Os contêineres encapsulam um aplicativo e todas as suas dependências, como bibliotecas e arquivos de configuração, em sua própria isolada 'caixa' que contém todos os componentes necessários para executar o software dentro do contêiner. Sempre que o contêiner é executado, o aplicativo dentro dele sempre tem tudo o que precisa para executar, como as versões corretas de suas bibliotecas dependentes, quaisquer arquivos de configuração e qualquer outra coisa, precisa ser executado.

Os contêineres são executados sobre o kernel e têm uma exibição isolada do sistema de arquivos e outros recursos. Um aplicativo em um contêiner não tem conhecimento de outros aplicativos ou processos fora do seu contêiner. Cada aplicativo e seu runtime, 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. Além de tornar fácil fornecer todas as dependências do seu aplicativo, precisa ser executado em diferentes ambientes de computação, segurança e isolamento de recursos são importantes benefícios do uso de contêineres com o Service Fabric – que executa outra forma de serviços em um processo.

Em comparação a máquinas virtuais, contêineres têm as seguintes vantagens:

  • Pequeno: os contêineres usam um único espaço de armazenamento e versões e atualizações em camadas para aumentar a eficiência.
  • Rápido: os contêineres não precisam inicializar um sistema operacional inteiro, por isso podem começar com muito mais rapidez, normalmente em questão de segundos.
  • Portabilidade: uma imagem de aplicativo em contêiner pode ser portada para execução na nuvem, local, dentro de máquinas virtuais ou diretamente em computadores físicos.
  • Governança de recursos: um contêiner pode limitar os recursos físicos que ele pode consumir em seu host.

Suporte ao Service Fabric para contêineres

O Service Fabric dá suporte à implantação de contêineres do Docker no Linux e à implantação de contêineres do Windows Server no Windows Server 2016 e em versões posteriores, juntamente com o suporte para o modo de isolamento do Hyper-V.

Runtimes de contêiner compatíveis com ServiceFabric:

  • Docker do Linux
  • Windows:
    • Windows Server 2022: Runtime de Contêiner Mirantis
    • Windows Server 2019/2016: DockerEE

Contêineres de Docker no Linux

O docker oferece APIs para criar e gerenciar contêineres sobre contêineres de kernel do Linux. O Hub do Docker fornece um repositório central para armazenar e recuperar imagens de contêiner. Para o tutorial baseado em Linux, consulte Criar seu primeiro aplicativo de contêiner do Service Fabric no Linux.

Contêineres do Windows Server

O Windows Server 2016 e versões posteriores fornecem dois tipos diferentes de contêineres que diferem por nível de isolamento fornecido. Contêineres do Windows Server e contêineres do Docker são semelhantes porque ambos têm isolamento de sistema de arquivos e namespace, mas compartilham o kernel com o host no qual estão sendo executados. No Linux, esse isolamento tradicionalmente foi fornecido por cgroups e namespaces, e contêineres do Windows Server se comportam da mesma forma.

Contêineres do Windows com suporte a Hyper-V fornecem mais segurança e isolamento, porque nenhum contêiner compartilha o kernel do sistema operacional com outros contêineres ou com o host. Com esse nível mais alto de isolamento de segurança, os contêineres habilitados para Hyper-V são indicados para cenários hostis e multilocatários. Para o tutorial baseado em Windows, consulte Criar seu primeiro aplicativo de contêiner do Service Fabric no Windows.

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

Cenários de uso de contêineres

Estes são exemplos típicos em que um contêiner é uma boa opção:

  • Comparar e deslocar IIS: você pode colocar um aplicativo ASP.NET MVC existente em um contêiner em vez de migrar para ASP.NET Core. Esses aplicativos ASP.NET MVC dependem do IIS (Serviços de Informações da Internet). Você pode empacotar esses aplicativos em imagens de contêiner a partir da imagem do IIS pré-criada e implantá-los com o Service Fabric. Consulte Container Images on Windows Server (Imagens de contêiner no Windows Server) para obter informações sobre contêineres do Windows.

  • Combinar contêineres e microsserviços do Service Fabric: use uma imagem existente do contêiner para parte do seu aplicativo. Por exemplo, é possível usar o contêiner NGINX para o front-end da Web do seu aplicativo e serviços com estado para obter a computação mais intensiva de back-end.

  • Reduzir o impacto de serviços "vizinhos ruidosos": 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. Se os serviços consumirem muitos recursos e afetarem o desempenho dos outros (como uma operação demorada, parecida com uma consulta), considere colocar esses serviços em contêineres com governança de recursos.

Observação

Um cluster do Service Fabric é um locatário único por design e os aplicativos hospedados são considerados confiáveis. Se você estiver considerando hospedar aplicativos não confiáveis, confira Hospedagem de aplicativos não confiáveis ​​em um cluster do Service Fabric.

O Service Fabric fornece um modelo de aplicativo em que um contêiner representa um host de aplicativo no qual várias réplicas de serviço são colocadas. Service Fabric também dá suporte a um cenário de executável convidado em que você não usa os modelos de programação do Service Fabric, mas em vez disso, empacotar um aplicativo existente, escrito usando qualquer linguagem ou estrutura, dentro de um contêiner. Esse cenário é o caso de uso comum para contêineres.

Você também pode executar serviços do Service Fabric dentro de um contêiner. No momento, o suporte para execução de serviços do Service Fabric dentro de contêineres é limitado.

O Service Fabric fornece vários recursos de contêiner que ajudam a compilar de aplicativos compostos por microsserviços em contêineres, como:

  • Implantação e ativação de imagem de contêiner.
  • Governança de recursos, incluindo a configuração de valores de recursos, por padrão, nos clusters do Azure.
  • Autenticação do repositório.
  • Porta do contêiner para o mapeamento da porta de host.
  • Descoberta e comunicação de contêiner para contêiner.
  • Capacidade de configurar e definir as variáveis de ambiente.
  • Capacidade de definir credenciais de segurança no contêiner.
  • A opção de diferentes modos de rede para contêineres.

Para obter uma visão abrangente do contêiner de suporte no Azure, por exemplo, como criar um cluster Kubernetes com o Serviço de Kubernetes do Azure, como para criar um registro privado do Docker no Registro de Contêiner do Azure e muito mais, consulte Azure para contêineres.

Próximas etapas

Neste artigo, você aprendeu sobre o suporte que o Service Fabric fornece para contêineres em execução. Em seguida, apresentaremos exemplos de cada um dos recursos para mostrar como usá-los.

Criar seu primeiro aplicativo de contêiner do Service Fabric no Linux
Criar seu primeiro aplicativo de contêiner do Service Fabric no Windows
Saiba mais sobre contêineres do Windows