Terraform ve altyapı kodu: State, plan ve değişiklik kontrolü
· PoolByte Technology

Sunucuların ve ağ kaynaklarının ayarlarını yalnız panel tıklamalarıyla takip etmek, büyüyen projelerde hangi değişikliğin neden yapıldığını belirsizleştirebilir. Infrastructure as Code yaklaşımı, desteklenen altyapı kaynaklarını tanımlı dosyalarla yönetmeyi amaçlar. Terraform bu amaçla kullanılan araçlardan biridir; her hosting hesabında veya her servis için otomatik destek bulunduğu anlamına gelmez.
Kod kadar state de önemlidir
Terraform state, tanımlanan kaynaklarla gerçek altyapı arasındaki ilişkiyi izler. Terraform state dokümanı, bu kaydın neden gerektiğini açıklar. State dosyasını sıradan ve herkese açık bir proje çıktısı gibi görmek doğru değildir. Kaybolması veya yanlış değiştirilmesi sonraki işlemleri karmaşıklaştırabilir.
İki kişinin aynı altyapıya eşzamanlı değişiklik uygulamasını da planlayın. Uygun backend, kilitleme ve erişim kontrolü gerekir. Bir ortamın state’ini başka ortama yanlışlıkla uygulamak ciddi sonuçlar doğurabilir. Canlı ve test ortamlarının kimlikleri, yetkileri ve dosya düzeni karıştırılmayacak şekilde ayrılmalıdır.
Plan görmek, sonucu anlamak değildir
Uygulamadan önce oluşturulacak, değiştirilecek ve kaldırılacak kaynakları inceleyin. Küçük görünen bir alan değişikliği kaynağın yeniden oluşturulmasını gerektirebilir. Veritabanı veya depolama gibi kaynaklarda bunun veri ve kesinti etkisini özellikle değerlendirin. Otomatik onay, inceleme ihtiyacını ortadan kaldırmaz.
Panelden yapılan elle değişiklikler ile dosyalardaki tanım zamanla farklılaşabilir. Bu sapmanın ne zaman ve nasıl uzlaştırılacağı belli olmalıdır. Acil müdahalede panel kullanıldıysa sonradan kodu güncellemeden bırakmak, bir sonraki dağıtımın beklenmeyen bir ayarı geri çevirmesine neden olabilir. Değişiklik kaydı bu ilişkiyi görünür tutmalıdır.
Hassas değerleri çıktıdan gizlemek yetmez
Bir değişkenin hassas işaretlenmesi, her durumda state veya plan dosyasında hiç bulunmayacağı anlamına gelmez. Terraform hassas veri rehberi, seçenekleri ve sınırlarını anlatır. Sırların nerede saklandığını, kimlerin bu dosyalara eriştiğini ve yedeklerin nasıl korunduğunu belirleyin.
Altyapı sağlayıcısına verilen yetkiyi projenin ihtiyacıyla sınırlayın. Kaynak kodda veya herkese açık depoda gerçek erişim anahtarları bulunmamalıdır. Otomasyonun kullandığı kimlik ile günlük yönetici hesabını ayırmak, değişikliklerin kaynağını izlemeyi kolaylaştırır. Yetki iptali ve anahtar yenileme süreci de çalışır olmalıdır.
Başlangıç için dar kapsam seçin
- Önce veri kaybı riski düşük bir test ortamında tek kaynak yönetin.
- Planı inceleyip gerçek değişiklikle karşılaştırın.
- Eşzamanlı çalışma ve kilit davranışını deneyin.
- State erişimi ve kurtarma prosedürünü sınayın.
- Elle yapılan bir değişikliğin nasıl görüldüğünü kontrol edin.
- Canlıya geçmeden sahiplik ve onay sorumluluklarını belirleyin.
Altyapı kodu, Git sürüm kontrolüyle izlenebilir; ancak gerçek kaynaklara etkisi ayrıca incelenmelidir. Değer, yalnız tekrar kurulabilir dosyalar üretmekte değil, değişikliğin kapsamını ve sonucunu anlaşılır hâle getirmektedir.