Apresentando o Gestor de recursos de cluster do Service FabricIntroducing the Service Fabric cluster resource manager

Tradicionalmente, gerenciamento de sistemas de TI ou serviços online significava dedicar máquinas virtuais ou físicas específicas para esses serviços específicos ou sistemas.Traditionally managing IT systems or online services meant dedicating specific physical or virtual machines to those specific services or systems. Foram arquitetados como camadas de serviços.Services were architected as tiers. Deveria haver uma camada de "web" e uma camada de "dados" ou "armazenamento".There would be a “web” tier and a “data” or “storage” tier. Aplicativos teria uma camada de mensagens em que pedidos fluísse entrada e saída, bem como um conjunto de máquinas dedicadas a colocação em cache.Applications would have a messaging tier where requests flowed in and out, as well as a set of machines dedicated to caching. Cada camada ou o tipo de carga de trabalho tinha máquinas específicas dedicadas a ele: a base de dados tem duas máquinas dedicadas a ele, os servidores web alguns.Each tier or type of workload had specific machines dedicated to it: the database got a couple machines dedicated to it, the web servers a few. Se um determinado tipo de carga de trabalho causado máquinas era para executar muito quente, em seguida, adicionou mais máquinas com essa mesma configuração para essa camada.If a particular type of workload caused the machines it was on to run too hot, then you added more machines with that same configuration to that tier. No entanto, nem todas as cargas de trabalho podem ser dimensionadas tão facilmente – particularmente com a camada de dados, normalmente, poderia substituir máquinas com máquinas maiores.However, not all workloads could be scaled out so easily - particularly with the data tier you would typically replace machines with larger machines. Fácil.Easy. Se uma máquina falhou, essa parte do aplicativo global foi executada atingiu o limite inferior, até que a máquina pode ser restaurada.If a machine failed, that part of the overall application ran at lower capacity until the machine could be restored. Ainda assim relativamente fácil (se não necessariamente divertido).Still fairly easy (if not necessarily fun).

