O que é o Azure Service Fabric?

Concluído

Vamos começar com algumas definições e um tour rápido pelo Azure Service Fabric. Esta visão geral deve ajudá-lo a decidir se o Service Fabric é adequado para sua solução de computação distribuída.

O que é um contentor?

Um contêiner é uma unidade atômica de software que encapsula um aplicativo e todas as suas dependências, como bibliotecas e arquivos de configuração, em seu próprio ambiente isolado que inclui tudo o que é necessário para executar o software nesse ambiente. Um contêiner é executado diretamente sobre o kernel e tem uma visão isolada do sistema de arquivos e outros recursos. O aplicativo dentro do contêiner não tem conhecimento de quaisquer outros aplicativos ou processos fora de seu contêiner.

Porquê utilizar contentores?

O modelo de contêiner oferece os seguintes benefícios:

  1. Pequeno: os contêineres usam um único espaço de armazenamento e versões e atualizações em camadas para aumentar a eficiência.

  2. Rápido: os contêineres não precisam inicializar um sistema operacional inteiro, para que possam ser iniciados mais rapidamente, normalmente em segundos.

  3. Portabilidade: uma imagem de aplicativo em contêiner pode ser portada para ser executada na nuvem, no local, dentro de máquinas virtuais ou diretamente em máquinas físicas.

  4. Governança de recursos: um contêiner pode limitar os recursos físicos que ele pode consumir em seu host.

Como são geridos os contentores?

Orquestração de contêineres é um termo geral para um software que ajuda os administradores a gerenciar ambientes com contêineres. Um administrador insere um estado desejado do ambiente, como cinco cópias de um determinado serviço em execução. Em seguida, o orquestrador tenta fazer com que o ambiente corresponda ao estado desejado. Uma vez atingido o estado desejado, o orquestrador tenta mantê-lo. Se um dos serviços falhar, o orquestrador tentará implantar uma nova cópia.

A maioria dos orquestradores faz mais do que lidar com a implantação inicial e casos de falha. Eles também podem lidar com atualizações e abordar o consumo de recursos e a governança.

A orquestração de contêineres é fundamentalmente sobre alcançar e manter algum estado desejado de configuração no ambiente.

O Gerenciador de Recursos de Cluster é o componente do sistema que lida com a orquestração no Azure Service Fabric.

O que é um microsserviço?

Os aplicativos de microsserviço e a arquitetura de microsserviços referem-se a serviços pequenos, independentes e com acoplamento flexível que trabalham juntos para alcançar um resultado.

Os serviços podem ser desenvolvidos de forma totalmente independente uns dos outros, usando diferentes pilhas de tecnologia, bibliotecas e estruturas. Os serviços podem ser implantados de forma independente, para que um componente da arquitetura possa ser atualizado sem a necessidade de reimplantar todo o aplicativo. Os serviços são responsáveis pela persistência dos seus próprios dados. Os serviços se comunicam usando APIs bem definidas e permanecem agnósticos em relação à implementação interna uns dos outros.

Porque é que deve utilizar os microsserviços?

O modelo de microsserviço oferece os seguintes benefícios:

  • Agilidade: Os microsserviços são implantados de forma independente, o que reduz a complexidade do lançamento de recursos. Você pode atualizar um serviço sem reimplantar todo o aplicativo.

  • Isolamento de falhas: Se um microsserviço individual ficar indisponível, ele não interromperá todo o aplicativo, desde que os microsserviços upstream sejam projetados para lidar com falhas corretamente.

  • Escalabilidade: os serviços podem ser dimensionados de forma independente, permitindo que você expanda subsistemas que exigem mais recursos sem dimensionar todo o aplicativo. Você pode ver como isso se encaixa bem com o modelo de orquestração de contêineres e contêineres.

  • Isolamento de dados: as atualizações de esquema são mais fáceis, porque apenas um único microsserviço é afetado.

O que são serviços apátridas e com estado?

Um serviço sem estado é aquele em que cada pedido e resposta pode ser entendido isoladamente. Você pode imaginar um serviço de calculadora simplista, onde você envia um cálculo para ser realizado (2+2, por exemplo) e recebe uma única resposta (4). Se você quiser executar outro cálculo sobre esse resultado (4 x 2, por exemplo), você enviaria manualmente uma solicitação para calcular 4 x 2 e receberia 8. No entanto, o serviço não saberia que você estava usando o resultado do cálculo inicial.

Um serviço stateful é aquele em que cada solicitação e resposta se encaixam em um histórico de transações que o serviço tem conhecimento e pode referenciar. Vamos usar o exemplo de serviço de calculadora novamente, mas desta vez com uma versão com estado. Você solicita que o cálculo 2+2 seja realizado e recebe 4. Desta vez, você solicita que o serviço pegue o resultado anterior e multiplique por 2 (digamos que a sintaxe se pareça com Resposta x 2). Você recebe 8 em resposta, como fez no primeiro exemplo. No entanto, desta vez, o serviço de calculadora teve conhecimento de que o resultado da transação anterior (Resposta) foi 4.

Por que usar serviços sem estado e com monitoração de estado?

Sua solução pode usar serviços sem monitoração de estado, serviços com monitoração de estado ou ambos.

A sua escolha depende das necessidades da sua aplicação. Se você precisar que o estado de um serviço seja persistido entre as sessões, precisará de serviços com monitoração de estado. Se seus serviços não precisarem de estado persistente ou puderem depender de armazenamento externo para que seu estado seja persistente, você poderá usar serviços sem monitoração de estado.

Com a arquitetura de microsserviços, você pode misturar serviços sem estado e com monitoração de estado. Os microsserviços são independentes e podem fazer uso de pilhas de tecnologia totalmente diferentes, para que você possa projetar alguns de seus serviços para exigir um estado persistente e outros não.

O que é o Azure Service Fabric?

O Azure Service Fabric gerencia seu sistema de computação distribuída e simplifica a implantação e o gerenciamento de aplicativos em contêineres, a implementação de arquitetura de microsserviços e o uso de serviços robustos com monitoração de estado, além de serviços sem monitoração de estado. O Service Fabric oferece ferramentas de desenvolvimento e operações, suporte para vários modelos de programação, orquestração de contêineres, integridade e monitoramento de clusters, dimensionamento automático e muito mais.

Diagram that shows the scope of Azure Service Fabric, including orchestration, programming models, automatic scaling, and more.

O Service Fabric oferece dois modelos de cluster diferentes, dependendo da sua preferência. O modelo de cluster padrão requer que você gerencie todos os recursos subjacentes do cluster. O modelo de cluster gerenciado abstrai esses recursos e o Azure os gerencia.

Você pode criar seu cluster no portal do Azure ou usando modelos do Azure Resource Manager.