Skip to main content

3 posts tagged with "YAML"

View All Tags

· 4 min read
Hasan Gural

Welcome back! In our previous session, we delved into the strengths of YAML as a tremendous alternative for orchestrating Azure configurations via Bicep. Today, I'll guide you through deploying Azure resources using a YAML with Bicep.

🧑‍💻 Using YAML and Bicep Together

Revisiting the previous post, you might remember our YAML file, structured as follows:

resourceGroups:
- name: "app01"
location: "westeurope"
tags:
environment: "dev"
project: "project01"

- name: "app02"
location: "northeurope"
tags:
environment: "dev"

This file lists two resource groups, app01 and app02. Each resource group has a name, location, and tags property. It's like a to-do list for our task. Now, we will write a resource block in Bicep to create these resource groups in Azure.

· 5 min read
Hasan Gural

Greetings, everyone! This blog post marks the beginning of a series dedicated to exploring how YAML can be effectively utilized in conjunction with Bicep for deploying resources on Azure. This is the first part of a series. Here, we'll start with the basics of YAML and Bicep and learn how they work together to help us with resource provisioning on Azure.

💬 Why YAML, and What Are the Options?

After our introduction to this series, you might be wondering, Why YAML? YAML, which stands for YAML Ain't Markup Language, is a human-readable data serialization standard. It is used in a variety of programming and IT contexts, but why is it so important for Azure resource deployment, particularly with Bicep? Before we dive deeper into why YAML is a great choice, let's look at the alternatives available in ARM templates or Bicep:

image

· 3 min read
Hasan Gural

Bu yazı serisine başlamadan önce Azure Resource Manager Template Deployment modelini neden ve niçin kullanıldığını çok iyi anlamamız lazım. Bu yüzden blog üzerinde bunun anlatan yazıları yazmıştım, fakat kısa bir hatırlatma yapmak için kısaca tekar üzerinden geçmek istiyorum. Azure Resource Manager'ın Template Deployment özelliği bize sağladığı en büyük özellik, Infrastructure as code kültürüne ayak uydurmamız ve Azure üzerinde hizmet veren kaynakları devamlı kontrol altında tutup, incremental şekilde değişiklik yapmamıza olanak sağlamaktadır. Çok fazla organizasyon Azure Resource Manager – Template Deployment modeline mevcut ortamlarının template geliştirerek deployment süreçlerini CI/CD içerisine dahil etmektedirler, özetle bu bize JSON formatında sunulan ve Azure üzerinde tüm kaynaklarınızın detaylarını bu template içerisine belirterek çok hızlı bir şekilde deploy edip, aynı şekilde değişen bir şey var mı yok mu diye kontrol altına alabiliyorsunuz, biraz daha farklı bir süreçten örnek vermek gerekirse, DEV/TEST ortamların çoğu Resource Manager Template modeline yazılmış ve deploy edilmeye hazır halde bekliyor. Bu template geliştirmenin bir çok yöntemi var, JSON formatında olan bu dağıtım modeli, Visual Studio Code ve Visual Studio aracılığı ile kolayca geliştirilebilir durumdadır. Dilerseniz Mevcut kaynaklarınızın template detaylarını Azure Portal üzerinden export etme şansınıza sahipsiniz, biraz fikir vermesi için aşağıdaki kısa görüntü size açıklayacaklar.

Yukarıda resimde görüldüğü gibi, Azure Resource Manager Template ulaşmanın birkaç yolunu göstermeye çalıştım. Bu iki yöntem ile ve birkaç kaynak ile JSON Template ( Azure Resource Manager Deployment ) nasıl olduğu hakkında birkaç fikriniz olacaktır. Fakat bu konu oldukça derin ve çok büyük kurumlarda bu tarz süreçler, CI/CD kadar bağlanıp Jenkis, Azure DevOps ( VSTS) üzerinden yönetelir hale geldiler, konu sadece JSON Template yazıp onu deploy etmek değil, yazılan template içerisinde gelebilecek parametreler, variable ve function gibi detaylar var. Bunların kontrolünüde Pester adında başka bir open-source araç ile kontrol ediyoruz ki bu çok başka bir konu, başka yazımızda değinmeye çalışırız.

Esas konumuza gelecek olursa, belirli bir süredir Microsoft feedback sayfasında gördüğüm ve gerçekten çok mantıklı ve benim bile hergün kullanmama rağmen aklıma gelmeyen "zihni-sinir" başlıklar yer almakta, eğer teknolojiyi yakın takip ediyorsanız orada yazılan feedbackler gerçekten harika, sizde bir not bırakın derim. Bir süredir, JSON Template okuması zorlayıcı olması, çok fazla süslü parantezler iç içe girmesi bir kısımdan sonra çileye dönüşüyor, çok uzu deployment süreçlerinden bahsediyorum. Ansible kullanan biri olarak YAML formatı gerçekten daha okunaklı ve daha göze yakın duruyor, JSON severler olmaz öyle şey diyebilirler, fakat YAML formatını kullanarak Azure Resource Manager Deployment yapabilsek çokta güzel olmaz mıydı diye düşünürken bir open-source araç keşfetmem ile güzel bir ışık yandı zihnimde.

Özetle, "YAML CLI" adında open-source olan harika tool sayesinde YAML formatında geliştirilen Azure Resource Manager templatelerini nasıl JSON convert edebileceğimizi göreceğiz bu yazı serimizde. Microsoft bunu ne zaman offical olarak destekler/desteklemez bilemiyorum fakat görünüz açısından gözünüzün alışacağından eminim. JSON ile geliştirilen template ile hiçbir farkı olmayıp sadece süslü parantezlerden kurtulduğunuzu hayal edin, yukarıdaki resimde içerisinde zaten anlaşılır ama kompleks deployment modellerinden içinden çıkılmayan bir hal alıyor malasef, evet intellisense diye bir şey var kabul ediyorum fakat YAML ile geliştirmek çok daha kolaylık sağlayacak.

YAML-CLI Github üzerinden erişebileceğiniz ve kullanımı çok kolay bir araçtır. Aşağıda detaylarını görebilirsiniz, yazımızın devamında bu aracı nasıl kullanacağımıza değineceğim.