Práticas recomendadas de FinOps para bancos de dados
Este artigo descreve uma coleção de práticas comprovadas de FinOps para serviços de banco de dados. Ele fornece estratégias para otimizar custos, melhorar a eficiência e usar consultas ARG (Azure Resource Graph) para obter insights sobre seus recursos de banco de dados. Seguindo essas práticas, você pode garantir que seus serviços de banco de dados sejam econômicos e alinhados com as metas financeiras de sua organização.
Cosmos DB
As seções a seguir fornecem consultas ARG para o Cosmos DB. Essas consultas ajudam você a obter insights sobre suas contas do Cosmos DB e garantir que elas estejam configuradas com as RUs (Unidades de Solicitação) apropriadas. Ao analisar os padrões de uso e exibir recomendações do Assistente do Azure, você pode otimizar as RUs para eficiência de custos.
Consulta: Confirmar unidades de solicitação do Cosmos DB
Essa consulta ARG analisa as contas do Cosmos DB em seu ambiente do Azure para garantir que elas estejam configuradas com as RUs apropriadas.
Descrição
Essa consulta identifica contas do Cosmos DB com recomendações para otimizar suas RUs com base em padrões de uso. Ele apresenta recomendações do Assistente do Azure para ajustar as RUs para eficiência de custos.
Categoria
Otimização
Consulta
advisorresources
| where type =~ 'microsoft.advisor/recommendations'
| where properties.impactedField == 'microsoft.documentdb/databaseaccounts'
and properties.recommendationTypeId == '8b993855-1b3f-4392-8860-6ed4f5afd8a7'
| order by id asc
| project
id, subscriptionId, resourceGroup,
CosmosDBAccountName = properties.extendedProperties.GlobalDatabaseAccountName,
DatabaseName = properties.extendedProperties.DatabaseName,
CollectionName = properties.extendedProperties.CollectionName,
EstimatedAnnualSavings = bin(toreal(properties.extendedProperties.annualSavingsAmount), 1),
SavingsCurrency = properties.extendedProperties.savingsCurrency
Consulta: coleções do Cosmos DB que se beneficiariam da alternância para outro modo de taxa de transferência
Essa consulta ARG identifica coleções do Cosmos DB em seu ambiente do Azure que se beneficiariam da alternância do modo de taxa de transferência, com base nas recomendações do Assistente do Azure.
Descrição
Essa consulta apresenta coleções do Cosmos DB que têm recomendações para alternar seu modo de taxa de transferência (por exemplo, de dimensionamento manual para automático ou vice-versa) para otimizar o desempenho e o custo. Ele usa as recomendações do Assistente do Azure para realçar possíveis melhorias.
Categoria
Otimização
Benefícios
- Otimização de custos: identifica coleções do Cosmos DB que podem economizar custos alternando para um modo de taxa de transferência mais apropriado com base em padrões de uso e recomendações.
- Gerenciamento de desempenho: garante que as coleções do Cosmos DB estejam usando o modo de taxa de transferência ideal, aprimorando o desempenho e evitando o provisionamento excessivo ou insuficiente.
Consulta
advisorresources
| where type =~ 'microsoft.advisor/recommendations'
| where properties.impactedField == 'microsoft.documentdb/databaseaccounts'
and properties.recommendationTypeId in (
' cdf51428-a41b-4735-ba23-39f3b7cde20c',
' 6aa7a0df-192f-4dfa-bd61-f43db4843e7d'
)
| order by id asc
| project
id, subscriptionId, resourceGroup,
CosmosDBAccountName = properties.extendedProperties.GlobalDatabaseAccountName,
DatabaseName = properties.extendedProperties.DatabaseName,
CollectionName = properties.extendedProperties.CollectionName,
EstimatedAnnualSavings = bin(toreal(properties.extendedProperties.annualSavingsAmount), 1),
SavingsCurrency = properties.extendedProperties.savingsCurrency
Consulta: Detalhes do modo de backup do Cosmos DB
Essa consulta ARG analisa contas do Cosmos DB que usam a política de backup 'Periódico' e não têm vários locais de gravação habilitados.
Categoria
Otimização
Consulta
resources
| where type == "microsoft.documentdb/databaseaccounts"
| where resourceGroup in ({ResourceGroup})
| where properties.backupPolicy.type == 'Periodic'
and tobool(properties.enableMultipleWriteLocations) == false
| extend BackupCopies = toreal(properties.backupPolicy.periodicModeProperties.backupRetentionIntervalInHours)
/ (toreal(properties.backupPolicy.periodicModeProperties.backupIntervalInMinutes) / real(60))
| where BackupCopies >= 10
or (BackupCopies > 2
and toint(properties.backupPolicy.periodicModeProperties.backupRetentionIntervalInHours) <= 168)
| order by id asc
| project id, CosmosDBAccountName=name, resourceGroup, subscriptionId, BackupCopies
Bancos de dados SQL
As seções a seguir fornecem consultas ARG para bancos de dados SQL. Essas consultas ajudam a identificar bancos de dados SQL que podem estar ociosos, antigos, em desenvolvimento ou usados para fins de teste. Ao analisar esses bancos de dados, você pode otimizar custos e melhorar a eficiência desativando ou redirecionando recursos subutilizados.
Consulta: Banco de dados SQL ocioso
Essa consulta ARG identifica bancos de dados SQL com nomes que indicam que eles podem ser antigos, em desenvolvimento ou usados para fins de teste.
Categoria
Otimização
Consulta
resources
| where type == "microsoft.sql/servers/databases"
| where name contains "old" or name contains "Dev"or name contains "test"
| where resourceGroup in ({ResourceGroup})
| extend SQLDBName = name, Type = sku.name, Tier = sku.tier, Location = location
| order by id asc
| project id, SQLDBName, Type, Tier, resourceGroup, Location, subscriptionId
Consulta: análise de Pools Elásticos Não Utilizados
Essa consulta ARG identifica pools elásticos potencialmente ociosos em seu ambiente SQL do Azure analisando o número de bancos de dados associados a cada pool elástico.
Categoria
Otimização
Consulta
resources
| where type == "microsoft.sql/servers/elasticpools"
| extend elasticPoolId = tolower(tostring(id))
| extend elasticPoolName = name
| extend elasticPoolRG = resourceGroup
| extend skuName = tostring(sku.name)
| extend skuTier = tostring(sku.tier)
| extend skuCapacity = tostring(sku.capacity)
| join kind=leftouter (
resources
| where type == "microsoft.sql/servers/databases"
| extend elasticPoolId = tolower(tostring(properties.elasticPoolId))
) on elasticPoolId
| summarize databaseCount = countif(isnotempty(elasticPoolId1)) by
elasticPoolId,
elasticPoolName,
serverResourceGroup = resourceGroup,
name,
skuName,
skuTier,
skuCapacity,
elasticPoolRG
| where databaseCount == 0
| project elasticPoolId,
elasticPoolName,
databaseCount,
elasticPoolRG,
skuName,
skuTier,
skuCapacity
Procurando mais?
Perdemos alguma coisa? Você gostaria de ver algo adicionado? Adoraríamos ouvir sobre quaisquer perguntas, problemas ou soluções que você gostaria de ver abordados aqui. Crie um novo problema com os detalhes que você gostaria de ver incluídos aqui.
Conteúdo relacionado
Recursos relacionados:
Soluções relacionadas:
- Relatórios do Power BI do kit de ferramentas FinOps
- Hubs FinOps
- Pastas de trabalho FinOps
- Mecanismo de otimização