Azure’da Bir Blog : Enterprisecoding

   Sitemi sık sık ziyaret ediyorsanız mutlaka fark etmişsinizdir; blog’umda kayda değer bir hız farkı var… Nedeni basit; geçtiğimiz hafta içerisinde web sitemi Windows Azure’a taşımaya karar verdim. Aslında Windows Azure Web Sites duyurulduğundan beri bunu düşünüyordum. Bunun en önemli nedenlerinden birisi pek çok kişiden aldığım sitenin yavaş yüklendiği geri bildirimiydi. Kısa bir hazırlık sonrası öncelikle blog’umu Windows Azure üzerine taşıdım, ardında bir kaç ufak performans düzenlemesi yaptım ve son olarak da blog’umun daha da hızlı açılabilmesi için Windows Azue’un storage ve CDN nimetlerinden faydalandım 😉 Makalemde işte bu geçişi adım adım sizlerle paylaşmak istedim. Bu sayede benzer planları olanlarınıza da yol göstermiş olabilirim diye umuyorum.

    İşe Windows Azure yönetim portali’ne giriş yaparak başladım. Oldukça başarılı bir uygulama yaptıklarını belirtmeden geçemeyeceğim. Window Azure üzerinde bir web sitesi oluşturmak için yapmanız gereken yönetim portalı’nın ana sayfasında sol alt köşede bulunan Windows Azure yönetim portalinde yeni bir web sitesi oluşturmak için NEW iconunu kullanabilirsinizNEW ikonu yardımıyla karşınıza gelecek ekranlardan ufak bir iki yapılandırma bilgisini vermek. İkona tıkladığınızda karşınıza Windows Azure üzerinde oluşturabileceğiniz hizmetlerin bir listesini bulacaksınız;

 

Windows Azure yönetim panelinde yer alan yeni hizmet oluşturma ekranı

  Bu ekranı kullanarak yeni bir site oluşturmak için Web Site başlığı altındaki seçenekleri kullanabilirsiniz. Hızlıca bir WordPress kurulumu yapmak için From Gallery seçeneğini kullanabilirsiniz.

Windows Azure Web Sites ile hazır gelen uygulama seçenekleri; tabik ki WordPress'i seçiyoruz

   Gelen ekrandan WordPress seçeneğini seçerek sağ alt köşedeki ileri butonunu kullanarak ikinci adıma geçebilirsiniz;

WordPress'in otomatik kurulumu için gerekli bir kaç değeri vermemiz yeterli

   İkinci adımda WordPress’i kullanmak istediğiniz ve azurewebsites.net  alan adı altında yer alacak olan alt alan adını belirtmeniz istenecektir. Ek olarak da; sitenizin hangi coğrafi konumdan sunulmasını istediğiniz ve varsa mevcut bir veritabanını kullanmak isteyip istemediğiniz de sorulacaktır. Son adımda ise oluşturmak istediğiniz veritabanı için gerekli bilgiler sorularak onaylamanız istenecektir.

   Onaylamanız ardında kurulum adımları otomatik olarak başlayacaktır. Bu işlem tamamlandığında yönetim konsolunda bilgilendirileceksiniz. Mevcut durumu Web Sites başlığı altından takip edebilirsiniz. Siteniz oluşturulduktan sonra bu ekrandan sitenizin yönetim paneline geçiş yapabilirsiniz;

Blogumuz ilk yapılandırma için hazır ve  çalışır durumda

 

   Web sitenizin yönetim paneline geçtiğinizde siteniz hakkında verilerin bulunduğu bir konsol sizi karşılayacaktır. Bu konsolun sağ tarafında yer alan linkler arasında ise sitenizin adresini bulabilirsiniz. Bu link’i kullanarak siteniz ulaşarak WordPress kurulumuzu yapabilirsiniz.

Hızlıca yapmak isteyeceğiniz işlemler için "Quick Glance"

   Bu işlem ardından bir sonraki adım mevcut blog içeriğinin yeni siteye aktarılması olacaktır. Kurduğum bir eklenti ile bloğumun düzenli olarak yedeğini düzenli olarak dropbox hesabıma attığım için içeriğe ulaşmam hiç zor olmadı 😉 Ne var ki bu yedeğin boyutu 2MB’ın üzerinde olduğu için ilk aşamada bloğuma yüklemek problem oldu. Bunu sebebi Windows Azure’ın PHP için varsayılan da 2MB’a kadar bir upload’a izin vermesi…Neyse ki eski bir PHP’ci olarak bu problemi nasıl aşabileceğimi tahmin etmek zor olmadı; .user.ini dosyası…

   Web sitemin ana klasöründe .user.ini dosyası oluşturarak içerisine aşağıdaki değerleri yazdım;

