Visual Studio Code ile Azure Resource Manager şablonları oluşturma

Bir süredir zamanımın çoğunu Azure Resource Manager Template’leri geliştirerek gelişmiş ve çok karmaşık deploymentlar yapmaktayım. Bu kısımda ilgili Azure Resource Manager Template’lerini geliştirirken benim için ilgili IDE üzerinde konfor ve esneklik sağlaması çok önemli. Azure Resource Manager daha önce nasıl kullanıldığını ve yönetildiğini açıklayan yazıya şu adresten ulaşabilirsiniz. Yazının tarihine baktığım zaman üç yıl önce yazdığımı farkettim fakat yinede güncel başlıklar için Microsoft sayfasından göz gezdirmenizde fayda var.

Öncelikle neden veya niçin Azure Resource Manager Template modelini kullanmak istediğinize karar vermeden önce bir kaç senaryo ile konuyu açalım. Çalıştığım müşterilerin çoğu artık Infrastructure as code konseptini oturtmuşlar ve uygulamaktalar. Bir çok firma kişi bağımsız deploymentlarını yapmak ve yönetmek istemektedirler. Azure ortamında Dev ortamını tekrar tekrar oluştururken Azure Resource Manager Template kullanarak kolay ve hızlı şekilde defalarca resourceları oluşturup gerekli testlerini yapmak istiyorlar tabiki artık IAC kültürüne bağımlı kalarak. Bu kısımda her zaman Azure Resource Manager Template kullanmanız gerekmiyor, bunun için Terraform veya Ansible da kullanıldığına çok fazla şahit oldum. Bu seçim tamamen firmaya özel kalıyor, Azure Resource Manager Template içerisinde özellikle Nested Template ve Desired State Configuration ekleyince gerçekten inanılmaz noktalara gidebiliyor. Basit olarak şu şekilde özetleyelim, Azure Resource Manager Template, JSON ile tasarlaran bir dağıtım modeli ve siz istediğiniz kaynakların özellilerini teker teker belirtip özellikleriyle beraber çok hızlı bir şekilde deploy edip hizmet vermeye başlayabiliyorsunuz, biraz daha ileri gitmek isterseniz karşınıza deploy ettiğiniz örnek bir sunucu olsun içerisinde role veya features bazlı örneğin, IIS üzerinde Application Pool konfigurasyonu gibi, bir işlem yapmak istediğinizde bu template bağlı olarak Powershell Desired State Configuration ayarlarınızı gönderip deployment sürecini çok daha efektif bir şekilde bitiyorsunuz. Yukarıdaki satırlarda bahsettiğim gibi bu kısımda hangi araçla deploy etmek tamamen size kalmış.

Azure Resource Manager Template geliştirirken karşımıza çok farlı yöntemler çıkmaktadır. Bunlar sırasıyla,

  • Visual Studio with Azure SDK
  • Visual Studio Code with Azure Resource Manager Tool Extension
  • Azure Portal üzerinden bir deploy işlemi yaptığınız zaman son kısımda size verilen – Template Export seçeneği.
  • Mevcut kaynak üzerinden alının Export Template seçeneği.
  • Destekleyen herhangi bir JSON editor.

Öncelikle ben ilk geliştirme sürecime Visual Studio ile başladım, daha sonra Visual Studio’dan Visual Studio Code geçiş yaptım. Visual Studio Code geçiş yapmamım sebebi, Open-source olması ve tamamen lightweight olması sebebiyle devamlı onunla yönetiyor ve geliştirmeye devam ediyorum. Source-control oradan yapıyorum tadından yenmiyor. Visual Studio Code ile geliştirmek istiyorsanız bir takım ön gereksinimler var, bunlar sırasıyla şu extesionlara sahip olmanız gerekmektedir.

Extension Name Extension Identifier
Azure Account ms-vscode.azure-account
Azure Resource Manager Tools msazurermtools.azurerm-vscode-tools
JSON Tools eriklynd.json-tools – opsiyonel**

Ön gereksinimler için Visual Studio Code üzerinde yapmanız gerekenler aslında çok basit yukarıda bulunan isimli Extensionları bulup, kurduğunuz zaman Visual Studio Code üzerinden Azure Resource Manager templateleri için karşınıza Snippets geliyor olacak. Başka bir yazımızda tamamen Azure Resource Manager Template nasıl geliştirildiğine, nasıl bir mimarisi olduğuna değineceğim.

Yukarıda görüldüğü gibi, ilgili extesionları kurmamız gerektiğini anladık. Artık Visual Studio Code üzerinden Azure Resource Manager Snippets görebilir duruma geleceğiz. Hemen beraber görelim.

Artık VSCode üzerinden çok kolay bir şekilde Azure Resource Manager Template daha ileri seviye veya basit bir template oluşturabilir ve hızlı bir şekilde deploy edebiliriz.