Consul.io ile Konfigürasyon Yönetimi
Consul.io Nedir ?
Günümüz yazılım teknolojisinin merkezine oturan micro-service kavramı ile birlikte hayatmıza giren service discovery, distributed key-value store, health checking ihtiyaçlarını karşılayan özellikleriyle kendini tanımlayan high available bir DevOps ürünü olarak ifade edilebilir.
Consul.io Nasıl Kurulur ?
Öncelikle buradan consul.io windows paketini indirelim. İndirdiğimiz paket C:\consul dizinine çıkaralım.
Aynı dizine data ve config isimli iki adet boş dizin daha yaratalım.
Sonrasında aşağıda verdiğim komutu çalıştıralım.
1 |
C:\consul\consul agent -server -client 127.0.0.1 -ui -config-dir C:\consul\config -data-dir c:\consul\data -bootstrap |
1 |
sc.exe create "ConsulServerWithUIAgent" binPath=" C:\consul\consul agent -server -client 127.0.0.1 -ui -config-dir C:\consul\config -data-dir c:\consul\data -bootstrap" |
consul.io aslında 2 parçadan oluşuyor. Bu parçalardan birincisi server. Asıl işi yapan kısım. İkincisi ise client yani ui olarak nitelendirdiğimiz kısım. Bu kısımda consul server’ın yönetimi için bir kullanıcı arayüzü sunuyor.
Yukarıda verdiğim komutta -client 127.0.0.1 olarak belirtilen kısım bir client olduğunu ve bunun 127.0.0.1’deki sunucuya bağlanacağını söylüyor.
-ui komutu bu client’in ui sunacağını söylüyor. -data ve -config dir parametreleri ise ayarların saklanacağı yolları belirtiyor.
sc.exe create ile consul server’ı bilgisayarımızda servis olarak register ediyoruz.
Eğer Tüm adımları doğru yaptıysanız localhost:8500’e gittiğiniz zaman aşağıdaki arabirimi görmeniz gerekiyor.
Şimdi Ne Yapacağız ?
Açılan arabirimi kullanarak bir adet konfigürasyon yaratalım. Key/Value sekmesini kullanarak. Buradaki sampleapp yazan kısmı genellik uygulama adı , development yazan kısmı da environment name olarak kullanıyoruz ama buradaki yapı sizin ihtiyacınıza göre şekillenecektir.
Örneğin ,
App1/Development/Server1
App1/Development/Linux1
Gibi. Burada önemli olan uygulamanıza consul desteğini eklerken doğru pathi vermeniz.
Konfigürasyonumuzu yarattıktan sonra save diyip devam edelim ve boş bir console uygulamasında bu yarattığımız değere ulaşmayı deneyelim. Ben console uygulaması ile deneyeceğim fakat mvc desteği olduğunu da hatırlatmakta yarar var consul client’in.
Projemizi oluşturduktan sonra consul client nuget paketini ekliyoruz.
Main bloğumuza aşağıdaki kodu yazıp çalıştırıyoruz.
1 2 3 4 5 |
ConsulClient c = new ConsulClient(); var r = c.KV.Get("SampleApp/Development"); Console.WriteLine(r.Result.Response.Key); Console.WriteLine(Encoding.UTF8.GetString(r.Result.Response.Value)); Console.ReadLine(); |
ve çıktısının aşağıdaki görüntüdeki gibi olmasını bekliyoruz.
Bu yazımda consul ile key-value konfigürasyon yönetimine dilim döndüğünce oldukça temel bir şekilde anlatmaya çalıştım. Bir sonraki consul yazımda service-health check fonksiyonuna değinmeye çalışacağım.
Cluster yok mu abi