Sıkça Sorulan Sorular
Genel
Consul Guardian ücretsiz mi?
Evet. Community sürümü tamamen ücretsiz ve açık kaynaklı (Apache 2.0 lisansı). CLI, Git sync, snapshot, restore ve drift detection dahil.
Consul Enterprise gerekiyor mu?
Hayır. Consul Guardian, Consul Community Edition (CE) 1.12+ ile çalışıyor. Enterprise özellikleri gerektirmiyor.
Consul Guardian'ı mevcut Consul kurulumuma ekleyebilir miyim?
Evet. Guardian, Consul'un yanında bağımsız bir process olarak çalışır. Consul'da veya uygulamalarında hiçbir değişiklik gerekmiyor. Sadece read yetkili bir ACL token ile başlamak yeterli.
Birden fazla Consul cluster'ı destekliyor mu?
Tek bir Guardian instance'ı tek bir cluster'ı izler. Birden fazla cluster için her biri için ayrı bir Guardian çalıştırmalısın. Her birinin kendi Git repo'su ve yapılandırması olur.
Watch (İzleme)
Watch ne kadar hızlı değişiklikleri yakalar?
Tipik olarak 5 saniye içinde. Consul'un blocking query mekanizmasını kullandığından, değişiklik olduğunda neredeyse anında bildirim alır.
Watch durduğunuzda ne olur?
Watch tekrar başladığında, kaldığı yerden değil, Consul'daki mevcut durumu Git'teki son durumla karşılaştırarak devam eder. Aradaki değişiklikler tek bir commit olarak kaydedilir. Bireysel ara commit'ler kaybolur, ama son durum tutarlıdır.
Çok sayıda key izlemek performansı etkiler mi?
Guardian 250.000 key'e kadar test edilmiştir. Memory kullanımı 100MB'ın altında kalıyor. Blocking query kullandığından, değişiklik olmadıkça Consul'a ek yük binmez.
Hangi prefix'leri izlemeliyim?
Uygulamaların kullandığı konfigürasyon prefix'lerini izle. Geçici veya oturum bazlı key'leri (session locks, health check data) hariç tutmanı öneririm.
Git Sync
Git repo'su zamanla büyümez mi?
Büyür, ama pratikte sorun olmaz. 10.000 key'lik bir ortamda günlük 100 değişiklikle bile yıllık repo boyutu genellikle birkaç yüz MB'ı geçmez. Çok büyürse git gc veya periodic squash uygulayabilirsin.
Git push başarısız olursa ne olur?
Commit yerel repo'da kalır. Bir sonraki başarılı push'ta tüm birikmiş commit'ler gönderilir. Guardian push hatasında işlem durdurmaz, izlemeye devam eder.
Uzak Git repo'su olarak ne kullanabilirim?
GitHub, GitLab, Bitbucket veya herhangi bir Git sunucusu. SSH key veya token ile kimlik doğrulaması desteklenir.
Drift Tespiti
Drift tespiti ne sıklıkla çalıştırılmalı?
Ortamına bağlı. Her 15 dakikada bir iyi bir başlangıç noktası. CI/CD pipeline'ına da entegre edebilirsin (deploy öncesi kontrol).
auto_reconcile kullanmalı mıyım?
Production ortamında hayır, en azından başlarken. Önce drift raporlarını incelemeye alış, sonra güvendiğinde otomatik düzeltmeyi aktif et. Staging/development ortamında deneyebilirsin.
Drift raporu false positive üretebilir mi?
Evet, özellikle şu durumlarda:
- Watch henüz son değişikliği Git'e commit etmediyse (birkaç saniyelik pencere)
- Consul'daki ephemeral key'ler izleme prefix'ine dahilse
exclude_prefixes ile geçici key'leri hariç tutarak false positive'leri azaltabilirsin.
Restore
Restore sırasında uygulama etkilenir mi?
Consul KV atomik değildir (tek key bazında atomik, prefix bazında değil). Restore sırasında uygulama bir an için eski ve yeni değerlerin karışımını görebilir. Ama CAS mekanizması sayesinde tutarsız yazma önlenir.
Restore geri alınabilir mi?
Evet. Restore önceki durumu Git'e commit ettiğinden, bir önceki commit'e tekrar restore yapabilirsin.
Dry-run kullanmadan restore yapsam sorun olur mu?
Teknik olarak çalışıyor ama kesinlikle önermem. Production'da dry-run olmadan restore yapmak, paraşüt olmadan atlamak gibi -- çoğu zaman sorun çıkmıyor ama çıktığında felakettir.
Snapshot
Snapshot ile Git sync arasındaki fark ne?
Git sync: Sadece KV store değişikliklerini izler. Key bazında geçmiş, hızlı tek-key restore.
Snapshot: Tüm cluster durumunu yedekler (KV + ACL + session + catalog). Tam cluster kurtarma için.
İkisini birlikte kullanmanı öneririm. Git sync günlük işlemler için, snapshot disaster recovery için.
Snapshot ne kadar yer kaplıyor?
Consul cluster boyutuna bağlı. 10.000 key'lik tipik bir ortamda snapshot 2-5 MB civarında. Sıkıştırma uygulanır.
Snapshot'tan tek bir key geri yükleyebilir miyim?
Hayır. Snapshot tam cluster restore için. Tek key geri yüklemek için Git sync ve restore komutunu kullan.
Deployment
Birden fazla Guardian instance'ı çalıştırabilir miyim?
Aynı prefix'i izleyen birden fazla instance çalıştırma -- duplike commit oluşur. Yüksek erişilebilirlik için active-passive yapılandırması kullanabilirsin (Kubernetes'te tek replika Deployment yeterli).
Guardian ne kadar kaynak kullanıyor?
- CPU: Minimal (değişiklik olmadıkça neredeyse sıfır)
- Memory: < 100MB (250K key'e kadar)
- Disk: Git repo boyutuna bağlı
- Network: Consul'a tek blocking bağlantı (prefix başına)
Docker image boyutu ne kadar?
Alpine tabanlı image yaklaşık 30-40 MB. Scratch base ile 15 MB'a düşürülebilir.
Güvenlik
Consul token'ımı nerede saklamalıyım?
- Kubernetes: Secret veya External Secrets Operator
- Docker: Docker secrets veya environment file
- systemd: EnvironmentFile (chmod 600)
- Hiçbir zaman: YAML dosyasına veya Git'e hardcode etme
Guardian TLS destekliyor mu?
Evet. Consul ile iletişimde TLS/mTLS desteklenir. Yapılandırmada consul.tls bölümüne sertifika yollarını belirt.
Git repo'sundaki değerler şifrelenmiş mi?
Varsayılan olarak hayır. SOPS şifreleme özelliği ile key'ler açık, değerler şifreli olarak saklanabilir. Bu sayede git diff hala anlamlı sonuç verir.