20 Ekim 2014 Pazartesi

Web uygulama performansı: İstemci tarafı izleme, hata tespiti, uyarı ve iyileştirme araç ve yöntemleri

Kullandığımız her uygulamada olduğu gibi ziyaret ettiğimiz web sitelerinde de mecbur değilsek hızlı olmasını tercih ediyoruz. Yavaş sitelerin neden olduğu ziyaretçi ve kullanım kaybı üzerinde yapılmış bir çok deney ve araştırma var. Bunlardan en çok bilineni Amazon.com'um açıkladığı:

"Tests at Amazon revealed similar results: every 100 ms increase in load time of Amazon.com decreased sales by 1% (Kohavi and Longbotham 2007)"
Özetle; Amazon, her 100 milisaniyelik sayfa yüklenmesindeki gecikme için satışlarda %1'lik azalma olduğu ölçülmüş:
The Psychology of Web Performance
http://www.websiteoptimization.com/speed/tweak/psychology-web-performance/

Performansın (hızın) yapılan yatırıma olan etkileriyle ilgili araştırmalar:

How Website Speed Affects Conversion Rates
http://www.globaldots.com/how-website-speed-affects-conversion-rates/
Web sayfa performansının ROI* ye etkisi:
Poor performance ruins holidays

Hız için yapılacak optimizasyonlar ile;

-Ziyaretin artması (arama motorları gözünde daha yüksek puan ve trafik artışı, yavaşlık nedeniyle terkeden / edecek kullanıcıları geri kazanma)
-Bounce rate'in düşmesi (ilk ulaştıkları sayfalardan direk ayrılma, hız algısı ile daha çok sayfa gezinme)
-Bandwidth maliyetinin azalması (Browser'a sadece mümkün olduğunca o sayfa için gerekli içerik uygun tekniklerle sunulduğunda yaklaşık 1/4 oranında daha az trafik tüketimi (minify, gzip, combine)
sağlanır.

Yayına çıkmadan önce yapılabilecek kontroller ve ayarlar

İlk defa yayına çıkacak bir site ya da hata düzeltme / iyileştirmeler sonrasında güncelleme olarak yayına çıkacaklar için bazı kontroller önceden yapılabilir.

Örnek olarak, bunun için Microsoft'un Web Platform Installer üzerinden sağladığı "Search Engine Optimization Toolkit" kullanılabilir.

20 Haziran 2014 Cuma

TFS Build yapılandırması: Bir günlük israf.

* TFS 2013 kullanılmıştır.

Visual Studio - TFS entegrasyonunda check-in kalitesini arttırmak için Build servisi belirli kurallara göre yapılandırılabilir.

10 dakikalık yapılandırmadan sonra sistemi çalışır hale getirmek için harcanacak bir günlük iş detayı 2. bölümde...

Genel yapılandırma ve ayarlar


TFS Administration Console'da Build Configuration sekmesinde servis ayarlarını "tfs service" kullanıcısından farklı bir kullanıcı ile aktif ettikten sonra (örn: Network Service, önerilen) Visual Studio Team Explorer'da istenen Proje için Builds > "New Build Definition" üzerinden istenen özelliklerde Build tanımlanır.

Servis kurulum detayları için : http://msdn.microsoft.com/en-us/library/ee259683.aspx


27 Mayıs 2014 Salı

Web uygulama performansı: IIS / W3C Logları ile hata ayıklama ve iyileştirme

İhtiyaç duyulabilecek ısaltma açıklamarı:
*W3C: World wide web consortium : http://en.wikipedia.org/wiki/World_Wide_Web_Consortium
*UTC : Coordinated universal time: http://en.wikipedia.org/wiki/Coordinated_Universal_Time
*IIS : Internet informatiın services  http://en.wikipedia.org/wiki/Internet_Information_Services

-Son dakika proje kurtartma yazısı değildir.

IIS üzerinde sunulan web/servis uygulamaları için loglamanın faydaları:
-Kullanım (en az/çok ziyaret alan sayfalar, css ve scriptler),
-Performans (yavaş sayfalar [network gecikmeleri dahil]),https://logparserplus.com/examples/
-Hata (Sayfa bulunamadı ve çalışma zamanı hataları gibi)
-Güvenlik (istek bilgilerine göre [query veya header]) hacking girişimleri

Buradaki süreç,
-IIS üzerinde log kaydı tutmak için tanımlar: Konum, içerik formatı, dosya formatı, tarih, büyüklük.
-Log tutulacak alanların yapılacak analiz türüne göre seçimi.
-Standart olmayan durumlar için ekstra geliştirmeler (advanced logging özellikleri)
-Logların analiz edilebilir duruma getirilmesi: Log analizi için kullanılabilecek araç ve yöntemler
-Analiz sürecinde çıkarımlar yapıp icraate dönüştürme.
-Loglardaki http status, win status ve user agent bilgilerini anlamlandırma


IIS üzerinde log kaydı tutmak için tanımlar (configuration)


IIS üzerinden standart log (Logging), Advanced Logging (IIS 7 sonrası extension olarak) ya da Failed Request Tracing Rules ile daha detaylı loglar tutulup analiz edilebilir