GTM failover yapıyorsa, dış sistemlerin de bu değişikliği bilmesi gerekir.
GTM mimarisinde sağlık kontrolü sonucu değiştiğinde DNS yanıtı değişebilir; ancak operasyon çoğu zaman DNS cevabından ibaret değildir. Bir veri merkezi devreden çıktığında alarm sistemi, ticket sistemi, DR otomasyonu, audit akışı veya uygulama ekibi de bu değişikliği bilmek ister. Bu bağlantı kurulmazsa GTM karar verir, fakat kurumun geri kalan operasyon zinciri bu karardan geç haberdar olur.
Bu ihtiyacı ayrı orchestration katmanıyla çözmek mümkündür; ancak bu da yeni servis, yeni kimlik bilgisi, yeni izleme ve yeni hata noktası demektir. Sağlık kontrolü zaten GTM içinde çalışırken, bu durum değişiminin dış sistemlere aktarılması aynı platformdan yönetilmelidir.
DNS forwarding tarafında da benzer bir problem vardır. Bazı domain'ler kurum içi DNS'e, bazıları dış resolver'a, bazıları ise TR7 authoritative zone'una gitmelidir. Basit forwarder mantığı tüm sorguları tek hedefe gönderdiğinde split-DNS, internal zone, partner domain ve geo-routing davranışları karışır.
ECS bilgisi kaybolursa problem daha da büyür. Geo veya topoloji tabanlı kararlar istemci ağ bilgisinden beslenir; forwarder bu bilgiyi düşürürse upstream tarafındaki coğrafi yönlendirme hatalı hale gelebilir. Forwarder yalnızca sorguyu taşımamalı, karar bağlamını da korumalıdır.
TR7 GTM Tetikleyiciler ve İletici, sağlık kontrolü durum değişimlerini HTTP/HTTPS veya Oracle DB aksiyon zincirlerine bağlar; selective domain forwarding, localhost zone forward ve ECS pass-through ile DNS iletimini operasyonel olarak yönetilebilir hale getirir.
Yaklaşımımız
TR7, GTM'i yalnızca cevap veren DNS motoru olarak değil, sağlık durumuna tepki veren ve DNS sorgularını bağlama göre ileten aktif operasyon katmanı olarak tasarlar.
Sağlık kontrolü değişimi tetikleyici zincirini başlatır
HC scenario base durumu değiştiğinde turn veya return aksiyonları çalıştırılabilir. Scenario aktif olduğunda triggerTurnActions, normale döndüğünde triggerReturnActions sıralı şekilde yürütülür.
HTTP ve HTTPS tetikleyiciler içerik doğrulaması yapabilir
HTTP/HTTPS tetikleyiciler method, URI, header, body, beklenen status code ve timeout ile tanımlanır. Yanıt body'si JSONata veya basic içerik kontrolüyle doğrulanarak aksiyonun başarılı olup olmadığı belirlenir.
Oracle DB tetikleyicileri veritabanı senaryolarını çalıştırır
Oracle trigger, bağlantı bilgisi ve scenario adımlarıyla çalışır. wait ve executeCmd adımlarıyla veritabanı tarafında kontrol veya aksiyon çalıştırılabilir; beklenen satır veya metin sonucu doğrulanabilir.
DNS forwarder domain bazlı iletim ve ECS koruması sağlar
Forwarder, belirli domain'leri belirli DNS hedeflerine iletebilir; varsayılan hedef root domain için tanımlanabilir. ECS pass-through ile istemci subnet bağlamı korunur ve geo-routing kararları bozulmaz.
Yetenekler
GTM Tetikleyiciler ve İletici, sağlık kontrolü aksiyonlarını, HTTP/HTTPS ve Oracle doğrulamasını, zincirleme trigger akışını ve selective DNS forwarding'i tek yönetim modelinde birleştirir.
HTTP trigger method, URI, header ve body ile yapılandırılır
HTTP trigger, hedef adres, port, request method, URI, header listesi ve request body değerleriyle tanımlanır. Beklenen status code listesi üzerinden çağrının başarılı olup olmadığı kontrol edilebilir. Timeout değeri uzun süren dış sistem çağrılarını sınırlamak için kullanılır. DR runbook, audit endpoint veya alarm sistemi gibi HTTP tabanlı hedefler bu modelle tetiklenebilir.
DNS değişikliğinden fazlasını çalıştıran tetikleyici aksiyonu
Bir GTM tetikleyicisi ad yönlendirmekle sınırlı değildir. DNS'i taşıyan aynı sağlık kararı, kendisine bağlı aksiyonu da çalıştırabilir — Oracle Data Guard switchover'ı dâhil. Böylece veritabanı, ikinci bir ekibin ikinci bir kararını beklemek yerine trafiği izler. Aksi hâlde "önce kim başlıyor" diye yapılacak bir köprü toplantısı, kayda geçmiş tek bir otomatik harekete dönüşür; tetikleyici, aksiyon ve sonucu aynı denetim izinde durur.
HTTPS trigger sertifika doğrulama davranışıyla güvenli çağrı yapar
HTTPS trigger, HTTP trigger ile aynı request modelini TLS üzerinden uygular. verifyCertificate bayrağıyla hedef sertifikanın doğrulanıp doğrulanmayacağı belirlenebilir. Üretim ortamında sertifika doğrulamanın açık tutulması önerilir. Bu yapı, güvenli dış aksiyon sistemlerine GTM scenario değişimlerini iletmek için kullanılır.
JSONata content check response body doğrulamasını esnek hale getirir
HTTP/HTTPS trigger yanıtı JSON veya XML olarak parse edilebilir ve JSONata expression ile doğrulanabilir. Context içinde body, bodyRaw, headers ve status gibi değerler kullanılabilir. Örneğin dış runbook sistemi 200 döndürse bile response body içindeki success=true alanı ayrıca kontrol edilebilir. Bu, yalnızca status code'a güvenmeyen daha sağlam trigger doğrulaması sağlar.
Basic content check basit substring doğrulaması sunar
JSONata gerekmeyen durumlarda basic content check kullanılabilir. Yanıt gövdesinde belirli metnin bulunup bulunmadığı .includes() mantığıyla kontrol edilir. Küçük entegrasyonlar, eski sistemler veya sade health response dönen endpoint'ler için yeterli olabilir. Operatör karmaşık expression yazmadan hızlı doğrulama yapar.
Oracle DB trigger veritabanı bağlantısı ve scenario adımları çalıştırır
Oracle trigger, kullanıcı, parola ve connection string ile veritabanına bağlanır. Scenario adımları wait ve executeCmd gibi işlemlerden oluşabilir. executeCmd sonucunda beklenen satır sayısı veya beklenen metin kontrol edilebilir. Bu model, uygulama veritabanı durumunu çapraz doğrulamak veya veritabanı tarafında kontrollü aksiyon çalıştırmak için kullanılır.
Trigger zincirleme birden fazla aksiyonu sıralı yürütür
triggerTurnActions ve triggerReturnActions dizileri birden fazla trigger ID'sini sıralı şekilde çalıştırır. Bir aksiyon başarısız olursa zincir kırılır ve sonraki aksiyonlar çalıştırılmaz. Bu davranış, bağımlı runbook adımlarının kontrolsüz ilerlemesini engeller. Örneğin önce audit endpoint'e yaz, sonra DR job başlat gibi akışlar kurulabilir.
Turn ve return yönleri scenario geçişini ayrı ele alır
turn, scenario'nun aktif hale geldiği durumu temsil eder; return ise scenario'nun pasifleşip normale döndüğü durumu temsil eder. Her yön için ayrı trigger listesi ve koşul tanımlanabilir. Failover sırasında farklı, recovery sırasında farklı aksiyonlar çalıştırılabilir. Bu ayrım operasyon akışlarının daha temiz tasarlanmasını sağlar.
Active trigger temizliği eski trigger süreçlerinin çakışmasını önler
Yeni group key geldiğinde eski trigger süreçleri durdurulabilir. Trigger lifecycle started, succeeded veya failed loglarıyla takip edilir; kısa bir gecikme sonrası activeTrigger event temizlenir. Bu davranış arka arkaya gelen sağlık durumu değişimlerinde eski aksiyonların yeni akışla çakışmasını azaltır. Ana servis trigger fork yapısından izole kalır.
Trigger execution yalnızca master node üzerinde yapılır
Cluster ortamında trigger'ların yalnızca master node'da çalışması sağlanır. Diğer node'lar aynı sağlık değişimini görse bile dış aksiyonu tekrar çalıştırmaz. Bu, webhook veya DB aksiyonlarının çift tetiklenmesini engeller. Cluster davranışı daha deterministik hale gelir.
PowerDNS Recursor forwarder ayrı süreç ve portla çalışır
Forwarder katmanı ayrı recursor süreci olarak konumlanır. forwarderInnerPort aralığı üzerinden DNS sorgularını alır ve tanımlı upstream hedeflere iletir. Authoritative DNS ve recursor forwarding davranışı ayrıştırılır. Bu ayrım, TR7'nin kendi zone'ları ile dış DNS çözümlemesini aynı mimaride kontrollü şekilde yönetmesini sağlar.
Selective domain forwarding her domain için farklı hedef tanımlar
domainBasedForwarding listesiyle belirli domain'ler belirli DNS adreslerine yönlendirilebilir. Örneğin internal domain kurum içi DNS'e, diğer sorgular varsayılan upstream resolver'a gidebilir. Bu yapı split-DNS ve hibrit DNS mimarileri için önemlidir. Tüm sorguları tek hedefe gönderen kaba forwarder yaklaşımını aşar.
ECS pass-through geo kararları için istemci bağlamını korur
Forwarder, ECS bilgisini geçirerek upstream tarafın istemci subnet bağlamıyla karar vermesine yardımcı olur. ecs-ipv4-bits, ecs-add-for ve allow-list ayarlarıyla ECS davranışı kontrol edilebilir. Geo-routing veya topology tabanlı upstream kararlar için bu bilgi kritiktir. ECS düşürülürse coğrafi yönlendirme yanlış resolver lokasyonuna göre yapılabilir.
Operasyonel derinlik
GTM tetikleyiciler ve forwarder; timeout, lifecycle, child process, parse önceliği, forward zone sırası ve metadata satırlarıyla birlikte işletilir.
Trigger timeout davranışı
HTTP trigger için varsayılan timeout 120 saniye olabilir. Oracle trigger kendi özel işlem süresine göre daha uzun çalışabilir. Genel trigger süreci 24 saate kadar sınırlandırılabilir; uzun runbook veya veritabanı adımlarında bu üst sınır önemlidir.
Retry davranışı
Trigger zincirinde otomatik retry davranışı bulunmaz. Bir trigger başarısız olursa zincir kırılır ve sonraki aksiyonlar çalışmaz. Bu nedenle hedef sistemlerin idempotent ve güvenilir tasarlanması gerekir.
Trigger lifecycle logları
Trigger started, succeeded veya failed durumlarıyla loglanır. Bu kayıtlar failover veya recovery sırasında hangi aksiyonun çalıştığını göstermeye yarar. Active trigger durumu kısa gecikme sonrası temizlenir.
Ayrı process execution
Trigger çalıştırma ayrı child process olarak yapılabilir. Bu model ana GTM servisinin uzun süren dış çağrı veya DB işlemlerinden etkilenmesini azaltır. Başarısız trigger ana servisi düşürmez.
Response parse önceliği
HTTP response body içerik tipine göre önce JSON, sonra XML olarak parse edilmeye çalışılır. Uygun parse yapılamazsa raw string fallback kullanılır. JSONata expression bu context üzerinde çalıştırılır.
Forward zone sırası
forward-zones-recurse satırları belirli sırayla üretilir. İlk domain forward tanımı ana satır olarak, sonraki tanımlar ek satır olarak yazılabilir. Bu sıralama selective forwarding davranışının net uygulanması için önemlidir.
Forwarder metadata
forwarder.metaData alanı ek recursor yapılandırma satırları taşımak için kullanılabilir. Bu alan özel cache, politika veya operasyonel ayarlar için genişletme noktası sağlar. Kullanılan metadata satırları dikkatli doğrulanmalıdır.
Hangi senaryolarda kullanılır
Primary veri merkezi down olduğunda webhook alarmı
Sağlık kontrol scenario aktif hale geldiğinde HTTP POST trigger çalıştırılır. Alarm veya olay yönetim sistemine veri merkezi down bilgisi iletilir. DNS failover kararı dış operasyon sistemiyle aynı anda görünür hale gelir.
DR scenario aktifleşince otomatik runbook başlatma
DR scenario aktive olduğunda HTTPS trigger ile otomasyon platformunda job başlatılabilir. İlk trigger audit kaydı oluşturur, ikinci trigger DR bring-up işini çalıştırır. Trigger zinciri fail olursa sonraki adım kontrolsüz ilerlemez.
Health check değişimini audit endpoint'e yazma
Her turn ve return olayında HTTP trigger audit endpoint'e olay kaydı gönderebilir. Hangi zone, hangi scenario ve hangi zamanda değişti bilgisi dış log sistemine aktarılır. GTM kararları denetlenebilir hale gelir.
Uygulama veritabanı durumunu Oracle trigger ile doğrulama
Application heartbeat başarısız olduğunda Oracle trigger ayrı bir DB kontrolü çalıştırabilir. Beklenen satır veya metin sonucu alınırsa olay çapraz doğrulanır. Böylece yalnız HTTP health check sonucuna bağlı kalmadan daha güçlü karar sinyali elde edilir.
Internal domain sorgularını kurum içi DNS'e iletme
internal.example.com gibi domain'ler domainBasedForwarding ile kurum içi DNS hedeflerine yönlendirilebilir. Diğer sorgular varsayılan upstream DNS'e gider. TR7 authoritative zone'ları ise localhost üzerinden kendi DNS sürecine yönlendirilebilir.
Split-horizon DNS mimarisinde seçici forwarder kullanma
İç istemciler internal uygulama domain'lerini kurum içi recursor üzerinden çözerken, dış istemciler TR7 GTM authoritative yanıtlarını alabilir. Selective forwarding ve ECS pass-through birlikte kullanılarak iç/dış çözümleme davranışı ayrıştırılır. DNS mimarisi tek yönlü forwarding'e sıkışmaz.
Sık sorulanlar
GTM tetikleyicisi hangi trigger tiplerini destekler?
Trigger zinciri bir aksiyonda başarısız olursa ne olur?
Cluster ortamında trigger'lar hangi node üzerinde çalışır?
DNS forwarder ECS bilgisini nasıl korur?
Selective domain forwarding nasıl yapılandırılır?
HTTP/HTTPS trigger yanıt doğrulaması nasıl çalışır?
GTM failover kararlarını dış sistemlere bağlayın
HTTP/HTTPS ve Oracle DB tetikleyici zincirleri, selective DNS forwarding ve ECS-aware recursor. Kendi ortamınızda canlı bir kurulumda gezdirelim.