Aracılığıyla paylaş


Veritabanları için en iyi FinOps yöntemleri

Bu makalede, veritabanı hizmetleri için kanıtlanmış FinOps uygulamalarının bir koleksiyonu özetlenmektedir. Veritabanı kaynaklarınız hakkında içgörüler elde etmek için maliyetleri iyileştirmeye, verimliliği artırmaya ve Azure Kaynak Grafı (ARG) sorgularını kullanmaya yönelik stratejiler sağlar. Bu uygulamaları izleyerek veritabanı hizmetlerinizin uygun maliyetli olduğundan ve kuruluşunuzun finansal hedefleriyle uyumlu olduğundan emin olabilirsiniz.


Cosmos DB veritabanı hizmeti

Aşağıdaki bölümlerde Cosmos DB için ARG sorguları sağlanmaktadır. Bu sorgular Cosmos DB hesaplarınızla ilgili içgörüler elde etmenize ve bunların uygun İstek Birimleri (RU) ile yapılandırıldığından emin olmanıza yardımcı olur. Azure Danışmanı'ndan gelen önerileri ortaya çıkartarak ve kullanım modellerini analiz ederek RU'ları maliyet verimliliği için optimize edebilirsiniz.

Sorgu: Cosmos DB istek birimlerini onaylayın

Bu ARG sorgusu, uygun RU'larla yapılandırıldığından emin olmak için Azure ortamınızdaki Cosmos DB hesaplarını analiz eder.

Açıklama

Bu sorgu, kullanım desenlerine göre RU'larını iyileştirmeye yönelik öneriler içeren Cosmos DB hesaplarını tanımlar. Azure Danışmanı'nın RU'ları maliyet verimliliği için ayarlamaya yönelik önerilerini ortaya çıkarmaktadır.

Kategori

İyileştirme

Sorgu

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

Sorgu: Başka bir aktarım hızı moduna geçmenin fayda sağlayacağı Cosmos DB koleksiyonları

Bu ARG sorgusu, Azure Danışmanı önerilerine göre aktarım hızı modunu değiştirmenin fayda sağlayacağı Cosmos DB koleksiyonlarını Azure ortamınızda tanımlar.

Açıklama

Bu sorgu, performansı ve maliyeti iyileştirmek için geçiş modunu (örneğin, manuelden otomatik ölçeklemeye veya tam tersi) değiştirme önerilerine sahip Cosmos DB koleksiyonlarını belirler. Olası iyileştirmeleri vurgulamak için Azure Danışmanı önerilerini kullanır.

Kategori

İyileştirme

Avantajlar

  • Maliyet iyileştirme: Kullanım desenlerine ve önerilerine göre daha uygun bir aktarım hızı moduna geçerek maliyet tasarrufu sağlayan Cosmos DB koleksiyonlarını tanımlar.
  • Performans yönetimi: Cosmos DB koleksiyonlarının en iyi aktarım hızı modunu kullanarak performansı geliştirmesini ve aşırı sağlama veya yetersiz sağlamayı önlemesini sağlar.

Sorgu

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

Sorgu: Cosmos DB yedekleme modu ayrıntıları

Bu ARG sorgusu, 'Düzenli' yedekleme ilkesini kullanan ve birden çok yazma konumu etkin olmayan Cosmos DB hesaplarını analiz eder.

Kategori

İyileştirme

Sorgu

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

SQL Veritabanları

Aşağıdaki bölümlerde SQL Veritabanı için ARG sorguları sağlanmaktadır. Bu sorgular boşta, eski, geliştirme aşamasında veya test amacıyla kullanılabilecek SQL veritabanlarını belirlemenize yardımcı olur. Bu veritabanlarını analiz ederek az kullanılan kaynakları devreden çıkararak ya da yeniden kullanarak maliyetleri optimize edebilir ve verimliliği artırabilirsiniz.

Sorgu: SQL DB boşta

Bu ARG sorgusu eski, geliştirme aşamasında veya test amacıyla kullanılabileceğini belirten adlara sahip SQL veritabanlarını tanımlar.

Kategori

İyileştirme

Sorgu

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

Sorgu: Kullanılmayan Elastik Havuzlar analizi

Bu ARG sorgusu, her elastik havuzla ilişkili veritabanı sayısını analiz ederek Azure SQL ortamınızda boşta olabilecek Elastik Havuzları tanımlar.

Kategori

İyileştirme

Sorgu

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

Görüş bildirin

Hızlı bir incelemeyle nasıl olduğumuzu bize bildirin. Bu incelemeleri FinOps araçlarını ve kaynaklarını geliştirmek ve genişletmek için kullanırız.

Belirli bir şey arıyorsanız mevcut bir fikir için oy verin veya yeni bir fikir oluşturun. Daha fazla oy almak için başkalarıyla fikir paylaşın. En çok oyu alan fikirlere odaklanıyoruz.


İlgili kaynaklar:

İlgili çözümler: