YAML Temelleri?
1

YAML temelde html, markup(md) dosyası gibi bir markup dilidir. Okumayı daha olanaklı kılmak için data serialization için oluşturulmuş bir markup dilidir. Yaml bir çok dille beraber kullanılabilir. Pyhton, ruby, perl gibi birçok agile diller tarafından default olarak desteklenir. Yaml bu dillerde olduğu gibi scalar, lists, arrays gibi veri tiplerini barındırır. Aynı zamanda indentation, dashes, colons gibi bazı temel veri tipleri barındırır. Yaml temel olarak configurasyon ve veri tutmak için kullınılır.

Yaml dili 2001 yılında çıkmış olmasına rağmen son dönemlerde Devops teknolojilerinin gelişmesi, kod olarak altyapı(infrastructure as a code), containers, docker compose, Kubernetes gibi teknolojilerde ki kullanımından dolayı oldukça meşhur bir dil haline gelmiştir. Hemen hemen bir çok bulut üreticisi, Devops ürünleri üreticileri, platform üreticileri bu dili varsayılan olarak ürünlerinde destekliyorlar ve konfigurasyon için kullanıyorlar.

Yaml dili printable Unicode karakterleri deskler ve encoding olarak UTF-8,UTF-16,UTF-32 kullanır. Yaml dili için kullanılan dosyaların uzantısı yine “yaml”dır. Yaml dosyalarını herhangi bir text editor programı(sublime, notepad++, vscode, vim etc.) ile oluşturabilir ve değiştirebilirsiniz.

Veri şekillendirilirken tab’lar ile değil boşluklar(space) ile şekillendirilir. Veri yapıları için girinti(indent) kullanılır. Aşağıda ki örnekte pool bir veri ve pool’u anlatan, pool için olan özellikler altına girinti yapılarak key-value storelarda tutuluyor. Yani “vmimage” değeri pool verisi için bir özelliktir. Pool için başka bir özellik, değer varsa yine “vmimage” ile aynı girinti de olmalıdır.

Resim-1

Yaml dosylarında iki nokta key-value için, “-(tire)” ise liste yapıları için kullanılır.

Yukarıda ki örnek bir Devops sürecinde bir kodu build edip bir container registry’e push edecek. Yukarıda basettiğimiz gibi bu adımlar “steps” verisi olarak tanımlanmış. Altında ise tire işareti ile tüm adımlar listelenmiş. Yani bir liste oluşturulmuş

Step bir liste. Ve içerisi şöyle;

Steps

  1. Script
  2. Task
  3. Task

Şeklinde.

Ve yukarıda bahsettiğimiz gibi iki nokta işareti ile key value değerlerimiz var. Yani listemizde ki script key’inin değeri “dotnet build …..”. Key value değerlerini oluştururken dikkat etmeniz gereken bir nokta key değerinden sonra mutlaka boşluk bırakıp value yazmanız gerekiyor.

Yani “vmimage:ubuntu-latest” yerine “vmimage: ubuntu-latest” olması gerekiyor. Aksi takdir bu iki değer bir birbiri ile eşleşmez. Boşluğun sayısı veya tipi önemli değildir. Yani birden fazla boşluk bırakabilir veya yeni bir satıra geçebilirsiniz.

Key-value değerleri istenildiği kadar iç içe geçirilebilir(unlimited intend).

Resim-2

Collection tipinde ki veriler de tanımlanırken yani listeler veya diziler yine aynı şekilde “-,tire” işaretinden sonra boşluk bırakılmalıdır.

Resim-3

Scalars

Scalars temel olarak string, number, boolen tipinde ki verilerdir. Bu veriler key-valuelar içersinde kullanılabilir ve içerisinde boşluk barındırabilirler.

Resim-4

Resim-5

Number tipini text’e çevirmek istiyorsanır tek tırnak veya çift tırnak kullanmanız yeterli olacaktır.

Resim-6

Scalarlar birden fazla satırda(multiline) yazılabilirler. Bunun için başına pipe “|” işareti veya “>” işareti koymanız yeterlidir.

Resim-7

Structures

Yaml kullanırken birden fazla dosya kullanmak yerine bir dosyada birden veri tek bir dosyada birleştirilebilir.

Bunun için kullanmamız gereken iki şey vardır. “—” ve “…”. Üç tire yeni bir dosya başlangıcını gösterir. Üç nokta ise mevcut veri bloğunun bittiğine ama veri akışının bitmediğini yani ikinci dosyaya geçildiğini anlatır.

Resim-8

Comments

Yaml dilinde yorum yazmak için yorumun başına “#” işareti koymanız ve boşluk bırakmanız gerekiyor.

Resim-9

Yaml bir çok programlama dili ile kullanılmak ile beraber, konfigurasyon bilgisi tutmak, yeni cloud native ortamlarda altyapımızı kodlamak için kullanılan standart haline gelmiş bir dil. Docker, Kubernetes, ansible, helm, Devops tools gibi teknolojilerle uğraşıyorsanız mutlaka okumayı ve yazmayı öğrenmeniz gereken bir dil.

Bu konuyla ilgili sorularınızı  linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz. 

Referanslar
www.mshowto.org 

https://yaml.org/ 

TAGS: yaml, yaml nedir, kod olarak altyapı, kod olarak altyapı nedir, Devops, Kubernetes, docker, ansible, key value, lists, arrays

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

Onur Yüksektepeli - Chief Technology Architect | Micosoft MVP Onur Yüksektepeli Nephocraft firmasının kurucusu aynı zamanda kendi firmasında teknoloji çözümleri mimarıdır. 15 Yıldan fazla IT tecrübesi ile temel uzmanlık alanı olan Platform ve diğer teknolojiler için müşterilerine ürün ve hizmetler sunmaktadır. Microsoft MVP ünvanına sahip Onur Yüksektepeli birçok IT etkinliğinde aktif konuşmacı olarak ve IT topluluklarında yönetici olarak aktif rol üstlenmektedir. Nephocraft firmasın da yönetici olarak oluşturduğu çözümlerde yeni teknoloji gelişmelerini de göz önünde bulundurarak, müşterilerine esnek, yenilikçi, akıllı ve üretken iş çözümleri üretmektedir.Onur Yüksektepeli bulut, platform, data, devops, development gibi konularda aktif danışmanlık ve IT eğitmenliğine de devam etmektedir.

Yazarın Profili

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

Yorumlar (1)

  1. Çok güzel bir yazı olmuş emeğinize sağlık

Bir yanıt yazın

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