Pular para o conteúdo principal

Service Instance per Host

Descrição​

Cada instância de serviço é implantada em seu próprio host, que pode ser uma máquina física ou virtual. Nenhum outro serviço compartilha esse host, de modo que a instância pode consumir no máximo os recursos dele.

O padrão é um princípio geral de implantação e tem como refinamentos o uso de máquinas virtuais (Service Instance per VM) e de contêineres (Service Instance per Container).

Problemas que resolve​

  • Isolamento entre instâncias de serviços.
  • Conflitos de requisitos de recursos e de versões de dependências entre serviços.
  • Limitação do consumo de CPU e memória de cada instância.
  • Monitoramento, gerenciamento e reimplantação simples de cada instância.

Quando usar​

  • Quando serviços têm pilhas tecnológicas e dependências diferentes.
  • Quando isolamento e previsibilidade de recursos são prioritários.
  • Como base conceitual para VMs, contêineres ou plataformas de implantação.

Quando evitar​

  • Quando o custo de um host por instância é proibitivo.
  • Quando os serviços são muito pequenos e deixariam hosts subutilizados.

Trade-offs​

GanhoCusto / Risco
Isolamento total entre instânciasUso menos eficiente dos recursos
Sem conflito de dependências ou de recursosMais hosts para provisionar e pagar
Cada instância consome no máximo os recursos de um hostPossível subutilização do host
Monitoramento e reimplantação simplesMaior overhead de provisionamento, dependendo do tipo de host
  • A eficiência real depende do tipo de host: VMs e contêineres reduzem o desperdício.

Diagrama​

Cada instância de serviço ocupa um host exclusivo.

Padrões relacionados​

Referência​