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

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

112318_0852_YazlmGeliti4.png

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?

ya da kısaca , coğrafi olarak dağıtılmış bir grup sunucunun birlikte çalışarak içeriği hızlıca dağıtması olarak tanımlanabilir. 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.

’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. 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 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 üzerinden statik bir site için bir CDN endpoint nasıl tanımlarız inceleyelim. ü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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

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

TAGs: Azure, , , Azure CDN, CDN, Content Delivery Network, App Service, Caching

Yorum Yap

Yazar Hakkında

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi Gemi İnşaatı Mühendisliği bölümünde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi Bilgi Teknolojileri bölümü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. Şu anda da Done'de Cloud Development Manager olarak Azure, .NET Core, SQL Server, Docker vb güncel teknolojiler üzerinde çalışmaktadır.

Yorum Yap