WEB / WEB-21.02
Traffic routing, scaling ve availability
Ad çözümlemeyi, traffic routing’i, readiness’i ve availability hedefini ayrı sorularla incele.
1. Core · Mekanizma
Hareket olmadan bütün senaryoları oku
Origin path
- Miss sonrası başla
Verilen DNS resolution ve edge cache miss kararından sonra edge public origin read’i hazırlamıştır. Balancer henüz bu request’i almadı.
- Client / resolver projection
- Resolution supplied; waiting
- Edge projection
- Origin read prepared
- Local balancer
- Balancer request unknown
- Application pool
- Pool request unknown
- Public note owner
- Tea note authoritative
- Balancer arrival
Edge prepared request’i balancer’a ulaşır; application pool ve client knowledge önceki state’te kalır.
- Client / resolver projection
- Resolution supplied; waiting
- Edge projection
- Origin read prepared
- Local balancer
- Public read received
- Application pool
- Pool request unknown
- Public note owner
- Tea note authoritative
- Target seç
Local literal-ready policy app-a’yı seçer ve target query hazırlar; ready olmak private permission vermemiştir.
- Client / resolver projection
- Resolution supplied; waiting
- Edge projection
- Origin read prepared
- Local balancer
- app-a query prepared
- Application pool
- Pool request unknown
- Public note owner
- Tea note authoritative
- Application arrival
Selected app-a request’i pool’da arrival ile bilinir; authoritative note read henüz ayrı local iştir.
- Client / resolver projection
- Resolution supplied; waiting
- Edge projection
- Origin read prepared
- Local balancer
- app-a query prepared
- Application pool
- app-a read received
- Public note owner
- Tea note authoritative
- Local note read
Pool own note owner’dan local read ile Tea title alır ve response hazırlarken serving identity’yi app-a diye bağlar.
- Client / resolver projection
- Resolution supplied; waiting
- Edge projection
- Origin read prepared
- Local balancer
- app-a query prepared
- Application pool
- Tea response prepared
- Public note owner
- Tea note authoritative
- Balancer dönüşü
Application response balancer’da alınır; edge henüz response’u almış veya viewer’a teslim etmiş değildir.
- Client / resolver projection
- Resolution supplied; waiting
- Edge projection
- Origin read prepared
- Local balancer
- app-a result received
- Application pool
- Tea response prepared
- Public note owner
- Tea note authoritative
- Edge’e hazır
Balancer own forwarding işlemiyle edge response hazırladı; bu local step receiver arrival sayılmaz.
- Client / resolver projection
- Resolution supplied; waiting
- Edge projection
- Origin read prepared
- Local balancer
- Edge response prepared
- Application pool
- Tea response prepared
- Public note owner
- Tea note authoritative
- Edge arrival
Prepared result edge’e ulaştı; bounded scene burada biter ve client state waiting kalır.
- Client / resolver projection
- Resolution supplied; waiting
- Edge projection
- Origin result received
- Local balancer
- Edge response prepared
- Application pool
- Tea response prepared
- Public note owner
- Tea note authoritative
One unready
- Down snapshot
Declared readiness snapshot a=false b=true taşır; bu observed fixture gerçek replica kill değildir.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- Public read known
- Application pool
- a=false; b=true supplied
- Public note owner
- Tea note authoritative
- Eligible türet
Local policy observed false a’yı excludes, observed true b’yi eligible yapar; failure domains ölçülmez.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- Eligible b only
- Application pool
- a=false; b=true supplied
- Public note owner
- Tea note authoritative
- b’ye hazır
Balancer public request’i selected b için hazırlar; pool receiver bu request’i henüz almamıştır.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- app-b read prepared
- Application pool
- a=false; b=true supplied
- Public note owner
- Tea note authoritative
- b arrival
Selected b request’i pool’da arrival ile bilinir; caller’a result henüz dönmedi.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- app-b read prepared
- Application pool
- app-b read received
- Public note owner
- Tea note authoritative
- b result hazır
Own public title read’i b response’una bağlanır; result prepared olması measured HA guarantee vermez.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- app-b read prepared
- Application pool
- app-b result prepared
- Public note owner
- Tea note authoritative
- b result arrival
Response balancer’da alındı; surviving b’nin bu finite request’i ürettiği source projection görülür.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- app-b result received
- Application pool
- app-b result prepared
- Public note owner
- Tea note authoritative
- Scope sınırı
Local route result regional failover, parallel capacity veya uptime SLA olarak büyütülmez.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- Limited route result
- Application pool
- app-b result prepared
- Public note owner
- Tea note authoritative
No ready
- Read biliniyor
Public read geldiği varsayılır; a false ve unknown instance missing readiness ayrı knowledge taşır.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- Public read known
- Application pool
- a=false; unknown missing
- Public note owner
- Tea note authoritative
- No eligible
Literal true bulunmadığından eligible-set boş; unknown health confirmed failure diye yeniden adlandırılmaz.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- Eligible set empty
- Application pool
- a=false; unknown missing
- Public note owner
- Tea note authoritative
- Unavailable hazır
Selected unavailable policy 503 hazırlar, forwarded=false korunur ve application request’i uydurulmaz.
- Client / resolver projection
- Client waiting
- Edge projection
- Edge waiting
- Local balancer
- 503 response prepared
- Application pool
- a=false; unknown missing
- Public note owner
- Tea note authoritative
- Edge arrival
Balancer’ın prepared unavailable response’u edge’de alınır; pool önceki no-request state’inde kalır.
- Client / resolver projection
- Client waiting
- Edge projection
- 503 response received
- Local balancer
- 503 response prepared
- Application pool
- a=false; unknown missing
- Public note owner
- Tea note authoritative
- Category ayır
Edge local classification yapar; missing health observation’ın nedenine veya viewer delivery’ye dair yeni bilgi yoktur.
- Client / resolver projection
- Client waiting
- Edge projection
- Unavailable classified
- Local balancer
- 503 response prepared
- Application pool
- a=false; unknown missing
- Public note owner
- Tea note authoritative
Desired / ready
- Önceki pool
Başlangıçta desired ve ready sayıları 2’dir. Sayıların eşit olması, instance’ın oluşturulması ile traffic’e hazır olmasının aynı aşama olduğunu göstermez.
- Client / resolver projection
- Public flow selected
- Edge projection
- Edge unchanged
- Local balancer
- Desired2; ready2
- Application pool
- a/b ready
- Public note owner
- Tea note authoritative
- Intent büyür
Supplied control intent desired3 olur; henüz yeni ready instance veya measured capacity eklenmedi.
- Client / resolver projection
- Public flow selected
- Edge projection
- Edge unchanged
- Local balancer
- Desired3; ready2
- Application pool
- a/b ready
- Public note owner
- Tea note authoritative
- Create separate
Own fixture c exists gösterir fakat ready=false; created count3 ready count2 olmaya devam eder.
- Client / resolver projection
- Public flow selected
- Edge projection
- Edge unchanged
- Local balancer
- Desired3; ready2
- Application pool
- a/b ready; c created
- Public note owner
- Tea note authoritative
- Traffic gate
Local routing listesi initializing c’yi seçmez; desired count bir request’e permission veya usable capacity değildir.
- Client / resolver projection
- Public flow selected
- Edge projection
- Edge unchanged
- Local balancer
- Eligible a/b only
- Application pool
- a/b ready; c created
- Public note owner
- Tea note authoritative
- Ready supplied
Declared initialization complete c için ready=true verir; gerçek HPA/probe runtime veya timing ölçülmez.
- Client / resolver projection
- Public flow selected
- Edge projection
- Edge unchanged
- Local balancer
- Eligible a/b only
- Application pool
- a/b/c ready supplied
- Public note owner
- Tea note authoritative
- Eligible3 türet
Ready set artık 3 instance içerir. Bu sonlu sayı, throughput ölçümü, regional redundancy veya HA yüzdesi sağlamaz.
- Client / resolver projection
- Public flow selected
- Edge projection
- Edge unchanged
- Local balancer
- Desired3; ready3
- Application pool
- a/b/c ready supplied
- Public note owner
- Tea note authoritative
ROLLER · STATE · VERİ AKIŞI
DNS cevabı HTTP response değildir
DNS, adı belirli resource record’larla çözmeye yardım eder; browser’ın HTTP body’sini application’a taşıyan bir forwarding hop değildir. Resolver adres veya ilgili record bilgisini aldıktan sonra client seçilen network endpoint’e ayrı bağlantı kurar. DNS answer adı çözen authority ve resolver cache ömrüyle ilgilidir. Hedef application’ın o anda note’u okuyabildiğini veya caller’a izin verdiğini kanıtlamaz. Örnekte public.example.invalid ve edge-demo verilen alias’lardır; DNS query veya kayıt değişikliği yapılmaz.
DNS → CDN → load balancer → application yaygın bir sorumluluk çizgisidir; her web uygulamasının zorunlu kutu sırası değildir. CDN public representation’ı edge’den döndürebilir, cache miss olduğunda backend’e gidebilir. Load balancer target pool içinden instance seçer. Aynı ürün CDN, gateway ve balancer rolleri taşıyabilir; bazı uygulamalarda CDN bulunmayabilir. Her request/response boundary’si ayrı receipt taşır. DNS cache sonucu, CDN cache hit’i veya origin response’u aynı state değildir.
Normal sahne, verilen resolution ve edge cache miss kararından sonra başlar: edge backend request’ini hazırlamıştır, balancer henüz almamıştır. Request balancer’a ulaştığında application-a hazır olduğu için seçilir; application pool Tea note response’u üretir. Response balancer üzerinden edge’e döndüğünde bu sahne biter. Client/resolver hâlâ bekler; son viewer delivery burada gösterilmez. Yerel adapter bu ilişkiyi process içinde değerlendirir, DNS, CDN, TLS veya gerçek network delivery çalıştırmaz.
Scale-out, ready capacity ve high availability
Horizontal scaling daha fazla instance veya replica ile işi paylaşır; vertical scaling mevcut instance’a daha fazla resource ayırır. Desired replica count controller’ın hedefidir; created ve ready instance sayıları bu hedefe aynı anda ulaşmayabilir. Kubernetes HPA, periyodik metrics ve control loop ile scale target’ını güncelleyen somut örnektir. Application startup, dependency initialization ve readiness ayrı ilerler. Buradaki desired 3 ve ready 2 değerleri örnek koşullarıdır; production threshold veya ölçülmüş HPA formula sonucu değildir.
High availability, belirli user flow’un failure durumlarında kullanılabilir kalması hedefidir. Birden fazla replica tek shared database, edge config veya fault domain sorununu kendiliğinden çözmez. Ayakta kalan replica’nın yeterli capacity taşıması, routing’in doğru olması ve gerekli state’i okuyabilmesi gerekir. Örnekte a hazır değilken public read b’ye yönlendirilir. Bu sınırlı routing sonucu regional failover veya uptime SLA ölçümü değildir.
Health check belirli predicate ve observation kapsamına ilişkin bilgi verir. Liveness process recovery kararına, readiness traffic eligibility’ye hizmet edebilir; end-to-end synthetic check ise user flow hakkında ayrı soru sorar. Eksik readiness alanı unknown’dur, ölçülmüş false ile aynı health bilgisi değildir. Policy her iki instance’ı da eligible listeden çıkarabilir, fakat nedenlerini ayrı tutmalıdır. Probe response’u authentication veya note-level authorization kanıtı değildir.
2. Red · Güven ve etki
Hareket olmadan bütün senaryoları oku
Desired ve ready
- Scaler intent’i
DesiredBefore 2, desiredAfter 3 ve createdAfter 3. Bu sayılar provisioning intent ve existence gösterir; readyDuringInit hâlâ 2, yeni app-c ready false.
- Pool ve scale ledger
- Desired3 / created3 / ready2
- Traffic eligibility gate
- Henüz değerlendirilmedi
- Public read sonucu
- Henüz değerlendirilmedi
- Eligible pool’u hesapla
Traffic seçimi yalnız literal ready true alanına bağlı. App-c yaratılmış olsa da init sırasında eligible değil; target sayısını desired count’tan kopyalamak yanlış karar verir.
- Pool ve scale ledger
- Desired3 / created3 / ready2
- Traffic eligibility gate
- Init eligible app-a/app-b only
- Public read sonucu
- Henüz değerlendirilmedi
- Capacity iddiasını sınırlı tut
ReadyAfter 3 app-c’nin pool’a eklenmesini gösterir, measuredCapacity false. Üç ready instance üç bağımsız failure domain veya SLA başarısı değildir.
- Pool ve scale ledger
- Desired3 / created3 / ready2
- Traffic eligibility gate
- Init eligible app-a/app-b only
- Public read sonucu
- Ready3 / capacity unmeasured
- Bir target down
OneDown app-a ready false, app-b true verir; deterministic policy app-b seçer. Public response servedBy app-b ilişkisinin doğru olması routing sorusunu yanıtlar.
- Pool ve scale ledger
- app-a false / app-b selected
- Traffic eligibility gate
- Init eligible app-a/app-b only
- Public read sonucu
- Ready3 / capacity unmeasured
- Authority başka owner’da
Health veya readiness private operation yetkisi vermez. Bu örnek public note read; privateAuthorizationVerified false ve business policy ilgili application owner’ında kalır.
- Pool ve scale ledger
- app-a false / app-b selected
- Traffic eligibility gate
- Readiness ≠ private authorization
- Public read sonucu
- Ready3 / capacity unmeasured
- Teslim sınırını koru
Normal sonuç edge received response’ta biter. Client delivery ölçülmez; public title’ın edge’e ulaşmasını tamamlanmış viewer akışı veya regional failover diye raporlamıyoruz.
- Pool ve scale ledger
- app-a false / app-b selected
- Traffic eligibility gate
- Readiness ≠ private authorization
- Public read sonucu
- Edge response known / client delivery outside scope
Unknown pool
- Readiness eksik
app-unknown için readinessObserved false ve health unknown. Alan yokluğu verified healthy veya confirmed failure değildir; ikisi de farklı evidence ister.
- Pool ve scale ledger
- Unknown health / missing readiness
- Traffic eligibility gate
- Henüz değerlendirilmedi
- Public read sonucu
- Henüz değerlendirilmedi
- Güvenli eligible set
Selected control literal true ister. app-a false ve app-unknown missing olduğunda eligible boş; unknown’u default true yapmak bu policy’yi bozar.
- Pool ve scale ledger
- Unknown health / missing readiness
- Traffic eligibility gate
- False + missing → eligible empty
- Public read sonucu
- Henüz değerlendirilmedi
- Forwarding olmadan 503
NoReady selected null, forwarded false ve status 503 üretir. Application receipt veya note read bu branch’te yok; unavailable result belirli bir process crash teşhisi değildir.
- Pool ve scale ledger
- Unknown health / missing readiness
- Traffic eligibility gate
- False + missing → eligible empty
- Public read sonucu
- No target / no forwarding / 503
- DNS başka mekanizma
dnsAnswerAlias edge-demo verilmiş isim çözümleme bilgisidir; dnsQueryExecuted false. DNS HTTP forwarder değil; name resolution başarısı ready application bulmayı garanti etmez.
- Pool ve scale ledger
- DNS answer ≠ ready target
- Traffic eligibility gate
- False + missing → eligible empty
- Public read sonucu
- No target / no forwarding / 503
- Failure domain sorusu
App-a/app-b ortak dependency paylaşabilir. Ready count veya tek finite failover branch’i measured availability, capacity ve failure-domain bağımsızlığı iddiası sağlamaz.
- Pool ve scale ledger
- DNS answer ≠ ready target
- Traffic eligibility gate
- Replica count ≠ independent availability
- Public read sonucu
- No target / no forwarding / 503
- Unknown reason’ı koru
Traffic verilmemesi known policy sonucudur, eksik readiness nedeni unknown kalır. Health-check 200 veya process alive bilgisi olsa bile caller authority ayrıca değerlendirilir.
- Pool ve scale ledger
- DNS answer ≠ ready target
- Traffic eligibility gate
- Replica count ≠ independent availability
- Public read sonucu
- No-ready decision known / cause unknown
VARSAYIM · SINIR · KONTROL
Ad çözümlemeyi ve kutu sayısını availability sanmak
DNS lookup başarısı, public request’in bütün zincir boyunca tamamlanacağını söylemez. CDN cache miss, eligible target bulunamaması ve application dependency hatası ayrı boundary’lerdir. Review son status’u doğrudan tek bir origin failure’a bağlamak yerine request’in ve response’un hangi owner’a ulaştığını izler. Sahnenin edge receipt’te bitmesi, henüz client’a ulaşmamış representation’ı tamamlanmış user flow saymayı engeller.
Desired 3 görünmesini kullanılabilir capacity 3 diye okumak provisioning ve startup sırasında yanlış risk hesabı oluşturur. Üç instance’ın aynı shared dependency’ye bağlı olması üç bağımsız availability yolu sağlamaz. Scale hedefi ve traffic eligibility ayrı verilerdir. Örnekte yeni c için ready false iken eligible set yalnız a ve b’dir; ready true verildiğinde c eklenir. Gerçek paralel capacity veya latency ölçülmez.
Eksik observation’ı sağlıklı veya yetkili saymak
Eksik readiness alanına true default vermek bilinmeyen target’a trafik yönlendirebilir. False default verip bunu doğrulanmış failure diye raporlamak da kanıtı yanlış yorumlar. Örnekte yalnız literal true eligible kabul edilir; eksik alanın nedeni unknown kalır. No-ready dalı request’i application’a hiç göndermeden unavailable sonucu üretir. Bu, instance’ların neden unready olduğuna dair diagnostic evidence yerine geçmez.
Health-check 200 veya çalışan process, private operation için caller yetkisi sağlamaz. Authentication, authorization ve business sonucu kendi owner’ında doğrulanır. Örnekte yalnız public note okunur; private object permission ölçülmez. Gerçek health tasarımında observation age ve ortak failure-domain bağımlılıkları da değerlendirilir. Yerel boolean adapter bütün vendor’ların fail-open veya fail-closed davranışını temsil etmez.
3. Blue · Güvenli geliştirme ve savunma
Hareket olmadan bütün senaryoları oku
Pool kontrolleri
- Normal ready baseline
Normal pool app-a ve app-b için true taşıyor; deterministic first-ready app-a seçiyor. Result servedBy app-a ve Tea note; instance relation ayrı kontrol edilir.
- Readiness kayıtları
- app-a selected / servedBy app-a
- Routing review
- Henüz değerlendirilmedi
- Outcome evidence
- Henüz değerlendirilmedi
- Down branch karşılaştırması
App-a false olduğunda app-b true kaldığı için app-b seçilir. Bu olumlu fallback sonucu hangi target’ın servis verdiğini gösterir; gerçek balancer veya cloud failover ölçümü değildir.
- Readiness kayıtları
- app-a selected / servedBy app-a
- Routing review
- app-b selected / servedBy app-b
- Outcome evidence
- Henüz değerlendirilmedi
- Unknown ile false ayrımı
NoReady input false ve missing readiness içerir. İkisi eligible değil, fakat missing reason unknown’dur; confirmed unready gözlemiyle tek kayıtta birleştirilmez.
- Readiness kayıtları
- app-a selected / servedBy app-a
- Routing review
- app-b selected / servedBy app-b
- Outcome evidence
- Both ineligible / evidence reasons distinct
- Scale zamanı bağlamı
Desired, created ve ready count birlikte tutulur. Init aşamasında 2, tamamlandığında 3 ready instance; bu authored aşamalar latency veya autoscaler algorithm benchmark’ı değildir.
- Readiness kayıtları
- Intent/existence/readiness distinct
- Routing review
- app-b selected / servedBy app-b
- Outcome evidence
- Both ineligible / evidence reasons distinct
- Outcome recipient’i
Edge response receipt’i client delivery yerine sayılmaz. User-flow success için correct title, usable status ve gerçek recipient aşaması gerekir; sahnenin son owner’ı scope’u daraltır.
- Readiness kayıtları
- Intent/existence/readiness distinct
- Routing review
- Edge receipt / client completion unmeasured
- Outcome evidence
- Both ineligible / evidence reasons distinct
- Finite routing kanıtı
Input listesi bağımsız filtrelenip selected target ile servedBy karşılaştırılır. Bu düzeyde route kararı bilinir; DNS, Kubernetes, capacity ve SLA sonucu eklenmez.
- Readiness kayıtları
- Intent/existence/readiness distinct
- Routing review
- Edge receipt / client completion unmeasured
- Outcome evidence
- Finite selection verified / availability broader
Health kaydı yok
- Target sayısı görünür
Review yalnız created count 3 değerini görüyor; readiness veya selected target kaydı yok. Üç process’in listelenmesi public request’in hangi instance’a ulaştığını açıklamaz.
- Readiness kayıtları
- Created3 / readiness missing
- Routing review
- Henüz değerlendirilmedi
- Outcome evidence
- Henüz değerlendirilmedi
- Beklenen pool’u kopyalama
Scale fixture readyDuringInit 2 ve readyAfter 3 bekler. Eksik olayın readiness alanına after state’i eklemek, init aşamasını tamamlanmış gibi gösterebilir.
- Readiness kayıtları
- Created3 / readiness missing
- Routing review
- Expected ready set ≠ observation
- Outcome evidence
- Henüz değerlendirilmedi
- User-flow belirsizliği
Current eligible set, selected target ve edge/client delivery UNKNOWN. Created count yalnız existence gözlemidir; healthy, usable capacity veya request success değildir.
- Readiness kayıtları
- Created3 / readiness missing
- Routing review
- Expected ready set ≠ observation
- Outcome evidence
- Eligibility/selection/delivery UNKNOWN
- Gerekli route correlation
Observed readiness zamanı, route purpose, selected instance ve response source gerekli. Pool ve application sonucu aynı public request’e bağlanmalı; private body toplamak gerekmez.
- Readiness kayıtları
- Needed: ready time/target/result recipient
- Routing review
- Expected ready set ≠ observation
- Outcome evidence
- Eligibility/selection/delivery UNKNOWN
- Signal health ayrı
Readiness kaydı gelmemesi target failure veya telemetry failure olabilir. Observation pipeline kapsamı bilinmeden boş health tablosu bütün pool’un down olduğunu kanıtlamaz.
- Readiness kayıtları
- Needed: ready time/target/result recipient
- Routing review
- Target health ≠ observation pipeline health
- Outcome evidence
- Eligibility/selection/delivery UNKNOWN
- Yeni kanıtın amacı
Yeni kayıt routing kararını ve teslim recipient’ini ayrı yanıtlamalı. Bu olayda yalnız created count korunur; SLA veya server permission başarısı için ek sonuç çıkarılmaz.
- Readiness kayıtları
- Needed: ready time/target/result recipient
- Routing review
- Target health ≠ observation pipeline health
- Outcome evidence
- Collect scoped routing/delivery evidence
UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA
Intent, observation ve selected target ayrı alanlar
Scaling defterinde desired hedefini, oluşturulan instance’ları ve ready set’i birlikte fakat ayrı alanlarda tut. Public read’in amacı, seçilen instance ve result source görünür olsun. Aynı artifact ve version’ın bütün ready instance’larda bulunması ayrıca configuration kanıtı ister; instance sayısı bunu göstermez. Bu örnekteki first-ready policy belirlenmiş seçim kuralıdır. Yerel kontrol input listelerini bağımsız filtreleyerek eksik, false ve true readiness alanlarını ayırır.
Normal path’te edge’den balancer’a, oradan application’a request receipt’i ve ters yöndeki response receipt’leri ayrı snapshot’larda izlenir. Receiver’ın bilgisi mesaj ona ulaştığında değişir. Pool’un authoritative note okuması yerel adapter işlemidir. Public-note sonucunu bağımsız JSON parse ederek selected instance ilişkisi ve title kontrol edilir; gerçek DNS, load balancer veya cloud API çağrısı yapılmaz.
Availability iddiasını kullanıcı akışına bağla
Seçilen operation için başarı koşulunu açık yaz: doğru public title, uygun status ve hangi endpoint’e teslim edildiği. Replica-down dalında b’den sonuç alınması ile no-ready dalında hiç forwarding yapılmaması farklı sonuçlardır. HA iddiası ölçülmüş user-flow availability, kalan capacity ve failure-domain kanıtı ister; bu sınırlı case’lerden yüzde veya SLA çıkarılmaz. DNS TTL ya da CDN cache ömrü de her yere anında yayılma garantisi değildir.
Application health ile telemetry pipeline health’ini ayrı değerlendir; sonraki ders bu gözlem sınırını açar. Eksik observation’ı event veya failure yokluğu ile eşitleme. XML selector unknown readiness ile selected=true tutarsızlığını arar. Sıfır eşleşme tek başına doğru routing kanıtı değildir; hangi input ve observation’ın mevcut olduğu bilinmelidir. Sahnedeki tamamlanmış adım gerçek deployment veya permission grant oluşturmaz.
ŞİMDİ VAKAYA UYGULA
Desired replica sayısı traffic eligibility veya availability mi?
Normal public read app-a’dan Tea note alıyor. App-a unready olduğunda app-b seçiliyor; yeni app-c yaratıldığında ready olana kadar pool büyümüyor. Readiness alanı bulunmayan app-unknown sağlıklı sayılmıyor; hiç ready target yoksa forwarding yapılmadan 503 üretiliyor.
Vakadaki data journey’yi environment, dependency ve telemetry context’iyle birlikte değerlendir. Bir operational success etiketi bütün application sonuçlarını kanıtlar mı?
Bağlı vaka dosyasını aç ↗ÖRNEĞİ BİRLİKTE OKUYALIM
Traffic, readiness ve replica karar defteri
Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.
Ham kaydı ve alan açıklamalarını oku
{
"topology": {
"logicalChain": [
"DNS resolution",
"CDN role",
"balancer role",
"application role"
],
"mandatoryEverySite": false,
"dnsAnswerAlias": "edge-demo",
"dnsNameAlias": "public.example.invalid",
"dnsQueryExecuted": false,
"dnsIsHttpForwarder": false
},
"normal": {
"edgeDecision": "supplied miss",
"ready": [
{
"id": "app-a",
"ready": true
},
{
"id": "app-b",
"ready": true
}
],
"selected": "app-a",
"response": {
"id": "tea",
"title": "Tea note",
"servedBy": "app-a"
},
"stopsAt": "edge received response; client delivery outside scene"
},
"oneDown": {
"ready": [
{
"id": "app-a",
"ready": false
},
{
"id": "app-b",
"ready": true
}
],
"selected": "app-b",
"response": {
"id": "tea",
"title": "Tea note",
"servedBy": "app-b"
},
"regionalFailoverMeasured": false
},
"scale": {
"desiredBefore": 2,
"desiredAfter": 3,
"createdAfter": 3,
"readyBefore": 2,
"readyDuringInit": 2,
"readyAfter": 3,
"newInstance": "app-c",
"newReadyDuring": false,
"newReadyAfter": true,
"hpaAlgorithmExecuted": false,
"capacityMeasured": false
},
"unknownHealth": {
"instance": "app-unknown",
"readinessObserved": false,
"health": "unknown",
"selected": false,
"reason": "missing-readiness"
},
"noReady": {
"instances": [
{
"id": "app-a",
"ready": false
},
{
"id": "app-unknown"
}
],
"eligible": [],
"selected": null,
"forwarded": false,
"status": 503
},
"limits": {
"realDnsExecuted": false,
"realCdnExecuted": false,
"realLoadBalancerExecuted": false,
"kubernetesExecuted": false,
"realNetworkExecuted": false,
"slaMeasured": false,
"privateAuthorizationVerified": false
},
"selector": {
"language": "XPath",
"xml": "<audit><health observation=\"unknown\" selected=\"false\"/></audit>",
"xpath": "count(/audit/health[@observation='unknown' and @selected='true'])",
"expected": 0,
"positiveFixtureXml": "<audit><health observation=\"unknown\" selected=\"true\"/></audit>",
"positiveExpected": 1,
"scope": "Own inert decision observations, not vendor log fields.",
"missingFieldBehavior": "Missing observation is insufficient evidence; zero matches alone proves no healthy runtime/control."
}
}- topology/normal
- Verilen name resolution ile sınırlı origin path farklı receipt’ler taşır.
- scale
- Desired, created ve ready sayıları ayrıdır; HPA veya capacity ölçülmez.
- unknownHealth/noReady
- Eksik observation unknown kalır; yalnız literal true traffic seçimine uygundur.
- selector/limits
- Yerel health kararı; gerçek DNS, cloud, HA veya private permission ölçümü yok.
Process içinde çalışan sınırlı readiness ve route adapter’larıyla ölçüm yapılır; sahnedeki uzak mesajlar kavramsaldır. DNS query, gerçek CDN/load balancer, cloud deployment, SLA veya capacity ölçümü yapılmaz.
İki yanlış kanı
Başarılı DNS çözümü veya desired 3, üç healthy instance ve tamamlanmış user flow demektir.
Resolution, desired hedefi, ready eligibility ve response delivery ayrı gözlemler gerektirir.
Health event yoksa failure yoktur ve caller yetkilidir.
Eksik observation unknown kalır; health predicate authorization veya tamamlanmış user flow kanıtı değildir.
SIRA SENDE
Bu hikâyeyi sen çöz.
Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.
Desired instance sayısı 2’den 3’e çıktı ve 3 instance oluşturuldu. Yeni app-c henüz ready değil. Uygun instance sayısı hemen 3 olur mu?
- Hayır. readyDuringInit=2; app-c beklenir.
- Evet. Desired sayının artırılması capacity’nin ölçülmüş artışıdır.
Gerekçeli cevabı oku
Hayır. readyDuringInit=2; app-c beklenir. — Instance’ın var olması request kabul edebildiğini göstermez. Bu örnekte app-c ready olduğunda readyAfter=3 olur.
app-a ready değil; app-unknown için readiness alanı yok. Balancer hangi node’a request gönderir?
Dersten seçilen artifact alanları; öğretim örneği
- noReady.instances
- [{"id":"app-a","ready":false},{"id":"app-unknown"}]
- noReady.eligible
- []
- noReady.forwarded
- false
- noReady.status
- 503
- app-unknown seçilir; hata görünmemesi healthy olduğunu kanıtlar.
- Hiçbirine. Eligible liste boş; forwarding yok ve status 503.
Gerekçeli cevabı oku
Hiçbirine. Eligible liste boş; forwarding yok ve status 503. — Eksik readiness kaydı healthy varsayılmıyor. Bilinen false ile bilinmeyen durum farklı olsa da bu policy ikisine de dispatch yapmaz.
Normal akış edge’in response almasıyla bitiyor; oneDown branch’i app-b’yi seçiyor. Neden bu kayıtları client delivery veya regional failover ölçümü sayamayız?
Gerekçeli cevabı oku
Edge response’u almıştır; client delivery scene’in dışındadır. oneDown yalnız verilen instance readiness listesinden app-b’yi seçer; regionalFailoverMeasured=false. DNS burada resolution role’üdür, HTTP forwarder değildir. Bu mantıksal topology bütün siteler için zorunlu değildir; gerçek DNS/CDN/load balancer veya SLA ölçümü yapılmaz.
□ Edge receipt ile client delivery’yi ayırdım.
□ Yerel instance seçimini regional failover veya SLA kanıtı saymadım.
Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç
Kaynaklar ve kapsam
- RFC 1034 — Domain Names: Concepts and Facilities2.4. Elements of the DNS
- Amazon CloudFront — How CloudFront delivers contentHow CloudFront delivers content to your users · How CloudFront works with regional edge caches
- Kubernetes — Horizontal Pod AutoscalingOpening paragraphs: horizontal versus vertical scaling · How does a HorizontalPodAutoscaler work? · Pod readiness and autoscaling metrics
- Kubernetes — Pod LifecyclePod phase · Readiness probe · Liveness probe
- Microsoft Learn — Monitoring workload reliabilityMonitor workload functionality · Track availability targets · Make alerts actionable with a health model · Monitor load distribution across redundant instances