Pontos Principais
- O Azure Service Fabric Mesh é um serviço totalmente gerenciado que permite criar, implantar e gerenciar aplicativos que consistem em serviços poliglotas executados em containers usando uma abordagem serverless.
- O Service Fabric Mesh fornece roteamento inteligente de mensagens por meio de recursos de rede definida por software (SDN), construídos usando o Envoy Proxy, que permite a descoberta e o roteamento de serviços entre microservices.
- O Service Fabric do Azure tem três ofertas públicas: o serviço de cluster do Azure do Service Fabric, o Service Fabric Standalone e o serviço do Azure Service Fabric Mesh.
- O Service Fabric Mesh tem um forte foco em ser uma plataforma de aplicativos, abstraindo a orquestração do engenheiro e adicionando roteamento e armazenamento de mensagens inteligentes que podemos usar com as aplicações.
- A plataforma de service fabric tem um armazenamento de estado persistente na memória, altamente disponível e de baixa latência. Podemos usar este repositório por meio de estruturas de dados programáticos (Dicionário e Filas) ou como discos de volume anexados.
Em 2018, o Azure lançou uma prévia do Service Fabric Mesh, uma plataforma voltada para desenvolvedores de microservices que não desejam a responsabilidade operacional de executar uma plataforma de orquestração subjacente. O InfoQ conversou com Chacko Daniel, Gerente de Programas Técnicos da Microsoft e proprietário dos serviços Fabric Azure Cluster e do Azure Service Fabric Mesh, e discutiu como esta oferta se relaciona com Plataform as a Service (PaaS) e Container-infrastructure as a Service (CIaaS) como o Cloud Foundry e o Kubernetes.
InfoQ: Bem vindo ao InfoQ! Poderia se apresentar brevemente, por favor?
Chacko: Sou Chacko Daniel, gerente de programas da equipe de computação de hiperescala do Microsoft Azure. Tenho participado da equipe do Azure Service Fabric nos últimos dez anos. Sou o dono da plataforma e da execução de dois dos nossos Serviços do Azure - o Service Fabric Clusters e o Service Fabric Mesh.
InfoQ: Poderia explicar aos leitores que não estão familiarizados com as tecnologias de nuvem o que é o Azure Service Fabric?
Chacko: O Azure Service Fabric é uma plataforma de computação distribuída que facilita a criação, a implantação e a operação de aplicativos de microservices sempre ativos e de missão crítica (conteinerizados e não conteinerizados). Os desenvolvedores se concentram na criação de microservices e a plataforma de serviços resolve os problemas difíceis, como o gerenciamento do ciclo de vida, a orquestração, a disponibilidade e a escalabilidade dos aplicativos.
A plataforma também possui um armazenamento de estado da memória com persistência altamente disponível e de baixa latência. Os desenvolvedores podem usar esse armazenamento por meio de estruturas de dados programáticos (Dicionário e Filas) ou como disco de volume anexado para construir microservices com estado.
O Azure Service Fabric tem código aberto e é executado no Windows e no Linux, e podemos usá-lo localmente ou na nuvem. É uma ótima solução híbrida que pode oferecer suporte a aplicativos "nativos da nuvem" exigentes.
O Service Fabric do Azure tem três ofertas públicas: o serviço de cluster do Azure do Service Fabric, o Service Fabric Standalone e o serviço do Azure Service Fabric Mesh.
O Service Fabric não é usado apenas por serviços Microsoft em grande escala, como o Azure SQL DB, o Intune, o Azure Cosmos DB, o Azure Event Hubs e o Bing, mas também em milhares de clientes corporativos, como Citrix Systems, Alaska Airlines, Honeywell, BMW e Societe Generale, bem como SIs (System Integrators) e ISVs (Independent Software Vendors), como o Accenture e o OSISoft.
InfoQ: Como o Azure Service Fabric Mesh difere do Azure Service Fabric Clusters?
Chacko: Temos duas ofertas de malha de serviço no Azure - o Service Fabric Clusters e o Service Fabric Mesh (na visualização) para implantar e gerenciar aplicativos no Azure.
O Service Fabric Cluster fornece um cluster confiável e escalonável de VMs que executam o tempo de execução da malha de serviço no qual você implementa e gerencia seus aplicativos/serviços (conteinerizados ou não) por meio de um terminal de cluster altamente disponível. O tempo de execução da malha de serviço toma as decisões de canais de serviço com base na integração que ele tem com a infraestrutura Azure subjacente, tornando-as confiáveis.
Ao usar os clusters do Azure Service Fabric, é preciso acessar o administrador não apenas do cluster, mas também das VMs que compõem o cluster. Você escolhe os SKUs da VM para atender às suas necessidades, decide sobre as regras de segurança de rede e as regras de escala automática pelas quais deseja dimensionar o cluster. E também pode configurar atualizações automáticas do tempo de execução da malha de serviço e do sistema operacional da VM. Com esta oferta, estará pagando somente os recursos de VMs, Armazenamento e Rede que utiliza, o tempo de execução de malha de serviço é efetivamente gratuito. É ótimo para clientes/ISVs que desejam controle total da infraestrutura.
O Azure Service Fabric Mesh está atualmente em pré-visualização e é um serviço totalmente gerenciado que permite criar, implantar e gerenciar aplicativos que consistem em serviços poliglotas (por exemplo, qualquer idioma, sistema operacional) em containers sem servidor. O desenvolvedor apenas especifica os recursos que seu aplicativo/serviço precisa, como o número de containers, seus tamanhos, as propriedades de rede, as regras de autoescala etc., e o sistema cuida do provisionamento e do gerenciamento da infraestrutura necessária. Essa abordagem permite que o desenvolvedor se concentre apenas no aplicativo / serviço e não na infraestrutura.
O Service Fabric Mesh também fornece roteamento inteligente de mensagens por meio de recursos de rede definida por software (SDN) (desenvolvidos no Envoy Proxy), facilitando a descoberta de serviços e o roteamento entre microservices. Na próxima atualização de visualização, planejamos habilitar outros recursos SDN, como disjuntores, tentativas, terminação SSL, implantações azuis/verdes e segurança simplificada com identidades de serviço gerenciado. Aqui você seria capaz de usar os recursos de stateful fornecidos pela malha de serviço que eu mencionei anteriormente também. Aqui está um vídeo de 2 minutos no Service Fabric Mesh que resume algumas dessas informações.
InfoQ: Como o Azure Service Fabric Mesh se relaciona às tecnologias que os leitores podem estar familiarizados, como o Cloud Foundry, o Kubernetes ou o Docker (configurado por meio do Docker Compose)?
Chacko: Todas essas tecnologias são semelhantes, pois orquestram ou implantam containers. O Azure oferece suporte a todas as plataformas mencionadas, para que possa usar sua pilha de tecnologias preferida.
Assim como nas outras ofertas de malha de serviços, continuamos com nosso foco principal em ser uma plataforma de aplicativos: primeiro abstraindo a orquestração de containers necessária e adicionando roteamento e armazenamento de mensagens inteligentes, que podem ser usadas com seus aplicativos. Você implanta e gerencia seu aplicativo com um conjunto de políticas declarativas como: a capacidade de processamento, a rede necessária, o dimensionamento, o roteamento de mensagens, a gerência de certificados. Dessa forma, a plataforma não apenas orquestra os containers, mas também cuida do gerenciamento da infraestrutura e o executa.
Ao usar o Service Fabric Mesh, a menos que revise os logs da plataforma, você nem saberia que o Service Fabric é a plataforma subjacente que alimenta o serviço, assim como você não saberia se o Service Fabric é usado em bancos de dados do Azure e outros serviços. Ele libera os desenvolvedores de pensar em orquestradores e outros serviços de gerenciamento de baixo nível.
InfoQ: Você pode falar sobre a escalabilidade da plataforma do Service Fabric?
Chacko: Embora executemos uma grande quantidade de testes internos para estressar o serviço, usando cargas de trabalho sintéticas, deixe-me fornecer uma resposta baseada em evidências. A plataforma Service Fabric é usada pela maioria dos serviços populares do Azure, como o Cosmos DB, o IOT Hub, o Event Hub, o Azure SQL DB, o Intune e o Event Grid. Cada transação SQLDB do Azure é uma operação replicada no Service Fabric e há muitos milhões de DBs SQL no Azure. Cada gravação do CosmosDB também é uma operação replicada semelhante, e o EventHub usa então o Service Fabric, processando 2 trilhões de mensagens diariamente, e assim por diante. É improvável que a maioria das pessoas/empresas precise de uma escala que exceda a desses grandes serviços que usam milhões de núcleos no Azure.
Não apenas a plataforma é altamente escalonável, mas também oferece suporte a atualizações contínuas de aplicativos sem downtime, segurança, monitoramento de integridade interno, capacidade de fazer clusters geograficamente expandidos e muito mais. Aqui está um vídeo de uma palestra que Mark Russinovich, o CTO do Azure, que apresentou a escala de Service Fabric e a velocidade de implantação. Ele implantou e executou um milhão de containers em um cluster Linux de 3500 nós em menos de dois minutos.
O Service Fabric é uma tecnologia que é testada no campo de batalha todos os dias.
InfoQ: Malhas de serviço são atualmente um tópico emergente? A nomenclatura é um pouco semelhante e, portanto, como o Azure Service Fabric Mesh se relaciona com as tecnologias de malha de serviço, como Linkerd, Istio e Cilium?
Chacko: Malhas de serviço são todas relacionadas à conexão de serviços e ativação de ativos de rede, incluindo a descoberta de serviço e a comunicação de um serviço a outro de maneira rápida, segura e confiável. Linkerd, Envoy, Cilium são proxies de rede que podem ser implantados como uma malha de serviço no topo de um orquestrador como o Kubernetes ou o Service Fabric. Projetos como o Istio permitem conectar, proteger, controlar e observar serviços, além de fornecer recursos de rede da camada 7 (L7) usando o Envoy.
O Azure Service Fabric Mesh também permite conectar, implantar, proteger e gerenciar serviços, e usa o Envoy sob o capô para fornecer recursos do L7 para containers Windows e Linux. No entanto, é mais do que apenas uma malha de serviços - é uma plataforma de aplicativos para criar, implantar, dimensionar e operar seus aplicativos baseados em microservices.
InfoQ: A plataforma do Azure oferece uma variedade de opções de implantação - qual é o caso de uso principal do Azure Service Fabric Mesh e por que devo optar por criar e implantar nele do que outra oferta do Azure, como o AKS ou o Azure Functions?
Chacko: O Azure oferece várias opções de computação para atender a diferentes casos de uso do cliente. No final das contas, queremos que os clientes sejam bem-sucedidos com seus recursos preferidos, arquitetura e/ou investimentos existentes.
Se estiver procurando por uma experiência de computação sem servidor para cenários orientados a eventos, o Azure Functions seria o nosso caminho recomendado, dado seu modelo de programação (baseado em gatilhos para responder a atividades em outros serviços e ligações para se conectar facilmente a diferentes serviços).
Da mesma forma, se estiver vindo do ecossistema Linux e estiver criando aplicativos em container, você usaria o Serviço Azure Kubernetes (AKS). Em uma nota relacionada, também encontramos clientes que usam o Red Hat Linux migrando para o OpenShift no Azure.
Se deseja Windows/.Net ou microservices, o Service Fabric é uma ótima opção, e o Service Fabric Mesh fornece o recurso totalmente gerenciado sem servidor que permite implantar qualquer carga de trabalho em container Linux ou Windows no Azure. Embora o Service Fabric possa ser usado como um orquestrador de containers, seu ponto ideal reside em seu modelo de programação e é projetado especificamente para construir, implementar e operar aplicativos de microservices em escala no Azure.
Estamos em preview com o Azure Service Fabric Mesh desde julho de 2018 e estamos vendo os clientes aproveitarem essa oferta "sem servidor" para modernizar, elevar e deslocar seus aplicativos atuais (Windows ou Linux) para o Azure, ou ainda implantar novos aplicativos poliglotas para o Azure.
InfoQ: Muito obrigado por dedicar seu tempo para falar conosco hoje. Há mais alguma coisa que gostaria de compartilhar com os leitores do InfoQ?
Chacko: Obrigado pela oportunidade de compartilhar detalhes sobre o que a nossa equipe está trabalhando. A jornada do Service Fabric Mesh acabou de começar, mas precisamos da sua ajuda. Por favor, experimente o preview do Service Fabric Mesh e forneça feedback.
Você pode compartilhar seus pensamentos, perguntas e comentários conosco aqui. Além disso, sinta-se à vontade para twittar @chackod, se tiver uma pergunta que queira que eu responda.
Sobre o Autor
Chacko Daniel is a product leader with a proven track record of product /service development building enterprise-grade distributed computing platform and services. He currently works as Principal Technical PM at Microsoft and is the platform runtime and service owner of two Azure Services - Service Fabric Azure Cluster service and Azure Service Fabric Mesh service.