DevOps’ta Yapılandırma (Konfigürasyon) Yönetimi

☁️ Ümit Eroğlu 🌍🛰
3 min readJun 4, 2024

--

DevOps’ta Konfigürasyon Yönetimi Nedir?

DevOps’ta Konfigürasyon Yönetimi, çeşitli ortamlarda tutarlılık ve tekrarlanabilirlik sağlamak için sistem konfigürasyonlarının, yazılımın ve uygulamaların kurulumunu ve yönetimini otomatikleştirme uygulamasıdır.

Konfigürasyon Yönetimi uygulamanın faydaları nelerdir?

Konfigürasyon Yönetimi, daha az manuel hata, tutarlı ve tekrarlanabilir dağıtımlar, arıza durumunda daha hızlı kurtarma ve geliştirme ve operasyon ekipleri arasında gelişmiş işbirliği gibi avantajlar sunar.

Kod Olarak Altyapı (IaC) Yapılandırma Yönetimi ile nasıl ilişkilidir?

Kod Olarak Altyapı, altyapının kod kullanılarak tanımlandığı ve yönetildiği bir Konfigürasyon Yönetimi biçimidir. Altyapı yapılandırmalarının sürümlendirilmiş, tutarlı ve tekrarlanabilir olmasını sağlar.

DevOps’ta kullanılan bazı popüler Yapılandırma Yönetimi araçlarını adlandırın.

Bazı popüler Konfigürasyon Yönetimi araçları Ansible, Puppet, Chef ve SaltStack’tır.

İtme tabanlı ve Çekme tabanlı (Push-based & Pull-based) Yapılandırma Yönetimi arasındaki farkı açıklayın.

İtme Tabanlı Konfigürasyon Yönetimi, konfigürasyonları yönetilen düğümlere (managed nodes) ileten merkezi bir sunucuyu içerir. Çekme tabanlı Konfigürasyon Yönetimi, düğümlerin merkezi bir sunucudan aktif olarak konfigürasyonları almasını ve uygulamasını içerir.

Konfigürasyon sapması (configuration drift) nasıl meydana gelir ve nasıl hafifletilebilir?

Konfigürasyon kayması, bir sistemin konfigürasyonu amaçlanan durumdan saptığında meydana gelir. Gerçek konfigürasyonları istenen konfigürasyonlarla düzenli olarak karşılaştırmak ve gerekli değişiklikleri uygulamak sapmayı azaltabilir.

Puppet’ta “manifest” nedir ve nasıl kullanılır?

Puppet’taki manifest, bir sistemin nasıl yapılandırılması gerektiğini tanımlayan bir yapılandırma komut dosyasıdır. Kaynakları, özelliklerini ve istenen durumları listeler.

Konfigürasyon Yönetiminde “idempotence” (eşgüçlülük) kavramını açıklayın.

Eşgüçlülük, aynı konfigürasyonun birden çok kez uygulanmasının, başlangıç durumuna bakılmaksızın aynı istenen durumla sonuçlanması gerektiği anlamına gelir. Bu tutarlılık ve tekrarlanabilirlik sağlar.

Konfigürasyon Yönetimi DevOps’ta güvenliğe ve uyumluluğa (security & compliance) nasıl katkıda bulunur?

Konfigürasyon Yönetimi araçları, sistemlerin en iyi uygulamalara ve uyumluluk standartlarına göre yapılandırılmasını sağlayarak güvenlik açıklarını ve riskleri azaltarak güvenlik politikalarının uygulanmasına yardımcı olur.

Ansible’da “playbook” nedir?

Ansible’daki playbook, uzaktaki bir ana bilgisayarlarda yürütülecek olan bir dizi görevi tanımlayan bir YAML dosyasıdır. Uygulanması istenen durumu ve konfigürasyonları açıklar.

Yapılandırma Yönetimi’nde sırları ve hassas (secrets & sensitive information) bilgileri nasıl yönetebilirsiniz?

Sırlar şifrelenmiş dosyalarda (encrypted files) veya harici kasalarda (external vaults) saklanabilir. Yapılandırma Yönetimi araçları, dağıtım sırasında sırları güvenli bir şekilde almak ve yönetmek için mekanizmalar sağlar.

Bildirimsel ve zorunlu yapılandırma (declarative & imperative) yaklaşımları arasındaki farkı açıklayın.

