Cenários de aplicativos do Service Fabric

O Service Fabric do Azure oferece uma plataforma confiável e flexível em que você pode escrever e executar muitos tipos de serviço e aplicativo de negócios. Esses aplicativos e microsserviços podem ser com ou sem monitoração de estado têm os recursos balanceados entre máquinas virtuais para melhorar a eficiência.

A arquitetura exclusiva da Malha do Serviço permite que você execute análise de dados, computação na memória, transações paralelas e processamento de eventos quase em tempo real em seus aplicativos. Você pode escalar ou reduzir seus aplicativos verticalmente com facilidade, de acordo com os requisitos de recurso em constante mudança.

Para obter diretrizes de design sobre como criar aplicativos, leia Arquitetura de microsserviços no Azure Service Fabric e Práticas recomendadas para design de aplicativos usando Service Fabric.

Considere o uso da plataforma Service Fabric para os seguintes tipos de aplicativos:

  • Coleta de dados, processamento e IoT: o Service Fabric lida com grandes escalas e tem baixa latência em seus serviço com estado. Ele pode ajudar a processar dados em milhões de dispositivos em que os dados para o dispositivo e a computação estão colocalizados.

    Os clientes que criaram serviços de IoT com o Service Fabric incluem os seguintes: PCL Construction, Citrix, ASOS, Oman Data Park, Kohler e Dover Fueling Systems.

  • Aplicativos interativos baseados em sessão e jogos: o Service Fabric é útil se os aplicativos, como jogos online ou mensagens instantâneas, exigirem baixa latência em leituras e gravações. O Service Fabric permite que você compile esses aplicativos interativos e com monitoração de estado sem ter que criar um armazenamento separado ou cache. Visite soluções de jogos do Azure para obter diretrizes de design sobre como usar o Service Fabric em serviços de jogos.

    Os clientes que têm serviços de jogos integrados incluem os seguintes: Next Games. Os clientes que têm sessões interativas internas incluem Honeywell com Hololens.

  • Análise de dados e processamento de fluxo de trabalho: aplicativos que devem processar eventos ou fluxos de dados de forma confiável se beneficiam das leituras e gravações otimizadas no Service Fabric. O Service Fabric também tem suporte para aplicativos que processam pipelines, em que os resultados devem ser confiáveis e passados para o próximo estágio de processamento sem qualquer perda. Esses pipelines incluem sistemas transacionais e financeiros, em que as garantias de computação e consistência de dados são essenciais.

    Os clientes que criaram serviços de fluxo de trabalho de negócios incluem os seguintes: Zeiss Group e PCL Construction.

  • Computação em dados: o Service Fabric permite que você crie aplicativos com estado que fazem computação de dados intensiva. Ele permite a colocação de processamento (computação) e dados em aplicativos.

    Normalmente, quando seu aplicativo exige acesso a dados, a latência de rede que associada a um cache de dados externo ou a uma camada de armazenamento limita o tempo de computação. Os serviços do Service Fabric com monitoração de estado eliminam essa latência, habilitando leituras e gravações otimizadas.

    Por exemplo, considere que você tenha um aplicativo que executa uma seleção de recomendação em tempo real para clientes com um requisito de tempo de ida e volta de menos de 100 milissegundos. As características de latência e desempenho dos serviços do Service Fabric fornecem uma experiência responsiva ao usuário, em comparação com o modelo de implementação padrão de ter que buscar os dados necessários do armazenamento remoto. O sistema é mais responsivo porque o cálculo da seleção de recomendação é colocado com dados e regras.

    Os clientes que têm serviços de computação integrados incluem os seguintes: ASOS e CCC.

  • Serviços altamente disponíveis: o Service Fabric fornece failover rápido criando várias réplicas de serviço secundárias. Se um nó, processo ou serviço individual falhar devido a uma falha de hardware, ou outra falha, uma das réplicas secundárias é promovida a uma réplica primária com perda mínima de serviço.

  • Serviços escalonáveis: serviços individuais podem ser particionados, permitindo que seu estado seja escalado horizontalmente no cluster. Os serviços individuais podem também ser criados e removidos dinamicamente. Você pode escalar horizontalmente os serviços de algumas instâncias em alguns nós para milhares de instâncias em muitos nós e, em seguida, dimensioná-los novamente conforme necessário. Você pode usar o Service Fabric para criar esses serviços e gerenciar seus ciclos de vida completos.

Estudos de caso de design do aplicativo

Estudos de caso que mostram como o Service Fabric é usado para projetar aplicativos são publicados em Histórias do cliente e Microsserviços nos sites do Azure.

Projetar aplicativos compostos de microsserviços com e sem monitoração de estado

A criação de aplicativos com funções de trabalho com os Serviços de Nuvem do Azure é um exemplo de serviço sem estado. Por outro lado, os microsserviços com monitoração de estado mantêm o estado autoritário além da solicitação e de sua resposta. Essa funcionalidade fornece alta disponibilidade e consistência do estado por meio de APIs simples que fornecem garantias transacionais apoiadas pela replicação.

Os serviços com estado do Service Fabric trazem a alta disponibilidade para todos os tipos de aplicativo, e não apenas a bancos de dados e outros armazenamentos de dados. Essa é uma progressão natural. Os aplicativos já passaram do uso de bancos de dados totalmente relacionais para bancos de dados NoSQL de alta disponibilidade. Agora os próprios aplicativos podem ter seu estado e dados "hot" gerenciados dentro deles para ganhos de desempenho adicionais sem sacrificar a disponibilidade, a consistência e a confiabilidade.

Quando você estiver criando aplicativos que consistem em microsserviços, normalmente terá uma combinação de aplicativos Web sem estado (como ASP.NET e Node.js) chamando serviços de camada intermediária de negócios com e sem estado. Os aplicativos e serviços são todos implantados no mesmo cluster Service Fabric por meio dos comandos de implantação do Service Fabric. Cada um desses serviços é independente em relação à escala, confiabilidade e uso de recursos. Essa independência melhora a agilidade e a flexibilidade no desenvolvimento e no gerenciamento do ciclo de vida.

Os microsserviços com monitoração de estado simplificam o design dos aplicativos porque eliminam a necessidade de filas e caches adicionais que têm sido tradicionalmente necessários para abordar os requisitos de disponibilidade e de latência de um aplicativo totalmente sem monitoração de estado. Como os serviços com estado têm alta disponibilidade e baixa latência, há menos detalhes a serem gerenciados em seu aplicativo.

Os diagramas a seguir ilustram as diferenças entre criar um aplicativo sem monitoração de estado e um com monitoração de estado. Ao aproveitar os modelos de programação dos Reliable Services e Reliable Actors, os serviços com estado reduzem a complexidade do aplicativo, ao mesmo tempo que alcançam uma alta taxa de transferência e baixa latência.

Aqui está um exemplo de aplicativo que usa serviços sem estado: Application that uses stateless services

Aqui está um exemplo de aplicativo que usa serviços com estado: Application that uses stateful services

Próximas etapas