Microsoft Azure
Juan José Díaz Antuña Lead of Cloud Solutions

Azure Advisor: Boas práticas para implementações do Microsoft Azure

Microsoft Azure Advisor é um serviço gratuito que nos ajuda a seguir boas práticas e recomendações de otimização das nossas implementações Microsoft Azure, não só de desenho ou desempenho, mas também de segurança e custos. Especificamente, o Advisor permite-nos:

  • Receber recomendações personalizadas e melhores práticas que sejam processáveis e proativas.
  • Encontrar formas de reduzir os custos relacionados com as subscrições do serviço Azure.
  • Melhorar o desempenho, a segurança e a disponibilidade dos recursos utilizados.

As recomendações do Azure Advisor enquadram-se nas seguintes 5 categorias:

Custo

Mostra recomendações que nos permitem reduzir os custos associados aos nossos serviços. O conjunto de diretivas que se aplicam são:

  • Otimizar o uso da máquina virtual redimensionando ou encerrando as instâncias subutilizadas
  • Reduzir os custos através da eliminação dos circuitos ExpressRoute não aprovisionados
  • Reduzir os custos através da eliminação ou reconfiguração das gateways de redes virtuais inativas
  • Comprar instâncias de máquinas virtuais reservadas para poupar dinheiro em custos de payas-you-go
  • Eliminar endereços IP públicos não associados para poupar dinheiro
  • Eliminar as pipelines de Azure Data Factory que falham
  • Utilizar snapshots padrão para discos geridos
  • Utilizar a gestão do ciclo de vida
  • Criar uma recomendação de disco de SO efémero

Como exemplo:

O Azure Advisor considera desligar as máquinas virtuais quando todas estas condições são cumpridas:

  • O percentil 95 do valor máximo de utilização do CPU é inferior a 3%.
  • A utilização da rede é inferior a 2% ao longo de um período de sete dias.
  • A pressão da memória é inferior aos valores limiares.

O Azure Advisor tem em conta o redimensionamento das máquinas virtuais quando é possível ajustar a carga atual num SKU mais pequeno (dentro da mesma família de SKU) ou num número menor de instâncias, de forma que:

  • A carga atual não exceda 80% de utilização para cargas de trabalho não direcionadas para o utilizador.
  • A carga não exceda 40 % de utilização para cargas de trabalho orientadas para o utilizador.

De forma adicional à recomendação temos o plano de ação. Ao selecionar Quickfix é revelado um conjunto de recomendações que podemos executar de forma rápida, selecionando o serviço e clicando em Quickfix.

 

Segurança

Mostra recomendações de segurança ao detetar ameaças e vulnerabilidades de segurança nos serviços instalados. O Advisor conecta-se ao Security Center para mostrar as recomendações de segurança. O Security Center proporciona as regras através das quais o Advisor se rege para mostrar os seus avisos.

Podemos selecionar uma das recomendações para ver os detalhes e passos a seguir para corrigir a possível incidência ou seguir a recomendação.

Um dos pontos que me parece mais interessante é que nos mostra o Query de Azure Resource Graph e a diretiva aplicada, o qual podemos utilizar no nosso dia-a-dia.

 

Confiabilidade ou elevada disponibilidade

Mostra recomendações para assegurar a elevada disponibilidade das aplicações da organização.

As recomendações, tal como as anteriores, dependem do serviço Azure instalado. No exemplo seguinte, apresentamos recomendações sobre o nosso armazenamento.

Outro exemplo em que o Advisor nos ajuda é quando temos um serviço web na App Service. O Advisor, em termos de disponibilidade, recomendar-nos-á que coloquemos um serviço de Traffic Manager para garantir a disponibilidade do site entre 2 ou mais serviços de aplicações. Algumas das regras que são avaliadas dentro do Advisor são:

  • Garantir a tolerância a falhas da máquina virtual
  • Garantir a disponibilidade, estabelecer a tolerância a falhas
  • Utilizar Managed Disks para melhorar a confiabilidade dos dados
  • Problema conhecido com a versão da imagem de Check Point Network Virtual Appliance
  • Garantir a tolerância a falhas na gateway das aplicações
  • Proteger os dados da sua máquina virtual contra eliminação acidental
  • Criar alertas de status do serviço Azure para receber notificações quando os problemas Azure o afetam
  • Configurar endpoints do Traffic Manager para resiliência
  • Utilizar a eliminação temporária na sua conta de Azure Storage para guardar e recuperar dados após uma sobrescrita ou eliminação acidental
  • Configurar a sua gateway VPN para activeactive para a resiliência da conexão
  • Utilizar as gateways VPN de produção para gerir as suas cargas de trabalho de produção
  • Reparar regras de alerta de registo não válidas
  • Configure o modo de indexação coerente na sua coleção Cosmos DB
  • Configure os seus contentores do Azure Cosmos DB com uma chave de partição
  • Atualize o seu SDK.NET do Azure Cosmos DB para a versão mais recente do Nuget
  • Atualize o seu SDK do Azure Cosmos DB Java para a versão mais recente do Maven
  • Atualize o seu conector do Azure Cosmos DB Spark para a versão mais recente da Maven
  • Permitir a replicação de máquinas virtuais

 