Agora no entanto o mundo da arquitetura de serviço e o software foi alterado.Now however the world of service and software architecture has changed. É mais comum que aplicativos ADOTARAM um design de escalamento horizontal.It's more common that applications have adopted a scale-out design. É comum a criação de aplicativos com microsserviços ou contentores (ou ambos).Building applications with containers or microservices (or both) is common. Agora, embora ainda possa ter apenas algumas máquinas, eles não estiverem apenas uma única instância de uma carga de trabalho.Now, while you may still have only a few machines, they're not running just a single instance of a workload. Eles poderão ainda estar em execução várias cargas de trabalho diferentes ao mesmo tempo.They may even be running multiple different workloads at the same time. Agora tem dezenas de diferentes tipos de serviços (nenhum valor de uma máquina completo de recursos de consumo), talvez centenas de diferentes instâncias desses serviços.You now have dozens of different types of services (none consuming a full machine's worth of resources), perhaps hundreds of different instances of those services. Cada instância nomeada tem um ou mais instâncias ou de réplicas para elevada disponibilidade (HA).Each named instance has one or more instances or replicas for High Availability (HA). Consoante os tamanhos dessas cargas de trabalho e o estado de disponibilidade são, talvez tenha com centenas ou milhares de máquinas.Depending on the sizes of those workloads, and how busy they are, you may find yourself with hundreds or thousands of machines.

Não é tão simples como gerir algumas máquinas dedicadas a únicos tipos de cargas de trabalho, de repente, gestão do seu ambiente.Suddenly managing your environment is not so simple as managing a few machines dedicated to single types of workloads. Os servidores são virtuais e deixará de ter nomes (tiver mudado mindsets partir animais de estimação cattle Afinal de contas).Your servers are virtual and no longer have names (you have switched mindsets from pets to cattle after all). A configuração é menos com as máquinas e muito mais sobre os serviços.Configuration is less about the machines and more about the services themselves. Hardware dedicado para uma única instância de uma carga de trabalho é basicamente uma coisa do passado.Hardware that is dedicated to a single instance of a workload is largely a thing of the past. Próprios serviços se tornaram pequenos sistemas distribuídos que abrangem várias partes menores de hardware do produto.Services themselves have become small distributed systems that span multiple smaller pieces of commodity hardware.

Uma vez que a aplicação já não é uma série de monolitos espalhadas em vários escalões, agora tem muitas combinações de mais de lidar com.Because your app is no longer a series of monoliths spread across several tiers, you now have many more combinations to deal with. Quem decide o que tipos de cargas de trabalho podem ser executados em qual hardware, ou quantos?Who decides what types of workloads can run on which hardware, or how many? Que cargas de trabalho funcionam bem no mesmo hardware, e que entram em conflito?Which workloads work well on the same hardware, and which conflict? Quando uma máquina fica para baixo como fazer sabe o que estava em execução lá nessa máquina?When a machine goes down how do you know what was running there on that machine? Quem é responsável por certificar-se de que essa carga de trabalho começa a ser executado novamente?Who is in charge of making sure that workload starts running again? Aguardar para a máquina (virtual)? voltar ou suas cargas de trabalho automaticamente a ativação pós-falha para outras máquinas e manter em execução?Do you wait for the (virtual?) machine to come back or do your workloads automatically fail over to other machines and keep running? É necessária intervenção humana necessária?Is human intervention required? E sobre as atualizações neste ambiente?What about upgrades in this environment?

Como os programadores e operadores lidar neste ambiente, vamos precisa de ajuda a gerenciar essa complexidade.As developers and operators dealing in this environment, we’re going to want help managing this complexity. Acabo de sair de contratação e a tentativa de ocultar a complexidade com pessoas provavelmente não é a resposta certa, então, o que fazemos?A hiring binge and trying to hide the complexity with people is probably not the right answer, so what do we do?

Introdução ao orquestradoresIntroducing orchestrators

Um "Orchestrator" é o termo geral para uma parte do software que ajuda a administradores que gerenciam esses tipos de ambientes.An “Orchestrator” is the general term for a piece of software that helps administrators manage these types of environments. Orquestradores são os componentes que faça pedidos, como "Eu gostaria de cinco cópias deste serviço em execução no meu ambiente."Orchestrators are the components that take in requests like “I would like five copies of this service running in my environment." Eles tentam fazer o ambiente com o mesmo estado pretendido, independentemente do que acontece.They try to make the environment match the desired state, no matter what happens.

Orquestradores (não humanos) são o que preciso ação quando ocorre uma falha de uma máquina ou uma carga de trabalho é encerrado por algum motivo inesperado.Orchestrators (not humans) are what take action when a machine fails or a workload terminates for some unexpected reason. A maioria dos orquestradores mais do que apenas tratam de falha.Most orchestrators do more than just deal with failure. Outros recursos que tenham estão a gerir novas Implantações, atualizações de manipulação e lidar com consumo de recursos e governação.Other features they have are managing new deployments, handling upgrades, and dealing with resource consumption and governance. Todos os orquestradores são fundamentalmente sobre como manter algum estado pretendido de configuração no ambiente.All orchestrators are fundamentally about maintaining some desired state of configuration in the environment. Quer ser capaz de dizer um orquestrador que pretende e tê-lo a fazer o trabalho pesado.You want to be able to tell an orchestrator what you want and have it do the heavy lifting. Aurora com base no Mesos, Docker Datacenter/Docker Swarm, Kubernetes e o Service Fabric são todos os exemplos de orquestradores.Aurora on top of Mesos, Docker Datacenter/Docker Swarm, Kubernetes, and Service Fabric are all examples of orchestrators. Estes orquestradores estão sendo desenvolvidos ativamente para satisfazer as necessidades das cargas de trabalho real em ambientes de produção.These orchestrators are being actively developed to meet the needs of real workloads in production environments.

Orquestração como um serviçoOrchestration as a service

O Gestor de recursos do Cluster é o componente de sistema que trata da orquestração no Service Fabric.The Cluster Resource Manager is the system component that handles orchestration in Service Fabric. Tarefa do Gestor de recursos de Cluster é dividida em três partes:The Cluster Resource Manager’s job is broken down into three parts:

  1. Imposição de regrasEnforcing Rules
  2. Otimizando seu ambienteOptimizing Your Environment
  3. Ajudando com outros processosHelping with Other Processes

O que não éWhat it isn’t

Em aplicativos de camada N tradicionais, há sempre uma Balanceador de carga.In traditional N tier applications, there's always a Load Balancer. Normalmente, esse era um balanceador de carga de rede (NLB) ou um balanceador de carga de aplicação (ALB) dependendo de onde Sentei na pilha da rede.Usually this was a Network Load Balancer (NLB) or an Application Load Balancer (ALB) depending on where it sat in the networking stack. Alguns balanceadores de carga são baseadas em Hardware como oferta de BigIP da F5, outras são baseados em software, como o Microsoft do NLB.Some load balancers are Hardware-based like F5’s BigIP offering, others are software-based such as Microsoft’s NLB. Em outros ambientes, pode ver algo como HAProxy, nginx, Istio ou o Envoy nesta função.In other environments, you might see something like HAProxy, nginx, Istio, or Envoy in this role. Estas arquiteturas, o trabalho de balanceamento de carga é Certifique-se de que as cargas de trabalho sem monitorização de estado (aproximadamente) recebem a mesma quantidade de trabalho.In these architectures, the job of load balancing is to ensure stateless workloads receive (roughly) the same amount of work. Estratégias para o balanceamento de carga variados.Strategies for balancing load varied. Alguns balanceadores enviaria cada chamada diferente para um servidor diferente.Some balancers would send each different call to a different server. Outras fornecidas afixar/persistência da sessão.Others provided session pinning/stickiness. Balanceadores de mais avançados utilizam estimativa da carga real ou de relatório para encaminhar uma chamada com base no respetivo custo esperado e a carga atual da máquina.More advanced balancers use actual load estimation or reporting to route a call based on its expected cost and current machine load.

Balanceadores de rede ou routers de mensagem tentaram Certifique-se de que a camada web/trabalho permaneceu equilibrada mais ou menos.Network balancers or message routers tried to ensure that the web/worker tier remained roughly balanced. Estratégias para o balanceamento de camada de dados eram diferentes e dependentes no mecanismo de armazenamento de dados.Strategies for balancing the data tier were different and depended on the data storage mechanism. A camada de dados de balanceamento dependia de fragmentação de dados, colocação em cache, geridas vistas, procedimentos armazenados e outros mecanismos de arquivo específico.Balancing the data tier relied on data sharding, caching, managed views, stored procedures, and other store-specific mechanisms.

Embora algumas dessas estratégias são interessantes, o Gestor de recursos de Cluster do Service Fabric não é nada como um balanceador de carga de rede ou de uma cache.While some of these strategies are interesting, the Service Fabric Cluster Resource Manager is not anything like a network load balancer or a cache. Faz o balanceamento de um balanceador de carga de rede de front-ends ao propagar o tráfego entre front-ends.A Network Load Balancer balances frontends by spreading traffic across frontends. O Gestor de recursos de Cluster do Service Fabric tem uma estratégia diferente.The Service Fabric Cluster Resource Manager has a different strategy. Fundamentalmente, o Service Fabric move serviços para onde faz mais sentido, esperando tráfego ou carregar a seguir.Fundamentally, Service Fabric moves services to where they make the most sense, expecting traffic or load to follow. Por exemplo, ele poderá mover serviços para nós que estão atualmente frio porque os serviços que existem não fazendo muito trabalho.For example, it might move services to nodes that are currently cold because the services that are there are not doing much work. Os nós podem ser frios, uma vez que os serviços que estavam presentes foram eliminados ou movidos em outro lugar.The nodes may be cold since the services that were present were deleted or moved elsewhere. Como outro exemplo, o Gestor de recursos de Cluster também pode transferir um serviço para fora de uma máquina.As another example, the Cluster Resource Manager could also move a service away from a machine. Talvez a máquina está prestes a ser atualizados, ou está sobrecarregado devido a um pico no consumo por serviços em execução no mesmo.Perhaps the machine is about to be upgraded, or is overloaded due to a spike in consumption by the services running on it. Em alternativa, podem ter aumentado os requisitos de recursos do serviço.Alternatively, the service's resource requirements may have increased. Como resultado não existem recursos suficientes neste computador para continuar a executá-lo.As a result there aren't sufficient resources on this machine to continue running it.

Uma vez que o Gestor de recursos do Cluster é responsável por transferência dos serviços em todo, contém um conjunto de funcionalidades diferentes em comparação comparado o que encontraria num Balanceador de carga de rede.Because the Cluster Resource Manager is responsible for moving services around, it contains a different feature set compared to what you would find in a network load balancer. Isso ocorre porque os balanceadores de carga de rede enviar tráfego de rede para onde serviços já estão, mesmo que essa localização não é ideal para executar o serviço em si.This is because network load balancers deliver network traffic to where services already are, even if that location is not ideal for running the service itself. O Gestor de recursos de Cluster do Service Fabric emprega fundamentalmente diferentes estratégias de garantir que os recursos do cluster são utilizados de forma eficiente.The Service Fabric Cluster Resource Manager employs fundamentally different strategies for ensuring that the resources in the cluster are efficiently utilized.

Passos SeguintesNext steps

  • Para obter informações sobre o fluxo de arquitetura e as informações no Gestor de recursos do Cluster, verifique neste artigoFor information on the architecture and information flow within the Cluster Resource Manager, check out this article
  • O Gestor de recursos do Cluster tem muitas opções para descrever o cluster.The Cluster Resource Manager has many options for describing the cluster. Para obter mais informações sobre as métricas, visite este artigo no descrever um cluster do Service FabricTo find out more about metrics, check out this article on describing a Service Fabric cluster
  • Para obter mais informações sobre como configurar os serviços, Saiba mais sobre a configuração de serviçosFor more information on configuring services, Learn about configuring Services
  • As métricas são como o Service Fabric Cluster Resource Manager gere o consumo e a capacidade do cluster.Metrics are how the Service Fabric Cluster Resource Manger manages consumption and capacity in the cluster. Para saber mais sobre métricas e como configurá-las check-out neste artigoTo learn more about metrics and how to configure them check out this article
  • O Gestor de recursos de Cluster funciona com capacidades de gestão do Service Fabric.The Cluster Resource Manager works with Service Fabric's management capabilities. Para obter mais informações sobre essa integração, leia neste artigoTo find out more about that integration, read this article
  • Para obter informações sobre como o Gestor de recursos de Cluster gere e faz o balanceamento de carga no cluster, consulte o artigo no balanceamento de cargaTo find out about how the Cluster Resource Manager manages and balances load in the cluster, check out the article on balancing load