CDN, içeriğin kopyalarını kullanıcıya coğrafi olarak yakın sunucularda tutan bir ağdır. Vaadi hız gibi görünür; asıl kazancı ise kaynak sunucunun korunmasıdır.
Neden yakınlık önemli
Bir isteğin süresini iki şey belirler: verinin boyutu ve mesafenin getirdiği gecikme.
Mesafe, ışığın hızıyla sınırlıdır. Sunucunuz Frankfurt’ta, kullanıcı İstanbul’daysa her gidiş dönüş kaçınılmaz bir süre alır — ve bir sayfa açılırken onlarca gidiş dönüş olur.
CDN, içeriği kullanıcının yakınındaki bir noktadan sunarak bu çarpanı küçültür. Etkisi bant genişliğinden çok gecikmede görülür; aynı fizik, uzak masaüstünde de belirleyicidir ve RDP nedir yazısında anlatılıyor.
Neyin önbelleğe alınabileceği
Bu ayrım, CDN’den alınan faydanın tamamını belirler.
Kolayca önbelleğe alınabilenler: görseller, biçim dosyaları, betikler, yazı tipleri, videolar ve herkese aynı görünen sayfalar. Bunlar genelde bir sitenin bayt olarak büyük bölümünü oluşturur.
Alınamayanlar: kullanıcıya özel sayfalar, sepet içeriği, oturum gerektiren her şey.
Kritik nokta, ikisinin ayrılmasıdır. Kullanıcıya özel bir parça yüzünden tüm sayfayı önbelleğe alamamak, yaygın ve pahalı bir tasarım hatasıdır. Sayfayı statik iskelet ve dinamik parçalar olarak ayırmak, önbellek oranını belirgin biçimde yükseltir.
Ayrımın kaynağı web sunucusu nedir yazısındaki statik–dinamik farkıdır.
Önbellek denetimi
Bir içeriğin ne kadar süre saklanacağını kaynak sunucu söyler. CDN bunu okur ve uygular.
Bu, sık atlanan bir sorumluluk devridir: CDN panelinden ayar yapmak, kaynak sunucunun gönderdiği talimatı her zaman ezmez. Beklenmedik önbellek davranışlarının çoğu buradan çıkar.
İki ayrı süre tanımlanabilir ve ikisini ayırmak çok işe yarar: içeriğin tarayıcıda ne kadar saklanacağı ve kenar sunucuda ne kadar saklanacağı. Kenarda uzun, tarayıcıda kısa tutmak yaygın ve sağlıklı bir düzendir — güncelleme yayıldığında tarayıcılar hızla yeni içeriği alır.
Geçersiz kılma ve sürümleme
İçerik güncellendiğinde eski kopyanın kenardan temizlenmesi gerekir. İki yaklaşım vardır.
Geçersiz kılma, CDN’e “bu adresi unut” demektir. Etkilidir ama yayılması zaman alır ve sık kullanıldığında oran düşer.
Sürümleme, daha sağlam olanıdır: dosya adına bir sürüm ya da özet eklenir. İçerik değiştiğinde ad da değişir, dolayısıyla eski kopya hiç sorgulanmaz.
Sürümleme, “değişikliği yayımladım ama kullanıcılar eskisini görüyor” sorununu tamamen ortadan kaldırır. Yayımlama sürecine bağlanması gerekir; çerçevesi CI/CD nedir yazısında.
Kaynak sunucuyu korumak
CDN’in en az konuşulan ama en değerli katkısı budur.
Trafiğin büyük bölümü kenardan karşılandığında, kaynak sunucuya ulaşan istek sayısı çarpıcı biçimde düşer. Bu, hem kapasite hem maliyet anlamına gelir.
Yanına iki şey eklenir. Kaynak sunucunun adresi gizlenir ve yalnızca CDN’den gelen trafiği kabul edecek biçimde kısıtlanır — böylece doğrudan hedef alınamaz.
Ve hacimsel saldırılar kenarda emilir. Bu, küçük ve orta ölçekli sistemlerin tek gerçekçi savunmasıdır; kaynak sunucunun hattı bunu taşıyamaz.
Kural yazımı ve hız sınırlama tarafı Cloud Armor ile temel WAF ve hız sınırlama yazısında.
Neyi çözmez
CDN, yavaş bir uygulamayı hızlandırmaz.
Önbelleğe alınamayan istekler yine kaynak sunucuya gider ve orada ne kadar sürüyorsa o kadar sürer. Veritabanı yavaşsa CDN bunu gizlemez; yavaş sorgu yazısı o tarafa bakıyor.
Ayrıca yeni bir bağımlılık ekler: CDN’de yaşanan bir kesinti, sizin sisteminiz ayakta olsa da sitenizi erişilemez kılar. Zincir çarpımının erişilebilirliğe etkisi SLA, SLO ve SLI farkı yazısında.
Ve bir yapılandırma hatası, kullanıcıya başka bir kullanıcının sayfasını gösterebilir. Oturum gerektiren içeriğin yanlışlıkla önbelleğe alınması, en ciddi CDN hatasıdır — yayına almadan önce açıkça sınanmalıdır.
Ne zaman gerekir
Üç durumda açık biçimde gereklidir: kullanıcılar coğrafi olarak dağınıksa, trafik dalgalanıyorsa ya da hacimsel saldırı riski varsa.
Tek bir şehirdeki kullanıcılara hizmet veren, düşük trafikli bir iç uygulama için ise gereksiz bir katmandır — ve her katman bir arıza noktasıdır.
Maliyet nasıl hesaplanır
CDN faturası genelde iki kalemden oluşur: kenardan servis edilen veri miktarı ve istek sayısı. Bölgeye göre birim fiyat değişir.
Sürpriz üreten kalem üçüncüsüdür: kaynak sunucudan kenara çekilen veri. Önbellek oranı düşükse aynı içerik defalarca çekilir ve bu, hem CDN hem sunucu tarafında ücretlendirilir.
Bu yüzden maliyeti düşüren tek etkili ayar, önbelleğe alınabilirliği artırmaktır. Aynı ilişki bulut depolamada da geçerlidir; bulut yedeklemede asıl maliyet geri getirmede yazısı o tarafa bakıyor.
Kısaca
CDN, içeriği kullanıcıya yaklaştırarak gecikmeyi düşürür; asıl kazancı ise kaynak sunucuya ulaşan istek sayısını azaltmasıdır.
Faydayı belirleyen tek şey önbelleğe alınabilen içeriğin oranıdır. Geçersiz kılmak yerine sürümlemeyi tercih edin ve yayına almadan önce oturum gerektiren sayfaların önbelleğe alınmadığını mutlaka sınayın.