Compartilhar via


Dimensionamento de contêineres e aplicativos sem servidor

Dica

Esse conteúdo é um trecho do eBook, Architecting Cloud Native .NET Applications for Azure, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

Miniatura de capa do eBook

Há duas maneiras de dimensionar um aplicativo: para cima ou para fora. A primeira refere-se à adição de capacidade a um único recurso, enquanto a última refere-se à adição de mais recursos para aumentar a capacidade.

A solução simples: escalar verticalmente

A atualização de um servidor host existente com maior CPU, memória, velocidade de E/S de disco e velocidade de E/S de rede é conhecida como escalonamento vertical. O dimensionamento de um aplicativo nativo de nuvem envolve a escolha de recursos mais capazes do fornecedor de nuvem. Por exemplo, você pode criar um novo pool de nós com VMs maiores no cluster do Kubernetes. Em seguida, migre seus serviços em contêineres para o novo pool.

Os aplicativos sem servidor escalam verticalmente ao escolher o plano Premium do Functions ou os tamanhos de instância Premium de um plano de serviço de aplicativo dedicado.

Dimensionamento de aplicativos nativos de nuvem

Os aplicativos nativos de nuvem geralmente experimentam grandes flutuações na demanda e precisam escalar rapidamente. Eles favorecem o dimensionamento. O dimensionamento é feito horizontalmente adicionando computadores adicionais (chamados de nós) ou instâncias de aplicativo a um cluster existente. No Kubernetes, você pode dimensionar manualmente ajustando as configurações do aplicativo (por exemplo, dimensionando um pool de nós) ou por meio do dimensionamento automático.

Os clusters do AKS podem dimensionar automaticamente de duas maneiras:

Primeiro, o Dimensionador Automático de Pod Horizontal monitora a demanda de recursos e dimensiona automaticamente suas réplicas de POD para atendê-la. Quando o tráfego aumenta, réplicas adicionais são provisionadas automaticamente para expandir seus serviços. Da mesma forma, quando a demanda diminui, elas são removidas para dimensionar seus serviços. Você define a métrica na qual dimensionar, por exemplo, o uso da CPU. Você também pode especificar o número mínimo e máximo de réplicas a serem executadas. O AKS monitora essa métrica e dimensiona adequadamente.

Em seguida, o recurso dimensionador automático de cluster do AKS permite dimensionar automaticamente nós de computação em um cluster do Kubernetes para atender à demanda. Com ele, você pode adicionar automaticamente novas VMs ao Conjunto de Dimensionamento de Máquinas Virtuais do Azure subjacente sempre que mais capacidade de computação for necessária. Ele também remove nós quando não é mais necessário.

A Figura 3-11 mostra a relação entre esses dois serviços de dimensionamento.

Escalonamento horizontal de um Plano de Serviço de Aplicativo.

Figura 3-11. Escalonamento horizontal de um Plano de Serviço de Aplicativo.

Trabalhando juntos, ambos asseguram um número ideal de instâncias de container e nós computacionais para suportar a demanda flutuante. O dimensionador automático do pod horizontal otimiza o número de pods necessários. O dimensionador automático de cluster otimiza o número de nós necessários.

Dimensionamento do Azure Functions

O Azure Functions automaticamente escala horizontal após a demanda. Os recursos do servidor são alocados e removidos dinamicamente com base no número de eventos disparados. Você só é cobrado pelos recursos de computação consumidos quando suas funções são executadas. A cobrança é baseada no número de execuções, tempo de execução e memória usados.

Embora o plano de consumo padrão forneça uma solução econômica e escalonável para a maioria dos aplicativos, a opção premium permite aos desenvolvedores flexibilidade para requisitos personalizados do Azure Functions. A atualização para o plano Premium fornece controle sobre tamanhos de instância, instâncias pré-aquecidas (para evitar atrasos de início frio) e VMs dedicadas.