CDN nedir ve neden kullanmalısınız?

Dikkat: Bu yazının yazılma tarihinin üzerinden en az 60 gün geçmiş. İçerisindeki bilgiler güncelliğini yitirmiş olabilir. Yorumları ve güncellemeleri göz önünde bulundurarak yazıyı takip ediniz.
CDN: Content Delivery Network'ün kısaltması ve İçerik Dağıtım Ağı olarak Türkçe'ye çevirebilecek bir kavram. CDN'ler, statik içeriklerinizin normalde daha hızlı tarayıcıya ulaştırılması için düşünülmüş bir dağıtım yapısıdır.

Statik içerik nedir?

Statik içerik grubuna, javascript, css, görseller, statik html dosyaları gibi, bir sunucu programlama dili ile dinamik şekilde oluşturulmayan tüm içerikleri dahil edebilirsiniz. Bir kere hazırlanıp sunucuya konduktan sonra değişmeyeceği planlanan içerikleri, farklı coğrafyalardaki veri merkezlerine dağıtarak, kullanıcılara daha hızlı iletmeyi amaçlayan içerik dağıtım ağları sadece bulut servis sağlayıcıları tarafından sağlanıyor.

Basitçe, iki tür CDN vardır, biri genel amaçlara yönelik tasarlanan, herkese açık ve dökümante edilmiş CDN'ler, diğeri de özel tasarlanmış ve genellikle kapalı kullanım için tasarlanmış olanlardır.

İkinci model, ileri aşamada yapacağınız bir geliştirme olacağı için şu an detaylarına girmeyeceğim. Size bu yazıda, özetle ilk model açıklayıp örnekleyeceğim. İlk modeli kullandığınız kütüphane bazlı projeler (örnegin jQuery, twitter bootstrap, angular, backbone...) kendi networkleri aracılığıyla sağlıyorlar veya google, microsoft gibi büyük bulut servis sağlayıcıları, birden fazla projeyi içeren herkese açık CDN servisleri sağlıyorlar.

Nasıl çalışıyor?

Bir websitesi hazırladınız; arayüzü twitter bootstrap ile şekillendirdiniz; jQuery kullanan birkaç kütüphane ile sitenizi interaktifleştirdiniz ve fontwesome kullanarak da elementlerinize semboller ekleyerek arayüzünüzü güçlendirdiniz. Bu kütüphanelerden bazısı sadece tek bir javascript dosyası, bazısı da css ve başka formatlarda dosyalar kullanmanızı gerektiriyor. Normalde, bütün bu dosyaları geliştirme ortamınızda sitenizin asıl dosyaları ile beraber sunmanız ve öyle kullanmanız gerekiyor.

Sitenize giren kullanıcı, tarayıcıda bir sayfa bile ziyaret etse hem sayfanızı istiyor hem de bütün javascriptleri, kütüphaneleri, görselleri, css stil dosyalarını istiyor. Sayfanızı her halükarda sunmak zorundasınız ancak sayfanızda kullandığınız statik dosyaları bu CDN servislerinden adresleyerek tarayıcıların o kütüphaneleri o servislerin domainlerinden indirmesini sağlayabilirsiniz. Bu servisler bu statik dosyaları olabilecek en hızlı şekilde sunmak üzere tasarlandıkları için her zaman sizden daha iyi çalışacaklardır. Ayrıca fakrlı bir domainde oldukları için daha önce yüklenmeye başlayacaklar (parallel download) ve muhtemelen başka bir sitede kullanıcı o dosyayı daha önce indirdiği ve uzun cache periyodlarıyla kullanıcının bilgisayarında saklandıkları için de muhtemelen tekrar indirilmeden doğrudan tarayıcıya yükleneceklerdir. Sitenizde belirli bir kutuphane icin CDN kullanmak için:
<script src="js/jquery-2.0.2.min.js"></script>
yerine
<script src="http://code.jquery.com/jquery-2.0.2.min.js"></script>
kullanmanız yeterli olacak. Gördüğünüz gibi bu jquery'e özel tanımlanmış bir CDN adresi. Herkese açık ve birden fazla kütühane içeren ortak CDN servislerini tercih etmeniz daha iyi performans almanızı sağlayabilir.

