GTM tarafında en yaygın hata, veri merkezi sağlığını tek bir up/down işaretiyle yönetmektir. Oysa gerçek hayatta veri merkezi erişilebilir olabilir ama uygulama kapanmış olabilir; uygulama cevap verebilir ama veritabanı çalışmıyor olabilir; WAN hattı açıkken LAN tarafında erişim kopmuş olabilir. Tek bayraklı sağlık modeli bu farkları yakalayamaz.
Birçok kurumda sağlık kontrolü ile DNS yanıtı arasındaki bağ manuel veya parçalıdır. İzleme sistemi alarm üretir, operasyon ekibi script çalıştırır, DNS kaydı elle değiştirilir ya da ayrı bir otomasyon devreye girer. Bu zincir hem geç tepki verir hem de kritik anlarda insan hatasına açıktır.
Karmaşık senaryolar daha da zordur. "DC1 internet erişimi var ve bakımda değilse aktif olsun; değilse DC2 uygulama sağlığı veya DC3 erişimi sağlamsa yedek kayıt dönsün" gibi koşullar çoğu zaman YAML, script ve manuel bağımlılıklarla yönetilir. Bu da GTM kararını anlaşılması zor bir operasyon labirentine çevirir.
Flap davranışı da gerçek bir risktir. Bir sağlık kontrolü anlık olarak başarısız olduğunda DNS'in hemen değişmesi, kullanıcı trafiğini gereksiz yere başka bölgeye taşıyabilir. Aynı şekilde kısa süreli başarı da problem tam çözülmeden trafiği geri alabilir. Bu yüzden ardışık başarı/başarısızlık eşiği ve durum koruma mantığı gerekir.
TR7'nin sağlık kontrolü senaryoları, veri merkezi, uygulama, veritabanı, bakım modu ve özel kontrolleri tek boolean karar katmanında birleştirerek DNS yanıtını gerçek servis sağlığına bağlar.
TR7, GTM sağlık kararını otomatik veri merkezi kontrolleri, manuel sağlık kontrolleri ve senaryo mantığıyla birlikte değerlendirir.
Veri merkezi bazlı otomatik kontroller, kullanıcı tanımlı HTTP/HTTPS/Oracle kontrolleri ve ADC sağlık sonuçları aynı karar yapısında kullanılabilir. Bu yapı, altyapı ve uygulama sağlığını tek GTM kararına bağlar.
Senaryolar AND ve OR gruplarıyla oluşturulur. Bir sağlık kontrolü kimliği `!` ile ters çevrilerek bakım modu gibi negatif koşullar da kararın parçası yapılabilir.
Sağlık kontrolü, senaryo ve DNS kaydı ilişkileri harita yapılarıyla takip edilir. Bir sağlık durumu değiştiğinde yalnızca etkilenen senaryolar ve kayıtlar yeniden değerlendirilir.
HTTP ve HTTPS sağlık kontrolleri yalnızca portun açık olup olmadığını değil, status code ve içerik beklentisini de denetleyebilir. JSONata veya basit içerik kontrolüyle uygulamanın gerçekten sağlıklı cevap verdiği doğrulanır.
TR7 Sağlık Kontrolleri Senaryoları, basit erişim kontrolünden çok katmanlı uygulama ve veri merkezi kararlarına kadar farklı GTM ihtiyaçlarını kapsar.
TR7, HTTP ve HTTPS kontrollerinde method, URI, body, header, beklenen status code, sertifika doğrulama ve timeout gibi parametreleri destekler. Bu sayede kontrol yalnızca bağlantı kurulup kurulmadığını ölçmez. Uygulamanın doğru endpoint'ten doğru cevap verdiği de denetlenir. GTM kararı gerçek uygulama davranışına daha yakın hâle gelir.
JSON dönen sağlık endpoint'lerinde JSONata ifadesiyle belirli alanlar kontrol edilebilir. Örneğin `status = "ok"` veya benzeri bir ifade, uygulamanın yalnızca cevap verdiğini değil, beklenen sağlık durumunu döndürdüğünü gösterir. Response içeriği uygun formatta ayrıştırılır ve ifade bu yapı üzerinde değerlendirilir. Bu özellik JSON API tabanlı modern uygulamalar için daha güvenilir sağlık ölçümü sağlar.
Daha sade senaryolarda response body üzerinde belirli bir metnin bulunup bulunmadığı kontrol edilebilir. Bu yaklaşım, JSONata gibi ifade gerektirmeyen basit uygulama sağlık kontrolleri için yeterlidir. Operasyon ekibi, uygulama yanıtında beklenen bir kelimeyi veya sabit durumu doğrulayarak DNS kararını buna bağlayabilir. Böylece hızlı ve anlaşılır kontroller oluşturulur.
Oracle kontrolü, bağlantı kurma, bekleme ve komut çalıştırma adımlarından oluşan senaryolarla yapılandırılabilir. Beklenen satır sayısı veya beklenen metin üzerinden sonuç değerlendirilebilir. Bu sayede DNS yanıtı yalnızca uygulama katmanına değil, veritabanı erişilebilirliğine de bağlanabilir. Kritik iş uygulamalarında "uygulama açık ama veri tabanı çalışmıyor" kör noktası azaltılır.
TR7, veri merkezi bazında `wanAccess`, `lanAccess`, `access`, `internet` ve `maintenanceMode` kontrollerini kullanabilir. Bu kontroller, veri merkezinin farklı erişim ve operasyon durumlarını ayrı ayrı temsil eder. Bakım modu gibi durumlar pozitif sağlık işareti gibi değil, senaryoda negatif koşul olarak değerlendirilebilir. Böylece DNS kararı daha operasyonel gerçekliğe uygun verilir.
Senaryolar condition group yapısıyla oluşturulur; grup içindeki koşullar AND mantığıyla, gruplar arası bağ ise OR veya AND ile değerlendirilebilir. Sağlık kontrolü kimliğinin sonuna `!` eklenerek koşulun tersi kullanılabilir. Örneğin `dcAccess AND NOT maintenanceMode` gibi yapı kurulabilir. Bu sayede script yazmadan karmaşık GTM kararları tasarlanabilir.
Sağlık kontrollerinde `requiredSuccess` ve `requiredFailure` değerleri kullanılabilir. Varsayılan yaklaşım, durum değişimi için ardışık başarı veya başarısızlık sayısını dikkate alır. Bu yapı anlık paket kaybı, kısa süreli gecikme veya geçici servis dalgalanmasının DNS yanıtını hemen değiştirmesini engeller. GTM davranışı daha stabil hâle gelir.
Sağlık kontrollerinin durumları yerel dosyada saklanabilir ve sistem yeniden başladığında geri yüklenebilir. Bu sayede her restart sonrası tüm sağlık durumlarının sıfırdan ve kör şekilde öğrenilmesi gerekmez. Özellikle çok sayıda senaryo ve kayıt bulunan GTM ortamlarında bu süreklilik önemlidir. Operasyon ekipleri yeniden başlatma sonrası daha öngörülebilir davranış elde eder.
TR7 ekosisteminde TCP, UDP, HTTP, HTTPS, PING, DNS, FTP, FTPS, LDAP, LDAPS ve Oracle sağlık kontrolleri kullanılabilir. GTM ve ADC sağlık sonuçlarının koordinasyonu, DNS kararını servis katmanındaki gerçek durumla ilişkilendirmeyi sağlar. Bu geniş tip desteği, yalnızca web uygulamaları için değil, çok protokollü kurumsal servisler için de sağlık modeli kurmayı mümkün kılar. Script benzeri TCP send-receive senaryoları da özel kontrol ihtiyaçlarında kullanılabilir.
Sağlık kontrolü senaryolarının güvenilir çalışması için kimlik formatı, durum kalıcılığı, tetikleme sırası, master node kontrolü ve değişiklik yayılımı net yönetilir.
Senaryo motoru static, dcCheck, http, https ve oracle gibi sağlık kontrolü tiplerini değerlendirebilir. Daha geniş GTM ve ADC sağlık kontrol ailesiyle birlikte çok protokollü servis durumları karar yapısına taşınır. Bu yapı, tek tip HTTP kontrolüne sıkışmayan servis mimarileri için önemlidir.
Veri merkezi bazlı otomatik sağlık kontrolleri `auto|
Kullanıcı tanımlı sağlık kontrolleri benzersiz kimliklerle oluşturulur. Bu kimlikler senaryo koşullarında doğrudan kullanılabilir. Böylece aynı HTTP, HTTPS veya Oracle kontrolü birden fazla GTM senaryosunda tekrar değerlendirilebilir.
Sağlık durumu değiştiğinde önce ilgili sağlık kontrolü durumu güncellenir. Ardından bağlı senaryolar yeniden değerlendirilir ve gerekirse dinamik konfigürasyon yeniden üretilir. Bu akış, değişikliğin DNS yanıtına kontrollü şekilde yansımasını sağlar.
`ALWAYS` ve `NEVER` gibi built-in senaryolar sabit karar üretmek için kullanılabilir. `ALWAYS` durumunda kayıt her zaman uygun kabul edilirken, `NEVER` durumunda devre dışı davranış elde edilir. Bu yapı test, geçici kapatma veya koşulsuz yönlendirme senaryolarında pratiklik sağlar.
Tetikleyici aksiyonlar yalnızca GTM master node üzerinde çalıştırılır. Bu davranış, küme yapısında aynı aksiyonun birden fazla node tarafından tekrar tekrar çalıştırılmasını engeller. DR tetikleme, webhook veya bildirim gibi aksiyonlarda bu kontrol operasyonel güvenlik sağlar.
Çok lokasyonlu kurumlar, veri merkezinin yalnızca tek bir erişim yönüne göre ayakta kabul edilmesini istemeyebilir. TR7, `wanAccess OR lanAccess` gibi senaryolarla farklı erişim yollarını aynı DNS kararında birleştirir.
Kritik iş uygulamalarında veri merkezi erişimi tek başına yeterli değildir. TR7, `dcAccess AND appHC AND dbHC` benzeri senaryolarla uygulama ve Oracle veritabanı sağlığı birlikte olumluysa ilgili IP'yi DNS yanıtına alır.
Operasyon ekibi bakım sırasında veri merkezi teknik olarak erişilebilir olsa bile trafik almak istemeyebilir. TR7, `dcAccess AND NOT maintenanceMode` senaryosuyla bakımda olan lokasyonu DNS yanıtından çıkarabilir.
Modern uygulamalar sağlık durumunu JSON endpoint üzerinden yayınlayabilir. TR7, HTTPS sağlık kontrolü ve JSONata ifadesiyle `status = "ok"` gibi kontroller yaparak DNS yanıtını gerçek uygulama sağlığına bağlar.
HTTP, HTTPS, Oracle ve veri merkezi kontrollerini boolean senaryolarla birleştirin. Kendi ortamınızda canlı bir kurulumda gezdirelim.