Ana içeriğe geç

Değiştirilemez Altyapı

İngilizcesi
Immutable Infrastructure
Türkçe karşılığı
değişmez altyapı
Okunuşu
imyutıbıl infrıstrakçır

Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/immutable-infrastructure

Kısaca

Değiştirilemez altyapı, sunucuların dağıtımdan sonra hiç değiştirilmediği, her güncellemede yerlerine sıfırdan kurulan yenilerinin geldiği bir yaklaşımdır.

Değiştirilemez altyapı (immutable infrastructure) nedir?

Değiştirilemez altyapı, bir sunucu, sanal makine ya da konteyner bir kez dağıtıldıktan sonra kimsenin onu değiştirmemesi demektir. Yerinde paket yükseltmesi, yapılandırma düzenlemesi ya da SSH üzerinden hızlı düzeltme yoktur. Bir güvenlik yaması, yeni bir uygulama sürümü ya da bir ayar gibi bir şeyin değişmesi gerektiğinde ekip yeni bir imaj oluşturur, ondan yeni örnekler dağıtır ve eskileri yok eder.

Süreç, sürüm kontrolündeki dosyalardan bir CI pipeline'ı tarafından otomatik oluşturulan, konteyner imajı veya sanal makine imajı gibi bir imajla başlar. Bu imajın kendisi test edilir ve ardından değiştirilmeden staging'den canlıya terfi ettirilir; böylece test edilen şey tam olarak çalışan şeydir. Her örnek aynı imajdan geldiği için aylar boyunca sunucuların elle yama yapılmasıyla oluşan yavaş ayrışma olan yapılandırma kayması (configuration drift) yoktur ve rollback, önceki imajı yeniden dağıtmak kadar basittir.

Popüler bir karşılaştırma evcil hayvanlar ile sığırlardır (pets versus cattle): değiştirilebilir bir sunucu hastalandığında bakılıp iyileştirilen bir evcil hayvandır, değiştirilemez sunucular ise törensizce yenilenen sığırlardır. Konteynerler bu tarzı varsayılan hale getirdi, çünkü Kubernetes pod'ları düzenlemek yerine değiştirir; aynı fikir otomatik ölçekleme gruplarının arkasındaki sanal makinelerle de çalışır. Veritabanları ve yüklenen dosyalar gibi kalıcı veriler, değiştirilebilir örneklerin dışında, yönetilen veritabanlarında ya da nesne depolamada yaşamalıdır; yoksa her dağıtımda kaybolur.

Değiştirilemez altyapı sıklıkla kod olarak altyapıyla karıştırılır. Kod olarak altyapı altyapıyı dosyalarda tarif eder ve bu dosyalar sunucuları değiştirmek ya da yerinde düzenlemek için kullanılabilir; değiştirilemez altyapı ise her zaman değiştirme kararıdır. Ayrıca, araçların uzun ömürlü sunuculara bağlanıp onları istenen duruma uygun olacak şekilde güncellediği geleneksel yapılandırma yönetiminin de karşıtıdır.

Önemli noktalar

  • Sunucular ve konteynerler dağıtıldıktan sonra asla değiştirilmez.
  • Her değişiklik yeni bir imaj üretir; eski örnekler yamalanmaz, değiştirilir.
  • Aynı test edilmiş imaj, staging ve canlı ortam arasında değişmeden ilerler.
  • Yapılandırma kaymasını ortadan kaldırır ve rollback'leri basitleştirir.
  • Kalıcı veriler, değiştirilebilir örneklerin dışında saklanmalıdır.

Örnek

Bir değişikliği yamalayarak değil, değiştirerek yayınlamakbash
# Build a new image for every change, tagged with its commit
docker build -t registry.example.com/web:3f9c2ab .
docker push registry.example.com/web:3f9c2ab

# Replace the running instances with the new image
kubectl set image deployment/web web=registry.example.com/web:3f9c2ab

# Rolling back means redeploying the previous, unchanged image
kubectl set image deployment/web web=registry.example.com/web:a71d0e4

Sık sorulan sorular

Değiştirilebilir ve değiştirilemez altyapı arasındaki fark nedir?

Değiştirilebilir altyapıda sunucular uzun süre yaşar ve yamalar ile yapılandırma değişiklikleriyle yerinde güncellenir. Değiştirilemez altyapıda ise sunucular asla değiştirilmez; her güncelleme onları yeni bir imajdan oluşturulmuş yeni örneklerle değiştirir.

Değiştirilemez bir sunucudaki hata nasıl düzeltilir?

Çalışan sunucuyu düzenlemezsiniz. Kodu ya da yapılandırmayı sürüm kontrolünde düzeltir, yeni bir imaj oluşturur ve dağıtırsınız; bu da eski örnekleri değiştirir. Bir kopya üzerinde hata ayıklamaya hâlâ devam edebilirsiniz, ancak düzeltme her zaman pipeline'dan geçer.

Değiştirilemez altyapı, konteyner kullanmakla aynı şey midir?

Hayır, ancak konteynerler bunu kolaylaştırır. Yaklaşım sanal makine imajlarıyla da çalışır ve biri konteynerin başlamasından sonra içindeki dosyaları değiştirirse konteyner yine değiştirilebilir sayılabilir, ancak bu tavsiye edilmez.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar