Designing Azure Tags Nedir?
0

Azure’u müşterilerin sadece uygulamalarını oluşturup deploy ettikleri bir platform olarak düşünmemek gerekir. Azure bunun yanında müşterilerin yönetim ve önerilen konfigürasyonların entegre edilmesinden sorumlu oldukları bir ortamdır. Bu ortam konfigüre edilirken bir çok kişi bağlantı kurabilir. Bu sebeple bir çok insanın bağlantığı kurduğu bir ortamı önerilen şekilde yönetmek için bir governance modele ihtiyaç vardır.

Azure böyle bir modeli ortama entegre etmek için aşağıdaki servisleri sağlamaktadır;

– Azure Tags

– Azure RBAC

– Azure Policies

– Azure Locks

Bu makalemde Azure üzerindeki resource ve resource group’lar üzerinde taglama işleminin nasıl dizayn edileceğini ve nasıl yapılacağını anlatacağım. Zaten temel olarak Tag’lama işlemi oldukça basit bir işlem. Burda tasarlamanız gereken kısım tag’lama işlemini ne şekilde hangi kategori yapısında yapacağınızdır. Şimdi öncelikle Tag’lara ait temel bilgiler ile başlayalım, sonrasında basit tag konfigürasyonları ile ilerleyelim.

Tag Nedir? Ne İçin Kullanılır?

Azure üzerinde TAG’lar resource group ve resource’ların etiketlenmesi için kullanılır. Bu etiketlenme name-value pair’leri şeklinde yapılır. Tag’lar kullanılan resource’ların mantıksal olarak organize ve kategorize edilmesi için kullanılır.

Bir resource üzerine maksimum 15 adet tag atayabilirsiniz.

Resource group’lar üzerine atanan tag’lar sadece resource grubu etkiler. Herhangi bir şekilde resource group altındaki resource’lara etki etmez.

Tab’lar subscription seviyesinde çalışırlar. İstenilen her şekilde kaynaklara name-value pair’leri atanabilir.

Şimdi basit olarak bir yaptığım bir kaç açıklamanın ardından Tag’ları önemli kılan ana maddelerden bahsetmek istiyorum.

1- Tag’lar resource’ların kategorizasyonu için kullanılmalıdır. Azure platformu birden fazla departman tarafından kullanılabilir. Bu sebeple kaynakların sahipliğini belirlemek açısından Tag’lama önemlidir.

2- Taglar kullanarak resource’lar mantıksal olarak kategorilerine ayrılır. Bu kategorilere ayırma işlemi environment bazında yada usage bazında olabilir.

3- Tag’lar kullanılarak kategorize edilen resource’lar için cost’ları belirlemek oldukça kolaydır. Örneğin Finans departmanı, IK departmanı şeklinde tag’lama yapılarak bu departmanlara ait cost’lar kolaylıkla belirlenebilir. Bunun yanında Azure tag’lara göre fatura bilgisi de sağlamaktadır. Böylece hangi departmanın, takımın yada grubun ne kadar Azure tükettiği kolaylıkla görüntülenebilir.

Tag’lar kullanıldığında resourceları ayırt etmek ve kategorize etmek oldukça kolaydır. Fakat Tag’ların da belli limitasyonları vardır. Şimdi bunları inceleyelim.

* Bir resource yada resource gruba en fazla 15 adet Tag atanabilir.

* Atanan tag’lar inheritable değildir. Yani resource gruba tag ataması yaptığınızda, bu resource grup altındaki resource’lar bu tag’dan etkilenmezler.

* Tag’lar resource ve resource gruplara PowerShell, Azure CLI 2.0, ARM Template, ARM REST API ve Azure Portal kullanılarak atanabilir.

Örnek olarak bir resource üzerine aşağıdaki tag’lar atanabilir. Siz ihtiyaçlarınıza uygun olarak aşağıdaki örnek listeden bir kaçını yada hepsini resource yada resource gruba atayabilirsiniz. Hatta kendi name-value pair’lerinizi de oluşturabilirsiniz.

– Project

– Environment

– Owner

– Department

– Start Date

– Patched Date

– Retire Date

– Maintainer

– Approver

Bir resource yada resource group üzerine Tag ataması yapmak oldukça basit bir işlemdir. Resource üzerine gelip Tags seçeneğini seçerek aşağıdaki gibi Name-Valur pair’lerinin atamasını kolaylıkla yapabilirsiniz.

Resim – 1

Bu atama işlemlerinde PowerShell’de kullanabilirsiniz. Şimdi basit olarak PowerShell kullanarak nasıl Tag ataması yapılabileceğini inceleyelim. Aşağıdaki komutu kullanarak belirtilen Tag’lara sahip olan resource’ları çağıralım.

(Find-AzureRmResource -TagName Department -TagValue IT).Name

Resim – 2

Yukarıda gördüğünüz gibi kolaylıkla o Tag’a sahip resource’ları listeleyebiliyoruz. Eğer Azure üzerinde bir workload’a ait birden çok resource kullanıyorsanız, yukarıdaki gibi Tag kullanarak sorgulama yaptığınızda workload’a ait kaynakları listeleyebilirsiniz.

Resource’lara Tag ataması yaptığımız gibi resource group’lara da tag atama işlemlerini kolaylıkla yapabiliriz.

Bunun için birden çok Tag’ı resource’a atamak için öncelikle bir hash table oluşturalım. Hash table’da tıpkı Tag’lar gibi name,value pair’lerini barındırabilen collection yapılarıdır.

Aşağıdaki basit sıralı komutta önce hash table’lı oluşturup, değerleri atayıp sonrasında resource group’u çağıralım.

$Tags
= @{

Department =
“IT”;

Owner =
“Firat Yasar”;

}