Desempenho 

Mostra alertas e recomendações de desempenho dos serviços.  O desempenho resume-se a mais do que apenas CPU, memória, IOPS ou rede. Precisamos de ter em conta todas as métricas e elementos de configuração que possam prejudicar a experiência do utilizador final.

As verificações de desempenho consistem nas seguintes regras:

  •  
  • Reduzir o tempo de vida do DNS no seu perfil de Traffic Manager para trocar mais rapidamente os endpoints que estão a falhar por endpoints em bom estado
  • Melhorar o desempenho da base de dados com o SQL DB Advisor
  • Atualizar a sua Storage Client Library para a versão mais recente para uma melhor confiabilidade e desempenho
  • Melhorar o desempenho e a confiabilidade da App Service
  • Utilize Managed Disks para evitar a limitação de E/S do disco
  • Melhorar o desempenho e a confiabilidade dos discos de máquinas virtuais, através do uso de Premium Storage
  • Eliminar o estrangulamento no seu SQL Data Warehouse para melhorar o desempenho das consultas
  • Criar ou atualizar estatísticas de tabelas obsoletas em SQL Data Warehouse para melhorar o desempenho das consultas
  • Dimensionar para otimizar a utilização da cache nas suas tabelas de SQL Data Warehouse para melhorar o desempenho das consultas
  • Converter as tabelas SQL Data Warehouse em tabelas replicadas para melhorar o desempenho das consultas
  • Migrar a sua conta de armazenamento para o Azure Resource Manager para obter todas as funcionalidades mais recentes do Azure
  • Desenhe as suas contas de armazenamento para evitar atingir o limite máximo de subscrição
  • Aumentar o tamanho do seu SKU da VNet Gateway para lidar com a elevada utilização de P2S
  • Aumentar o tamanho do seu SKU da VNet Gateway para lidar com a elevada utilização do CPU
  • Aumentar o batch size ao carregar para maximizar o desempenho da carga, a compressão de dados e o desempenho da consulta
  • Colocalizar a conta de armazenamento dentro da mesma região para minimizar a latência durante a carga
  • Detetada uma versão Kubernetes não suportada
  • Otimizar o desempenho dos seus servidores Azure MySQL, Azure PostgreSQL e Azure MariaDB
  • Corrija o consumo do CPU dos seus servidores Azure MySQL, Azure PostgreSQL e Azure MariaDB para evitar o estrangulamento do CPU
  • Reduza as limitações de memória nos seus servidores Azure MySQL, Azure PostgreSQL e Azure MariaDB ou mude para um SKU otimizado em termos de memória
  • Usar uma réplica de leitura do Azure MySQL ou Azure PostgreSQL para escalar as leituras para cargas de trabalho de leitura intensiva
  • Dimensionar o seu servidor Azure MySQL, Azure PostgreSQL ou Azure MariaDB para um SKU superior para evitar restrições de conexão
  • Dimensionar a sua cache para um tamanho ou SKU diferente para um melhor desempenho da cache e das aplicações
  • Adicionar regiões com tráfego à sua conta de Azure Cosmos DB
  • Configurar a sua política de indexação do Azure Cosmos DB com caminhos incluídos ou excluídos pelo cliente
  • Configure o tamanho da página de consulta do Azure Cosmos DB (MaxItemCount) para -1

 

Automatização

Uma das principais capacidades do Azure Advisor é a capacidade de agendar relatórios e criar alertas para notificar os principais utilizadores responsáveis pela infraestrutura alojada no Azure.

Para o fazer dentro do Advisor podemos ir à Recommendation Digest.

A partir daqui selecionamos a subscrição, a frequência, a categoria do Advisor e o grupo de ação para a notificação.

O Action Group é a parte interessante que também pode enviar um relatório por correio eletrónico ou por outros formatos tais como SMS, etc.

Também pode criar uma ação como a integração com um ITSM, um Runbook, Logic App, etc., o que nos permite chamar ações automáticas de correção.

Receberá e-mails como este, informando-o sobre o novo relatório.

Da mesma forma pode criar um alerta, embora neste caso esteja em modo Preview. Para o fazer, selecionamos Alerts – Create Alert.

E preenchemos o âmbito, as condições, o grupo de ação e o nome da regra.

Agora basta começar a utilizar o Advisor e torná-lo parte do modelo de responsabilidade partilhado das soluções Cloud.