Yazılım Geliştiriciler için Azure: Azure Content Delivery Network (CDN) – Bölüm 1
  1. Anasayfa
  2. Microsoft Azure

Yazılım Geliştiriciler için Azure: Azure Content Delivery Network (CDN) – Bölüm 1

0

Uygulama performansı çoğu zaman karşımıza çıkan önemli sorunlardan biri. Kod yazarken her ne kadar dikkat etsek de performansı etkileyen başka unsurlar da mevcut. Performans sorunlarına verilen ilk cevap herhangi bir inceleme yapmadan önce “networktendir” şeklinde olabiliyor, peki gerçekten network kaynaklı ise burada bizim yapabileceğimiz bir şeyler yok mu?

Content Delivery Network ya da kısaca CDN, coğrafi olarak dağıtılmış bir grup sunucunun birlikte çalışarak içeriği hızlıca dağıtması olarak tanımlanabilir. CDN sayesinde HTML, javascript, CSS gibi statik içerikler, resim ve video dosyaları gibi büyük boyutlu dosyaların daha hızlı transfer edilmesi sağlanır. Bu sayede web uygulamanızın daha hızlı yüklenmesi ve hatta DDoS saldırılarına karşı daha güçlü olması sağlanabilir.

CDN bunları sağlamak için yukarıda bahsettiğim statik dosyaları alarak dünya genelindeki yüzlerce Points-of-Presence (PoP) üzerine kopyalar. Uygulama tarafındaki tek değişiklik ise bu statik dosyaların adreslerinin ~/images/logo.png yerine https://mshowto.azureedge.com/logo.png olarak görünmesi. Bu sayede bu dosyalar uygulama üzerinden sunulmadığı ve istemciye en yakın PoP üzerinden erişim sağlanacağı için uygulama performansınızı büyük ölçüde arttıracaktır. Verdiğim örnek sadece web uygulaması için görünse de aslında mobil ve desktop uygulamalarınız içinde kullanmak istediğiniz video gibi büyük boyutlu dosyaları da CDN üzerinden sunmakla hem uygulama boyutu hem de performans açısından katkı sağlayabilirsiniz.

Azure CDN’in bizlere sunduğu özellikleri aşağıdaki gibi özetleyebiliriz.

  1. Dynamic Site Acceleration (DSA): Standart CDN, statik dosyaların kullanıcılara en yakın olacak şekilde cachelenmesini sağlıyor, ancak dinamik web uygulamaları kullanıcı davranışına göre içerik ürettiği için bu şekilde bir cache mümkün olmuyor. Azure CDN DSA optimizasyonu sayesinde dinamik içeriğin de gözle görülür şekilde arttırılması sağlanabiliyor.
  2. CDN Cacheleme Kuralları: Azure CDN, dosyalarınızın nasıl cacheleneceğini kontrol etmeniz için iki farklı yöntem sunuyor.
    1. Cacheleme Kuralları: Varsayılan cache süresini ayarlayabilir ve değiştirebilirsiniz. Global olarak değiştirebileceğiniz gibi özelleştirilmiş koşullar da tanımlayabilirsiniz. Burada da iki farklı tip bulunuyor.
      1. Genel cacheleme kuralları: CDN profilinde her bir endpoint için bir kural tanımlayabilirsiniz. Bu da o endpoint için gelen bütün istekleri etkiler.

        NOT: Bu özelliği kullanırken bütün http header cache direktiflerini de ezebilirsiniz.

      2. Özelleştirilmiş cacheleme kuralları: Her endpoint için bir ya da birden fazla kural tanımlayabilirsiniz. Belirli yollar ve dosya uzantıları için global caching kurallarını ezebilirsiniz.
    2. Query String Caching: Belirli query stringler için Azure CDN davranışını ayarlayabilirsiniz.

      NOT: Cachelenmesi mümkün olmayan bir dosya tipi ise bu ayarın bir etkisi olmayacaktır.

  3. HTTPS custom domain desteği: Kendi domain adresiniz için HTTPS desteği ile Azure CDN hizmetinden faydalanabilirsiniz.
  4. Azure Diagnostic Logs: CDN’e ait kullanıcı metriklerini Blob Storage, Event Hubs ve Log Analytics gibi servislere export ederek bu verileri kullanabilirsiniz.
  5. Dosya Sıkıştırma: Dosya boyutunu küçülterek transfer hızını ve sayfa yükleme performansını arttırabilirsiniz.
  6. Geo-Filtering: Belirli ülkelerden içeriğe erişimi engelleyebilirsiniz.

Şimdi basit bir örnek vererek; Azure App Service üzerinden statik bir site için bir CDN endpoint nasıl tanımlarız inceleyelim. App Service üzerinde, Resim-1‘de göreceğiniz gibi aramaya “cdn” yazarak hızlıca Networking altında bulunan Azure CDN’e erişebiliyoruz.

Resim-1

Resim-2‘de yeni bir endpoint tanımı için yeni bir CDN profili oluşturuyoruz. Profil ismi, pricing tier seçimi, endpoint ismini ve son olarak da origin hostname değerini (web app adresimiz olarak yazıyoruz) girdikten sonra Create butonuna basmamız yeterli.

Resim-2

Yeni bir endpoint ekleme işlemi sonrasında yine aynı sayfada bulunan Endpoints altında oluşturduğumuz endpoint’in durumunu görebilirsiniz.

Resim-3

Web uygulamamızın bulunduğu web app adresi yerine CDN adresini yazarsak Resim-4‘te göreceğiniz gibi CDN üzerinden geldiğini görebiliyoruz.


Resim-4

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://docs.microsoft.com/en-gb/azure/cdn/

TAGs: Azure, Azure Portal, Yazılım Geliştiricileri için Azure, Azure CDN, CDN, Content Delivery Network, App Service, Caching

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir