# Değiştirilemez Altyapı

Adres: https://softwaredictionary.org/tr/terimler/immutable-infrastructure
Kategori: DevOps ve Bulut
Son güncelleme: 2026-09-30
İngilizcesi: Immutable Infrastructure
Türkçe karşılığı: değişmez altyapı
Okunuşu: imyutıbıl infrıstrakçır

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ınlamak

```bash
# 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.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
