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ı

Azure SQL Veritabanı yükseltme, düzeltme eki uygulama, yedekleme ve izleme gibi çoğu veritabanı yönetim işlevini kullanıcı katılımı olmadan işleyen, tam olarak yönetilen bir hizmet olarak platform (PaaS) veritabanı altyapısıdır. Elastik Havuzlar, maliyeti iyileştirmek için kaynakları birden çok veritabanı arasında paylaşmanıza olanak sağlar.

İlgili kaynaklar:

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

Kullanılmayan Elastik Havuzları Kaldırma

Öneri: Gereksiz maliyetlerden kaçınmak için ilişkili veritabanı olmayan Elastik Havuzları kaldırın.

Kullanılmayan Elastik Havuzlar hakkında

SQL Elastik Havuzları, birden çok veritabanının ortak bir kaynak havuzunu paylaşmasına olanak sağlar. Bir Elastik Havuzun içinde veritabanı bulunmasa bile, yapılandırılmış eDTU’larına veya vCore sayılarına göre ücretlendirilmeye devam edilir. Boş Elastik Havuzların kaldırılması bu gereksiz maliyetleri ortadan kaldırır.

Note

FinOps hub'ları kullanılmayan Elastik Havuzları otomatik olarak tanımlayabilir. Daha fazla bilgi edinin.

Kullanılmayan Elastik Havuzları Tanımlama

İlişkili veritabanı olmayan Elastik Havuzları tanımlamak için aşağıdaki ARG sorgusunu kullanın.

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: