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.