$RG
=
Find-AzureRmResourceGroup
-Tag
$Tags

$RG.name

Aşağıdaki şekilde gördüğünüz gibi Tag’ları kullanarak belirtilen Tag’lara sahip olan resource group’u listelemiş olduk.

Resim – 3

Eğer bir resource group üzerine PowerShell kullanarak Tag ataması yapmak istersek aşağıdaki basit sıralı komutları çalıştırmamız yeterli olacaktır. Burada da yine Hash Table ile name-value pair’leri oluşturup Set-AzureRmResourceGroup komutu ile atamayı yapmak yeterli olacaktır.

$Tags
= @{

Department =
“IT”;

Owner =
“Firat Yasar”;

Environment =
“TEST”;

LastPatchedDate =
“01.01.2019”;

CreatedDate =
“01.12.2018”;

Project =
“HR Application Project”

}

Set-AzureRmResourceGroup
-Name
“APPTEST”
-Tag
$Tags

Komutun çalıştırdıktan sonra update edilen resource group’a ilişkin bilgiler PowerShell çıktısında listelenecektir. Buradan atanan Tag’ların kontrolünü yapabilirsiniz.

Resim – 4

Ayrıca Azure Portal üzerinden ilgili resource’a geldiğinizde de yine atanan Tag’ları görüntüleyebilirsiniz.

Resim – 5

Tag atama işlemlerini ARM template ile resource oluştururken de yapabilirsiniz. Örneğin aşağıdaki gibi Storage account oluştururken departman ve ortam taglarını kullanarak kaynağı oluşturma işlemi sırasında etiketleme işlemi yapabilirsiniz.

{

“$schema”: “https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#”,

“contentVersion”: “1.0.0.0”,

“resources”: [

{

“apiVersion”: “2016-01-01”,

“type”: “Microsoft.Storage/storageAccounts”,

“name”: “[concat(‘storage’, uniqueString(resourceGroup().id))]”,

“location”: “[resourceGroup().location]”,

“tags”: {

“Dept”: “Finance”,

“Environment”: “Production”

},

“sku”: {

“name”: “Standard_LRS”

},

“kind”: “Storage”,

“properties”: { }

}

]

}

Tag’ların resource group yada resource’lara atanması sırasında göz önünde bulundurulması gereken bir kaç önemli nokta bulunyor.

  1. Eğer resource group altındaki tüm resource’lara aynı tag atanacaksa, atanacak tag’ı resource group seviyesinde yapmak daha mantıklı olacaktır.
  2. Eğer tag’lar kullanılarak belirli işler için query’ler hazırlanacaksa öncesinde kategorizasyon işlerinin tamamlanması ve tag’ların resource yada resource group seviyesinde atanıp atanmayacağına karar verilmesi gerekir.

Özet olarak Tag’lar yapılandırması ve konfigürasyonu oldukça basit ama iyi dizayn edilmesi gereken bileşenlerdir. Tag’lar düzgün konfigüre edildiğinde Azure üzerinde kullanılan resource’lar kolay şekilde tanımlanabilir. Böylece resource’lar tanımlandıkça tükettikleri krediler kolaylıkla belirlenebilir. Ayrıca Azure ortamında kullanılan bir çok kaynağın sahibinin kim olduğu Tag’lar kullanıldığında kolaylıkla saptanır.

Her ne kadar kaynaklar oluşturulurken angarya bir iş gibi görünse de Azure kullanımları arttığında yönetemeyeceğiniz bir ortam olmasını engellemek için Tag’ların kesinlikle kullanılması gerekmektedir.

Şu sıralar işim gereği bir çok müşterimin Azure ortamında konsolidasyon işleri yapıyorum. Gerek maliyet düşürme amaçlı gerekse performans iyileştirmeleri için bir çok resource’un birbirleri ile olan ilişkilerini çözmeye çalışıyorum. Genel olarak Azure müşterileri Tag’ları kullanmadığı için, yazdığım custom scriptler ve manuel incelemeler ile kaynaklar arasındaki bağlantıları çözmeye vakit harcıyorum. Tüm bu yaptığım konsolidasyon çalışmalarından edindiğim en önemli bilgi, kategroize edilmemiş ve yönetilemeyen resource’ların Azure maliyetlerinde gereksiz şişmeye yol açmasıdır. Erken önlem alınmadığında tahmin edilmeyen büyüklükte Azure faturaları ile karşı karşıya kalmak olağandır.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.07

Referanslar

www.mshowto.org

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-using-tags

Azure for Architects Ebook

TAGs: Azure Tags, Azure for Architects, Azure Architect, Azure Governance Model, Azure Governance, Azure Billing, Azure Cost Optimization, Azure Architecture Best Practises, Azure Regions and Zones, Azure Availability Zones,Microsoft Azure, Cloud Design Pattern, Azure storage design, Azure storage best practise, Azure Resource Categorization, Azure Resource Labeling

Bu İçeriğe Tepkin Ne Oldu?
  • 3
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 1
    sevdim_
    Sevdim!
  • 1
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Sakarya doğumludur. İstanbul Üniversitesi’nde Matematik/Fen ve Teknoloji öğretmenliğini bitirmiştir. Yüksek lisansını Sakarya Üniversitesi Bilgisayar Mühendisliği’nde yapmıştır. Bilişim sektöründe çeşitli firmalarda sistem ve network sorumlusu olarak çalışmıştır. Bazı kurumlarda sistem ve network üzerine uzmanlık eğitimleri vermiştir. Şu anda Netaş şirketinde kurumsal danışman olarak görev yapmaktadır. Microsoft System Center ürünleri, Powershell ve Azure teknolojileri ile ilgilenmektedir. 2016 yılında Microsoft tarafından Cloud and Datacenter alanında MVP unvanını almıştır.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir