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.
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.
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/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 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.
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.
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, 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.
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.
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.
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 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.
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, 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.
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.
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.
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.
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.
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.
GTM tetikleyiciler ve forwarder; timeout, lifecycle, child process, parse önceliği, forward zone sırası ve metadata satırlarıyla birlikte işletilir.
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.
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 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.
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.
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-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 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.
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 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.
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.
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.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.
İç 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.
HTTP/HTTPS ve Oracle DB tetikleyici zincirleri, selective DNS forwarding ve ECS-aware recursor. Kendi ortamınızda canlı bir kurulumda gezdirelim.