Bildirime dayalı yapılandırma, işi başarmak için gereken adımları belirtmeden istenen durumu açıklar. Zorunlu yapılandırma ise bir sistemi yapılandırmak için gereken açık adımları sağlar.

Chef’deki “state” nedir ve nasıl kullanılır?

Chef’de state, bir kaynağın istenen konfigürasyonunu temsil eder. Cookbooks (alıştırma kitapları) arzu edilen durumu tanımlar ve Chef, gerçek durumun buna uygun olmasını sağlar.

Konfigürasyon Yönetimi araçları bir felaket durumunu kurtarmaya (disaster recovery) nasıl yardımcı olabilir?

Konfigürasyon Yönetimi araçları, altyapının dağıtımını ve yapılandırmasını otomatikleştirerek, sistemleri istenilen durumda yeniden oluşturarak daha hızlı kurtarmaya olanak tanır.

Ansible’da “idempotent playbook” terimini açıklayın.

Ansible’daki idempotent playbook, birden çok kez uygulandığında, istenmeyen değişikliklere neden olmadan, arzu edilen durumu koruyan bir terimdir.

Konfigürasyon Yönetiminde sürüm kontrolünün (version control) amacı nedir?

Sürüm kontrolü, yapılandırma dosyalarındaki ve komut dosyalarındaki değişikliklerin izlenmesini sağlayarak kolay geri alma, işbirliği ve denetim olanağı sağlar.

Yapılandırmaların geliştirme, test ve üretim ortamlarında (development, testing, production) tutarlı olmasını nasıl sağlayabilirsiniz?

Konfigürasyon Yönetimi araçlarını kullanarak, farklı ortamlarda tutarlı bir şekilde uygulanan konfigürasyon şablonları tanımlayabilir ve tutarsızlıkları azaltabilirsiniz.

Puppet’ta “facts” terimini açıklayın.

Puppet’ta facts, Puppet aracısı tarafından toplanan ve uygulanacak olan uygun yapılandırmaları belirlemek için kullanılan sistem ayrıntıları ve özniteliklerdir.

Yapılandırma Yönetiminde “idempotent değişiklik” (idempotent change) nedir?

İdempotent değişiklik, tekrar tekrar uygulandığında, sistemin durumu güncellemeler arasında değişse bile, istenen durumla sonuçlanan bir yapılandırma güncellemesidir.

Konfigürasyon Yönetimi denetlenebilirliğe (auditability) nasıl katkıda bulunur?

Konfigürasyon Yönetimi araçları değişikliklerin kayıtlarını tutar ve değişiklikleri kimin yaptığını, ne zaman yapıldığını ve sistem üzerindeki etkisini takip etmeyi mümkün kılar.

Ansible’da “rolün” (role) amacı nedir?

Ansible’daki rol, ilgili görevleri, konfigürasyonları ve değişkenleri bir araya toplayan, yeniden kullanılabilirliği ve bakımı teşvik eden modüler bir organizasyon birimidir.

Yapılandırma Yönetiminde “istenen durum” (desired state) nedir?

İstenilen durum, Konfigürasyon Yönetimi komut dosyaları ve şablonları tarafından tanımlandığı şekilde bir sistemin veya bileşenin nasıl yapılandırılması gerektiğini temsil eder.

Yapılandırma Yönetimi, başarısız dağıtımlar sırasında (failed deployments) geri alma (rollbacks) işlemlerine nasıl yardımcı olabilir?

Konfigürasyon Yönetimi araçları, bir dağıtım başarısız olduğunda veya sorunlara neden olduğunda önceden bilinen çalışma konfigürasyonlarını uygulayarak hızlı geri dönüşlere olanak tanır.

“Yapılandırma sapması tespiti” (configuration drift detection) terimini açıklayın.

Konfigürasyon sapması tespiti, herhangi bir tutarsızlığı tespit etmek için sistemlerin gerçek konfigürasyonlarının istenen konfigürasyonlara göre periyodik olarak kontrol edilmesini içerir.

Farklı yapılandırma görevleri arasındaki bağımlılıkları nasıl yönetebilirsiniz?

Konfigürasyon Yönetimi araçları, konfigürasyonların doğru sırayla uygulandığından emin olmak için playbook veya bildirimler içindeki görevlerin ve bağımlılıkların sırasını tanımlamanıza olanak tanır.

Yazının ingilizcesi:

--

--