Sonuç olarak bu servisler sadece bu amaca hizmet etmek için çalıştıkları için siz sitenizi veya bu statik içeriklerinizi ne kadar optimize ederseniz edin en iyi ihtimalle onlara yakın, çoğu zaman daha düşük bir performansta çalışacağı için CDN'leri kullanarak zaman ve performans kazanabilirsiniz.

Peki, hangi servis?

Ufak bir araştırma ile herkese açık bir çok CDN servisi bulabilirsiniz hem de kafanızı karıştıracak miktarda. Aralarından en çok kütüphaneyi bir arada bulabileceğiniz bir tanesini tavsiye edip bitireceğim. Cloudflare'in bir çok popüler kütüphaneyi içeren herkese açık CDN servisini kullanarak büyük dağıtma ağına sahip performansından yararlanabilirsiniz.

http://cdnjs.com adresinden kullanmak istediğiniz kütüphaneyi seçip kullandığınız sürümüne ait adresini kodunuzdaki adreslemeyle değiştirebilirsiniz.

Yorumlar

Üye Resmi serkan
24 Ağustos Pazar ´14 17:00
Yaygın olan bir cdn den dosyaları kullanmanın ekstra bir iyi tarafıda olacaktır.   cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js kullandık diyelim sitemizde. ziyaretçi gezdiği sitelerde bu dosyayı kullanan bir siteye girmişse bizim sitemize girdiğinde tarayıcı tekrar yükleme yapmayabilir diye düşünüyorum yanlış mıyım?
Üye Resmi suat
18 Şubat Çarşamba ´15 06:24
Buypasa adında yeni bir alışveriş dünyası açılmaktadır. Bu alışveriş dünyasında yüzlerce marka binlerce ürün bulunmaktadır. Yanı buypasa.com ‘a girdiğinizde bu sitede yok yok diyebiliriz.
Üye Resmi Sedat Tiryaki
14 Mart Pazartesi ´16 12:47
Bu güzle bilgi için çok teşekkür ederim.
Üye Resmi H. Ozgun E
18 Haziran Cumartesi ´16 14:13
CDN Kullanmak her zaman dezavantajdır. Kullanılan linkler bundan 4-5 yıl sonra çalışmayabilir, yükleme problemleri çıkabilir. Kendi sunucunuz çalışıyor olabilir ama çektiğiniz linkler geç yükleniyor olabilir, scriptler yüklenemediği için site düzgün çalışmaz. 10 senelik deneyimime göre kullanılmaması gereken bir metottur bilginize. Kullanmak size kalmış.
Üye Resmi İstanbul Kürtaj
27 Temmuz Çarşamba ´16 03:29
Site için yavaşlatma v.s. etkileri varmı
Üye Resmi İstanbul vajinismus Tedavisi
29 Temmuz Cuma ´16 02:39
Teşekkürler bilgilendirme için saolun
Üye Resmi Kokulu Taş Tozu
31 Ağustos Çarşamba ´16 07:46
teşekkürler bilgilerinizi için
Üye Resmi Gökhan
22 Ekim Cumartesi ´16 11:52
Teşekkürler.
Üye Resmi Dis Cephe Mantolama
16 Kasım Çarşamba ´16 04:27
Yazınız güzel beğendim teşekkürler
Üye Resmi Ramazan Özdemir
7 Aralık Çarşamba ´16 16:17
Böyle güzel bir yazı için iftiharlarımızı sunarız, sürekli olarak sitenizi ziyaret edip diğer yazılarınızıda okumaktan mutluluk ve keyif duyuyor olduğumuzu belirtmek isteriz. <a href="https://www.ankaraprofesyonelnakliyat.com/" rel="dofollow" title="ankara evden eve nakliyat">ankara evden eve nakliyat</a> ekibi olarak daima sizlerin paylaşımlarınızı okuyacağımız için çok mutluyuz.
Yeni Yorum *
İletişim Bilgileri
*
*
E-Posta adresiniz gösterilmeyecektir.
(unut)
Güvenlik Kodu *

Gönderiliyor