upload_max_filesize = 8M
max_execution_time = 6000

Bu sayede bu ufak problemi de rahatça aşmış olduk. Tabi bunu söylerken şunu da belirtmeliyim; upload_maz_filesize değeri için Windows Azure’da tanımlı bir üst limit bulunmakta; 8MB.  Eğer bu değerin üzerinde bir yedek dosyası yüklemek isterseniz içeriğini bölmeniz gerekecektir.

   Ok, mevcut içeriği de kolayca web sitemize yükledik; ama ufak bir problemimiz var: elimizdeki tek url azurewebsites.net alan adı altında bir subdomian. Mevcut ziyaretçilerimizi buraya yönlendirebiliriz; ama şık bir çözüm değil!

   Mevcut alan adınızı kullanabilmek için bunu oluşturduğunuz sitenizi yönlendirecek şekilde ayarlamalısınız. Tabi Windows Azure Web Sites sadece alt alan adlarının yönlendirilmesine imkan vermekte (en azından şimdilik), yani sadece CNAME kayıtlarınızı yönlendirebilirsiniz. Bunun için dns sunucunuzun kontrol paneline giderek www adıyla bir CNAME kaydı oluşturarak bunu Windows Azure’un verdiği adrese yönlendirebilirsiniz. Benim örneğim için bu adres http://enterprisecoding.azurewebsites.net adresiydi.

    Bir sonraki adımımız Windows Azure’un alan adımızı karşılaması için ayarlanması. Varsayılan olarak Windows Azure Web Sites paylaşımlı (shared) olarak kurulmakta ve bu haliyle maalesef ki özel bir alan adını desteklememekte. Hemen umutsuzluğa kapılmayın; çünkü ayrılmış (reserved) moda geçmeniz durumunda özel alan adlarını kullanabilmeniz mümkün.

Windows Azure web sites yönetim paneli scale ekranı

 

  Bu yapılandırma değişikliğini web sitenizin kontrol panelinde yer alan SCALE ekranında yapabilirsiniz. Tek tapmanız gereken RESERVED seçeneğini seçerek alt tarafta yer alan menüden SAVE demek. Bunu yaptığınızda yapılan işlem hakkında bilgilendirilerek onayınız bir kez daha istenecektir;

Reserved moda geçiş öncesi onayınız alınacaktır

   Bu işlem biraz sürebilir, merak etmeyin. Bu işlem tamamlandığında CONFIGURE ekranına gelerek alt bölümde yer alan hostnames bölümüne alan adınızı yazabilirsiniz;

Reserved moda geçiş sonrasında kendi özel alan adınızı verebilirsiniz

   Artık kendi alan adınızla blogunuza ulaşabilirsiniz…

   Geldiğimiz aşamada artık Windows Azure Web Sites yardımıyla bulutta bir blog oluşturabildik ve kendi alan adımızı buna yönlendirdik. Peki sitemize biraz daha hız kazandırmaya var mısınız!?

   Sitemizi hızlandırmaya WordPress eklentilerini kullanarak cache’leme ve içerik optimizasyonuyla başlayabiliriz. Şanslıyız ki her ikisini birden yapabileceğimiz başarılı bir WordPress eklentisi mevcut; W3 Total Cache.

   W3 Total Cache yardımıyla öncelikle html, javascript ve css içeriğinizdeki gereksiz boşlukları v.b. alanları temizleyerek ~%10 oranında daha düşük bir boyutta veri aktarımına sahip olabilirsiniz. İkinci adımda sayfalarınızı bir önbelleğe alarak sık değişmeyen sayfaların her defasında yenide oluşmasının önüne geçerek daha yüksek yanıt süresine sahip olabilirsiniz. Sayfa önbelleğine benzer şekilde isterseniz veritabanı sorgularınız için de bir önbellek ayarlamanız mümkün.

   Sitenizin hızına hız katman için yapabileceğiniz ve en az yukarıda sıraladıklarım kadar önemli (hatta daha da önemli) bir başka yöntem de Content Delivery Network (CDN) kullanımı. CDN sayesinde web site içeriğinizi dünyanın farklı bölgelerinde yer alan veri merkezlerinde bulunan sunuculara dağıtabilir, bu sayede de ziyaretçileriniz kendilerine en yakın konumdan içeriğe ulaşma şansı bulabilir. Böylesi bir mimari sitenizin son kullanıcıya ulaştırılmasında önemli bir performans/hız kazandırması yanında yüksek bir erişilebilirlik de sunacaktır.

    Blogumu Windows Azure Web Sites’a taşımışken Azure’da sunulan CDN seçeneğini de test etmemek olmazdı 😉

   Windows Azure Content Delivery Network (CDN) bize dünyanın pek çok farklı noktasında bulunan düğümleri sayesinde yüksek bir performans vaat etmekte. Windows Azure CDN özelliğini kullanabilmek için öncelikle bir depolama hesabı (storage account) oluşturmalıyız. Depolama hesabı oluşturma işlemi yazımın başlarında paylaştığım yeni bir site Windows Azure yönetim portalinde yeni bir web sitesi oluşturmak için NEW iconunu kullanabilirsinizoluşturma işleminde çok farklı değil aslında. Windows Azure yönetim portalı’nın ana sayfasında sol alt köşede bulunan NEW ikonu yardımıyla yeni bir depolama hesabı oluşturmaya başlayabiliriz;

Windows Azure storage oluşturma ekranı : Quick Create

Windows Azure storage oluşturma ekranı : Ayarlar

 

   Blogu oluştururken verdiğimiz girdilere benzer şekilde bir depolama hesabı oluştururken de öncelikle kullanacağımız url’yi, arından da hangi veri merkezini kullanmak istediğimizi belirtmeliyiz. Bu ekranda vereceğimiz url’de Windows Azure web sites’de olduğu gibi blob.core.windows.net alan adı altında yer alacak bir alt alan adı olacaktır. Benim örneğim için bu adres http://enterprisecoding.blob.core.windows.net olacaktır. Gerekli bilgileri verdikten sonra CREATE STORAGE ACCOUNT butonu yardımıyla hesabımızı oluşturabiliriz. Bu işlemin tamamlanması bir kaç dakika alacaktır.

   Depolama hesabınız oluştuktan sonra hesabınıza ait url’yi aynen kullanabileceğiniz gibi isterseniz kendi özel alt alan adını kullanabilmeniz de mümkün. Benim tercihim http://cdn.enterprisecoding.com adresini kullanmaktan yana olduğu için sizlerin de bunu isteyebileceğini varsayıyorum. Aşağıda; hem kendi özel alt alan adınızı depolama hesabınıza nasıl yönlendireceğinizi, hem de depolama hesabınızı kullanarak CDN özelliğini nasıl aktif hale getirebileceğiniz paylaşacağım.

   Bu makaleyi hazırladığım sırada henüz Windows Azure yönetim portalinin ön izleme sürümünde bu işlemleri yapabileceğimiz bir ekran bulunmuyordu. Bu sebeple özel alt alan adı yönlendirmesi ve CDN ayarları için eski portale geçiş yapmalıyız;

Windows Azure eski yönetim portalına geçiş

   Önceki yönetim portaline geçiş yapmak için yeni portalin üst bölümünde bulunan Preview iconuna basarak açılan ekranda “Take me to the previous portal” linki kullanılabilir.

Windows Azure yönetim portalı karşılama ekranı

   Eski portal ekranına geçiş yaptığımızda kendi özel alt alan adımızı kullanabilmek için Hosted Services, Storage Accounts & CDN başlığı altında yer alan Storage Accounts bölümüne geçmeliyiz;

Storage Accounts

   Bu ekranda listelenen depolama hesapları arasında bir önceki adımda oluşturduğumuzu seçerek üst tarafta yer alan menü bölümünden Custom Domain grubu altındaki Add Domain butonuna basmalıyız. Bu işlem sonrası karşımıza Add a Custom Domain diyaloğu gelecektir;

 Depolama hesabınıza yeni bir alan adı ekleme diyaloğu

   Kendimize ait alt alan adını depolama hesabımıza yönlendirmek için bizden tek istenen bilgi alt alan adı olacaktır. Bu bilgiyi verdikten sonra ok butonuna basarak işlemi onaylayabiliriz. Onayımız ardında kısa bir süre içerisinde karşımıza bu alt alan adının bize ait olduğunu kanıtlayabilmek adına bir doğrulama penceresi açılacak ve alan adımıza özel bir CNAME kaydı girmemiz istenecektir;

