Pular para o conteúdo principal

Service Deployment Platform

Descrição​

O padrão propõe usar uma plataforma de implantação, isto é, uma infraestrutura automatizada para implantar aplicações. A plataforma oferece uma abstração de serviço: um grupo nomeado de instâncias altamente disponíveis, normalmente com balanceamento de carga.

Em vez de gerenciar manualmente hosts, VMs ou contêineres, a equipe descreve o serviço desejado e a plataforma cuida do posicionamento, da escala, da recuperação de falhas e da exposição das instâncias. Exemplos incluem orquestradores de contêineres como Kubernetes e plataformas PaaS.

Problemas que resolve​

  • Esforço de implantar e operar manualmente muitas instâncias de muitos serviços.
  • Necessidade de implantação e escala independentes por serviço.
  • Isolamento, limites de CPU e memória e monitoramento de cada instância.
  • Implantação confiável e econômica.

Quando usar​

  • Quando há muitos serviços e instâncias a operar.
  • Quando se quer automatizar implantação, escala, recuperação e balanceamento.
  • Quando se busca padronizar a forma de implantar entre equipes.

Quando evitar​

  • Quando há poucos serviços e a sobrecarga de operar ou aprender a plataforma não compensa.
  • Quando a plataforma não atende a requisitos específicos de rede, conformidade ou latência.

Trade-offs​

GanhoCusto / Risco
Automação de implantação, escala e recuperaçãoComplexidade e curva de aprendizado da plataforma
Abstração de serviço com balanceamento e alta disponibilidadeDependência da plataforma escolhida
Padronização entre serviçosCusto de operar ou contratar a plataforma
Menos trabalho manual de infraestruturaMenos controle sobre detalhes de baixo nível
  • Algumas plataformas já incluem registro e descoberta de serviços.

Diagrama​

A equipe declara o serviço e a plataforma mantém as instâncias em execução e balanceadas.

Padrões relacionados​

Referência​