Padrões de desempenho e EscalabilidadePerformance and Scalability patterns

O desempenho é uma indicação da capacidade de resposta de um sistema para executar qualquer ação dentro de um determinado intervalo, enquanto a escalabilidade é a capacidade de um sistema de lidar com o aumento de carga sem impacto no desempenho, fazendo com que os recursos disponíveis sejam prontamente aumentados.Performance is an indication of the responsiveness of a system to execute any action within a given time interval, while scalability is ability of a system either to handle increases in load without impact on performance or for the available resources to be readily increased. Aplicativos de nuvem normalmente encontram cargas de trabalho variável e picos na atividade.Cloud applications typically encounter variable workloads and peaks in activity. Prever esses picos, especialmente em um cenário de multilocatário, é quase impossível.Predicting these, especially in a multi-tenant scenario, is almost impossible. Em vez disso, os aplicativos devem ser capazes de expansão dentro dos limites para atender aos picos de demanda, e de redução de recursos quando a demanda diminui.Instead, applications should be able to scale out within limits to meet peaks in demand, and scale in when demand decreases. Os problemas de escalabilidade de computação atingem não apenas instâncias, mas outros elementos, como o armazenamento de dados, infraestrutura de mensagens e muito mais.Scalability concerns not just compute instances, but other elements such as data storage, messaging infrastructure, and more.

PadrãoPattern ResumoSummary
Cache-AsideCache-Aside Carregar dados sob demanda em um cache de um armazenamento de dados.Load data on demand into a cache from a data store
CoreografiaChoreography Fazer com que cada componente do sistema participe do processo de tomada de decisão sobre o fluxo de trabalho de uma transação comercial, em vez de depender de um ponto central de controle.Have each component of the system participate in the decision-making process about the workflow of a business transaction, instead of relying on a central point of control.
CQRSCQRS Separar as operações que leem dados de operações que atualizam dados usando interfaces separadas.Segregate operations that read data from operations that update data by using separate interfaces.
Fornecimento de EventoEvent Sourcing Use um repositório somente de acréscimo para registrar a série inteira de eventos que descrevem as ações realizadas nos dados em um domínio.Use an append-only store to record the full series of events that describe actions taken on data in a domain.
GeodesGeodes Implante serviços de back-end em um conjunto de nós geográficos, cada um dos quais pode atender a qualquer solicitação do cliente em qualquer região.Deploy backend services into a set of geographical nodes, each of which can service any client request in any region.
Tabela de ÍndiceIndex Table Crie índices nos campos em armazenamentos de dados que são frequentemente referenciados por consultas.Create indexes over the fields in data stores that are frequently referenced by queries.
Visualização materializadaMaterialized View Gere exibições pré-preenchidas nos dados em um ou mais armazenamentos de dados quando os dados não estiverem formatados como o ideal para as operações de consulta necessárias.Generate prepopulated views over the data in one or more data stores when the data isn't ideally formatted for required query operations.
Fila de PrioridadePriority Queue Priorize as solicitações enviadas a serviços para que as solicitações com uma prioridade mais alta sejam recebidas e processadas mais rapidamente do que aquelas com uma prioridade mais baixa.Prioritize requests sent to services so that requests with a higher priority are received and processed more quickly than those with a lower priority.
Nivelamento de Carga Baseado em FilaQueue-Based Load Leveling Use uma fila que funcione como um buffer entre uma tarefa e um serviço que ela invoca para simplificar cargas pesadas intermitentes.Use a queue that acts as a buffer between a task and a service that it invokes in order to smooth intermittent heavy loads.
FragmentaçãoSharding Divida um armazenamento de dados em um conjunto de partições horizontais ou fragmentos.Divide a data store into a set of horizontal partitions or shards.
Hospedagem de Conteúdo EstáticoStatic Content Hosting Implante conteúdo estático em um serviço de armazenamento baseado em nuvem que pode enviá-lo diretamente para o cliente.Deploy static content to a cloud-based storage service that can deliver them directly to the client.
LimitaçãoThrottling Controle o consumo de recursos usados por uma instância de um aplicativo, um locatário individual ou todo o serviço.Control the consumption of resources used by an instance of an application, an individual tenant, or an entire service.