Özel alan adını doğrulama diyaloğu

   Bu adımda yapılması gereken DNS sunucumuzun yönetim paneline giriş yaparak yukarıdaki ekranda verilen bilgilerle bir CNAME kaydı oluşturmak. CNAME kaydını oluşturduktan sonra size tavsiyem bir süre işlem yapmadan beklemeniz; çünkü DNS kaydında yaptığınız değişikliğin diğer DNS sunucularına iletilmesi biraz zaman alabilir.

  DNS kaydında talep edilen eklemeyi yaptıktan sonra depolama hesaplarının listelendiği ekrana geri dönerek üzerinde işlem yaptığımız depolama hesabınızın altında yer alan girdiğimiz alan adını seçmeliyiz. Özel alan adını doğrulamak için üst taraftaki menüde Custom Domain grubunda yer alan Validate Domain butonunu kullanabilirsiniz. Başarılı bir doğrulama işlemi sonrasında özel alan adının durum sütununda Allowed yazacaktır;

Depolama hesabı için özel alan adı doğrulandığında status sütununda Allowed yazacaktır

   Son adımla birlikte artık özel alan adımızı depolama hesabımıza yönlendirebilmiş olduk. Artık depolama hesabımıza ulaşabilmek için rahatlıkla bu alan adını kullanabiliriz. Şimdi sıra geldi depolama hesabımız için CDN özelliğini aktif hale getirmeye.

   Hesabımızda CDN özelliğini kullanabilmek için yine sol taraftaki Hosted Services, Storage Accounts and CDN başlığı altında yer alan CDN butonunu basmalıyız. Gelen ekranda üst bölümdeki menüde yer alan New Endpoint basmalıyız. Karşımıza Create a New CDN Endpoint diyaloğu gelecekti;

Depolama hesabına yeni bir CDN uç noktası ekleme diyaloğu

   Bu ekranda talep edilen bilgileri girdikten sonra Enable CDN seçeneği seçili durumda iken ok tuşu yardımıyla  yeni bir CDN uç noktası oluşturabilirsiniz.

   Bu son adımla birlikte artık depolama hesabımızın CDN özelliğini de aktif hale getirmiş oluyoruz… Şimdi sıra geldi depolama hesabımızda bir container oluşturarak WordPress’in bunu kullanabilmesini sağlamaya.

   W3 Total Cache’in sitenizi hızlandırmak adına sunduğu fonksiyonalitelerden birisi de CDN ve şanslıyız ki Windows Azure CDN destekleri bulunuyor. W3 Total Cache ayarlarından öncelikle CDN özelliğini aktif hale getirmeliyiz;

W3 Total Cache ayarlarından CDN özelliğinin aktif edilmesi

  Bu ekranda CDN enable ve CDN type olarak Microsoft Azure Storage seçilmelidir. Değişikliklerin saklanmasıyla birlikte Windows Azure CDN için gerekli ayarları girebileceğimiz ekran da aktif hale gelecektir;

W3 Total Cache eklentisinin Windows Azure CDN yapılandırma ekranı

   Henüz bir container oluşturmadıysanız bu ekranda yer alan Create container butonu yardımıyla bunu kolaylıkla yapabilmeniz mümkün. Gerekli ayarları yaptıktan sonra Save all settings buton yardımıyla ayarları kaydedebilirsiniz. Son olarak W3 Total Cache’in CDN ayarları ekranında mevcut içeriğinizi Windows Azure depolama hesabınıza aktarabilirsiniz;

W3-Total-Cache-cdn-general

   Veeee işte bu kadar… Artık Enterprisecoding Windows Azure üzerinde çalışmakta ve Windows Azure Content Delivery Network desteği sayesinde oldukça da performanslı bir biçimde çalışmakta 🙂

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

5 yorum

  1. Daron Yöndem   •  

    Aklımda olan birşeydi ama websites kısmını kullanmayı düşünmüyordum açıkçası. Şu an hizmetler preview olduğu için ciddi sorunlar var. Umarım başını yakmazlar.

    Bu arada artık sitene başına www konmadan girilemiyor 🙂 Umarım bu durumu biliyorsundur. Root’a CNAME koyamadığın için olmuyor. A kaydı lazım onun için reserved mode’a IP veremeyecekleri için yapamıyorsun. Bu konuda “preview”dan çıkınca servisleri bir çözüm gelecek.

    Benim aklımda IaaS tarafında VM açıp şu an benim blogun da bulunduğu sunucuyu tamamen azure’a taşımak vardı ama VM’ler de şu an pek stabil değil. Preview’dan çıkmalarını bekliyorum.

    CDN güzel 🙂 Ay sonunda gelen faturayı paylaşsana bir ara merak ediyorum ne olacak diye 🙂

  2. kemal   •  

    Fatih bey ,eskisi ile yenisi arasında öyle kayda değer bir hız fark göremedim.Ancak Azure Web Sitesi konusundaki aydınlatıcı bilgiler için teşekkür ederim….

  3. Akif   •  

    Fiyatlar biraz uçuk değil mi ?

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir