İlk bölümde App Service Plan üzerinde mesai saati sonrası SKU değerini F1’e (ve başlangıcında da eski haline) scale edecek bir pipeline hazırlamıştım. Bu bölümde de benzer mantıkta Azure SQL Elastic Pool üzerinde bir çalışma yapacağım. Pipeline olarak çok bir değişiklik olmasa da script tarafında biraz daha detaylı bir çalışma yapmam gerekecek. Bunun sebebi ise DTU değerini değiştirirken resource limitler uygun şekilde max storage size değerini de uygun oranda değiştirmem gerekiyor.
Öncelikle parametre tanımları ile başlıyorum. Kullanacağım az sql elastic-pool update komutu için resourceGroup, server, poolName, dtu ve az önce bahsettiğim maxSize değerlerine ihtiyacım var. Service Tier için değerleri Basic ve Standard ile, DTU için de 50, 100 ve 200 ile sınırlandırıyorum. Burada belirttiğim limitleri kendi ihtiyaçlarınıza göre düzenleyebilirsiniz.
Resim-1
İlk paragrafta bahsettiğim max size değerini hesaplamak için ise Resim-2‘de göreceğiniz fonksiyonlardan yararlanacağım. Get-MaxSize fonksiyonunda service tier değerine göre Get-BasicTierMaxSize ve Get-StandardTierMaxSize fonksiyonları ile bu fonksiyonlarda da ilgili tier’a ait uygun max size değerini dönen 2 fonksiyon daha yer alıyor.
Bu değerlerle ilgili tablolara buradan ulaşabilirsiniz.
Resim-2
Son olarak azure-pipeline.yml dosyasını da Resim-3‘te göreceğiniz şekilde hazırlıyorum.
Resim-3
NOT: Kaynak kodlara buradan ulaşabilirsiniz.
Pipeline oluşturma ve trigger ayarları ilk bölüm ile aynı olduğu için tekrar o kısımlardan bahsetmeyeceğim. Son olarak da az sql elastic-pool update komutuna ilgili parametreleri geçerek çalıştırıyorum.
Resim-4
App Service Plan, Elastic Pool gibi örnekleri çoğaltabiliriz. Özellikle development için kullanılan subscription’larda karşımıza çıkan gereksiz resource tüketimlerini az da olsa bu gibi yöntemlerle azaltmak mümkün.
Referanslar
Azure Pipelines documentation – Azure DevOps | Microsoft Learn
az sql elastic-pool | Microsoft Learn
DTU resource limits elastic pools – Azure SQL Database | Microsoft Learn
GitHub – mertyeter/azure-resource-scaler
TAGs: Azure, Azure DevOps, Azure Pipelines, Azure Repos, Azure CLI, Az CLI, PowerShell, Scale up, Azure SQL Elastic Pool, Elastic Pool, DTU