CDN (Content Delivery Network/İçerik Teslimat Ağı) coğrafi olarak yayılmış halde bulunan sunucuların birlikte çalışarak internet içeriklerinin hızlı teslimatlarını sağlamaya yönelik oluşturulan ağlara denir. CDN, web kaynaklarının (HTML sayfaları, javascript, css dosyaları, stiller, imajlar, videolar vb.) hızlı bir şekilde transfer edilmesini kolaylaştırır. CDN günümüzdeki web trafiğinin en az yarısına hizmet etmektedir.
(Soldaki görselde bir web sunucusunun birden fazla kullanıcıya hizmet vermeye çalıştığını görüyoruz. Sağdaki görsel ise CDN PoP’larının birden fazla kullanıcıya ayrı ayrı hizmet verdiğini görüyoruz.)
Web sitelerin yüklenme hızları ziyaretçileri oldukça etkilemektedir. Modern web zengin içeriklerin bol olduğu bir yer haline geldi. Bu durum web tasarımların geç yüklenmesine sebep olabilecek dezavantajları ortaya çıkardı.
Araştırmalara göre bir web sitesinde yaşanan 2 saniyelik gecikme kullanıcıların yüzde 4’ünde memnuniyetsizlik yaratıyor. Bununla birlikte ziyaretçi başına yüzde 4.3’lük gelir kaybı da yaşanmaktadır. Yaşanan gecikmeler her ne kadar web tasarımların yazılım geliştirme sürecindeki içerik sunma politikalarının yanlış ya da eksik tasarlanmasından kaynaklansa da en ciddi problem web sunucuların ve kullanıcıların lokasyonları arasındaki uzun mesafelerdir. Bunu bir örnekle açıklamak gerekirse Türkiye’de web sunucusu bulunan bir web sitenin ABD üzerinden bir bağlantı gerçekleştirilmek istendiğinde internette gerçekleşecek içerik transferlerinin gecikmesi artar. Bundan sebep Türkiye Lokasyona ait web sitesi geç yüklenir ve geç kullanıma hazır hale gelir. Peki, CDN ile bu problem nasıl çözülüyor?
CDN, 1990’ların sonlarına doğru ortaya çıkmasına rağmen o zamanın koşulları gereği çok maliyetliydi. Günümüzde ise durumlar daha farklı noktalara geldi. Sunucu sağlayıcıları artık CDN servislerini ek hizmet olarak vermektedir.
CDN, web sunucuları ve kullanıcılar arasındaki mesafeyi azaltmak amacıyla statik web içeriklerini çeşitli coğrafi noktalarda bulunan PoP (Points of Presence/Bulunma Noktaları) adındaki sunuculardaki önbelleklerde saklar. Bir web siteyi ziyaret etmek isteyen kullanıcı doğrudan web sunucuyla bağlantı kurmak yerine kendisine en yakın PoP ile bağlantı gerçekleştirir. Eğer kullanıcının talep ettiği içerikler CDN tarafındaki önbellekte yer alıyorsa PoP istenen içerikleri doğrudan kullanıcıya sunar ama eğer PoP gelen isteğe önbellekteki dosyalar içerisinden cevap veremiyorsa ters proxy sunucusu görevi görerek kullanıcı ve web sunucusu arasında bir köprü oluşturur, böylelikle kullanıcı istediği içeriğe erişebilir.
PoP (Points of Presence/Bulunma Noktaları) coğrafi olarak stratejik önem taşıyan noktalarda bulunan, kullanıcıların isteklerine cevap vermek üzere tasarlanmış veri merkezleridir. Buradaki asıl amaç kullanıcıların yaptıkları isteklere kısa bir zaman dilimi içerisinde cevap vermektir. Her PoP kendi içerisinde birden fazla önbellek sunucusuna sahiptir.
Önbellek sunucusu, web servislerin talep ettiği statik (duruma göre dinamik) dosyaların ve içeriklerin saklanmasını sağlar. Özellikle statik içerikler için web siteler her yenilendiğinde ya da ziyaret edildiğinde tekrar tekrar web sunuculara istek yapılmamasını ve bundan dolayı bant genişliğinin kullanımını minimal değerlerde tutulmasını sağlar.
Önbellek sunucuları 3 temel depolama birimi kullanır: SSD, HDD ve RAM. SSD’ler CDN’lerde artık temel taş haline geldiği için HDD’lerin kullanımı gün geçtikçe azalmaktadır. SSD’lerde az sıklıkla talep edilen içerikler tutularken RAM’lerde ise çok sık aralıklarla istenen içerikler tutulur.
Siber güvenlik günümüzde artık olmazsa olmaz bir noktaya geldi. Bundan dolayı web sitelerin güvenlikleri de söz konusu bir halde. CDN sayesinde web sitelerde erişilmesi istenmeyen içerikler engelleniyor ve özellikle DDoS (Distributed Denial of Service) saldırıları absorbe edilerek hizmet kesintisi yaşanmamasının önüne geçiliyor.
CDN yüksek hızlı internet trafiğini karşılayabilecek yönlendirici sistemlere sahip olduğu için büyük çaplı trafikleri sorunsuz bir şekilde dağıtabilmektedir.
CDN temelinde internet içeriklerinin hızlı iletilmesinden sorumludur. Bunu gerçekleştirebilmek için PoP’ların coğrafi konumları büyük önem taşımaktadır. CDN tasarımı yapılırken bu durum göz önüne alındığı için hızlı iletimi sağlayacak sistemler ve ağlar tercih edilir.
CDN önbelleğindeki bir içeriği temizlemek istediğinizde ilgili tüm PoP’larla iletişim kurulması gerekmektedir. Bir web site coğrafi olarak ne kadar geniş kitleye hitap ediyorsa o kadar da değişikliklerin adaptasyonunda gecikme yaşanır.
Çok sayıda PoP coğrafi olarak geniş bir alana yerleştirilir. Dağıtık CDN, fiziksel yakınlığın önemsendiği durumlarda kullanılır. Fiber optik teknolojisinin gelişmesiyle beraber internet hızlarında büyük miktarda yaşanan artışlardan dolayı artık çok kısa mesafelerde konumlandırılmış PoP’lara ihtiyaç duyulmamaktadır. Fakat her ne kadar fiber optik teknolojisi hızlarda büyük oranda artış sağlasa da hala dağıtık CDN hız artışını bir üst noktaya daha çıkartmak için tercih edilir. Dağıtık CDN’in bakım masrafları bir hayli fazladır.
Dağıtık CDN’deki PoP sayısının aksine birleşik CDN’de makul miktarda PoP bulunur. PoP’lar genellikle coğrafi olarak en kritik noktalara yerleştirilir. Birleşik CDN’in merkezi altyapısından dolayı projeleri yönetmek daha da kolaydır. Özellikle cevap verebilirlik (responsiveness) konusunda yaşanması mümkün olan problemler birleşik CDN sayesinde en minimal düzeye indirilir. Birleşik CDN’in bakım tutarları dağıtık CDN’e göre çok daha azdır.