İçeriğe Atla
Rehberler · 10 dk okuma · görüntülenme
100%

OpenTofu ile Tenant Bazlı State Ayrıştırma Rehberi

Kurumsal altyapıda tenant, ortam ve sahiplik sınırlarını korumak için OpenTofu state yapısını ayrıştıran pratik rehber.

Tenant ayrımı, state dosyaları ve altyapı sahipliğini gösteren kapak görseli

IaC kullanan ekipler ilk günlerde tek bir state dosyasıyla hızlı ilerler. Ancak kurum büyüdükçe farklı tenant’lar, farklı ortamlar ve farklı sahiplik sınırları aynı state içinde sıkışmaya başlar. Sonuç olarak küçük bir değişiklik gereksiz kilitlenme, geniş erişim yetkisi ve kırılgan plan çıktıları üretir. OpenTofu ile tenant bazlı state ayrıştırma yaklaşımı, yalnızca teknik düzen değil; yönetişim, güvenlik ve operasyon ölçeği için kritik bir sınır tanımıdır.

Tenant bazlı state ayrıştırma akışını gösteren diyagram

Ne zaman tek state modelinden çıkmalısınız?

Aşağıdaki sinyaller genellikle ayrıştırma ihtiyacını gösterir:

  • Farklı ekipler aynı plan kilidine takılıyorsa
  • Üretim ve test ortamı aynı state kökünde yaşıyorsa
  • Bir tenant değişikliği başka tenant kaynaklarını listeletiyorsa
  • Erişim izinleri state düzeyinde ayrılamıyorsa

Bu durumlarda sorun çoğu zaman araç değil sınır modelidir. State yapısı, organizasyon yapısının ve güvenlik sınırlarının gerisinde kalmıştır.

Referans klasör yapısı

Sade ve okunabilir bir model şöyle olabilir:

infra/
  tenants/
    erp-prod/
      network/
      platform/
    erp-test/
      network/
      platform/
    retail-prod/
      network/
      observability/

Buradaki amaç her klasörü farklı state yapmak değil; değişiklik frekansı, sahiplik ve etki alanına göre ayrım yapmaktır. Aynı yaşam döngüsünü paylaşmayan kaynakları tek state içinde tutmamak gerekir.

Backend tanımını nasıl ayırmalı?

OpenTofu tarafında state anahtarı tenant ve bileşen bazlı ayrılmalıdır. Basit bir S3 uyumlu backend örneği:

terraform {
  backend "s3" {
    bucket = "infra-state"
    key    = "tenants/erp-prod/network/tofu.tfstate"
    region = "eu-central-1"
    encrypt = true
    dynamodb_table = "infra-state-lock"
  }
}

Burada kritik olan şey sadece key alanı değil; lock ve erişim politikasının da aynı sınırı izlemesidir. Aksi hâlde dizin ayrılmış görünür ama yetki yüzeyi ayrılmaz.

Ortak modüllerle tenant ayrımı birlikte nasıl yaşar?

Birçok ekip şu hataya düşer: modüller ortaksa state de ortak kalmalı sanılır. Bu doğru değildir. Ortak modül kullanmak ile ortak state kullanmak farklı kararlardır.

Doğru model şudur:

  • Modül kodu ortak olabilir
  • Değişken seti tenant’a özgü olur
  • Backend ve lock alanı tenant sınırını izler
  • Pipeline yetkisi yalnızca ilgili tenant state’ine erişir

Bu ayrım sayesinde platform standardı korunur ama operasyon etkisi dar tutulur.

Pipeline tasarımında nelere dikkat edilmeli?

Tenant bazlı yapı kurulduğunda CI/CD hattı da bunu takip etmelidir. Ben şu kuralları öneriyorum:

  1. Her tenant-bileşen çifti için ayrı plan job
  2. Değişiklik olmayan tenant’lar için koşullu çalışma
  3. Plan çıktısının ilgili sahip ekibe yönlendirilmesi
  4. Üretim tenant’ları için ayrı onay ve rollout adımı

Bu model hem paralellik üretir hem gereksiz kilitlenmeyi azaltır.

Geçiş nasıl yapılmalı?

Mevcut büyük state’i bir günde parçalamaya çalışmak risklidir. Daha güvenli yöntem kademeli taşımadır:

  • Önce sınır matrisi çıkarılır
  • En az bağımlı bileşen seçilir
  • state mv veya import stratejisiyle yeni köke alınır
  • İlk birkaç değişiklik gözlemlenerek lock ve yetki modeli doğrulanır

Özellikle üretim ERP veya ağ katmanlarında bağımlılık haritası çıkarılmadan yapılan ayrıştırma yeni kırılganlık doğurur.

Sonuç

OpenTofu ile tenant bazlı state ayrıştırma, yalnızca teknik temizlik değildir. Yetki alanını daraltır, plan kilitlenmesini azaltır ve değişiklik etkisini okunabilir hâle getirir. Kurumsal altyapı büyüdükçe asıl hız tek büyük state’ten değil, doğru sınırlar içinde çalışan küçük ve sahipliği net state alanlarından gelir.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

Yeni yazılardan haberdar olun

Haftada bir yeni içerikler ve kaynaklar doğrudan e-postanıza gelsin.

Spam yok. Yalnızca yeni ve önemli içerikler için e-posta gönderilir.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar