Web siteleri büyüdükçe, popülerleþtikçe kullandýklarý kaynak miktarý da doðal olarak artýyor. Kiþi veya kuruluþ olmanýz, kiþisel veya kurumsal bir site yayýnlamanýz hiç farketmez. Sonuçta bir web sitesi, ziyaret edildikçe internet kaynaklarýný tüketiyor ve bu talep arttýkça adeta sömürmeye baþlýyor.
Eskiden web sitelerinin trafik hacmini çoðunlukla insanlar doldururdu. Artýk elinizi sallasanýz bir "bot"a çarpýyor. Ýnternette sörfü insanlardan çok "bot"lar yapýyor. Böylece Matrix felsefesi, günlük hayatýmýzda olmasa da internet hayatýmýzda geçerlilik kazanmýþ oluyor. Bir gün öyle bir hâle gelecek ki bu makineler, evet, onlarýn yüzünden internete giremeyeceðiz. Kontrolden çýkmasý çok yakýndýr arkadaþlar. Komplo teorisi filan deðil, bir öngörü (hatta engürü) olarak kabul ediniz bunu.
Þimdi vaziyet nedir bir bakalým. Elimizdeki web sitesi her geçen gün ziyaretçi çekiyor. Zengin de bir arayüzümüz var. CSS dosyalarý (modern tasarlamamýz lazým, devir Table-less Design devri), JS'ler (Ajax lazým, prototype lazým, kütüphane kalabalýk!), resim dosyalarý (defteri kabartan bunlar), favico dosyasý (masum ama sinsi). Bir de üstüne dinamik altyapýlý (ASP, ASP.NET, PHP, vs.) içeriðimiz. Ve ve ve, RSS!
Farkýndayýz ki; az önce saydýðýmýz ve statik olarak tabir ettiðimiz medya dosyalarý, depolama kapasitemizi ve trafik hacmimizi en çok zorlayanlar. Bu dosyalar, statik karakterlerinden ötürü web sunucu tarafýndan dosya sisteminden okunup hop diye talep eden yere gönderiliyor. Ön tanýmlý olarak üzerlerinde hiçbir eriþim denetimi yok. Bu denetimi yapmak için fazladan efor sarfetmeniz gerekiyor. (Denetim niye lazým diye soranlara: Bazý uyanýk web'ciler, kendi kaynaklarý tükenmesin diye baþkasýnýn sitesindeki dosyalarý kendi sitelerine gömüyorlar. Böylece hiç tanýmadýðýnýz sitelerdeki dosyalarý, resimleri siz "host" etmiþ oluyorsunuz.) Denetim yapsanýz bile, sitenizin doðal ziyaretçileri bu dosyalarý çektikçe bant geniþliðiniz sarsýlýyor. Bir süre sonra, sitenizdeki dosyalar sürünerek gelmeye baþlýyor. Öðreniyorsunuz ki bandwith yetmiyor. Eliniz yeniden cüzdana uzanýyor. Hay Allah, "hosting"i de daha yeni almýþtýnýz.
Bu "paylaþýmlý hosting" firmalarý da çok uyanýktýr deðil mi? Havuz denen bir kavramlarý vardýr. Size baþka müþterilerinin artýk bant geniþliklerini satarlar. Üstelik kullanýma göre maliyet çýkmaz ortaya. Kademeli olarak kapasiteyi satýn alýrsýnýz. Oysa ben kullandýðým kadar ödemek istiyorum diyemezsiniz. Ücretlendirme hoþ deðildir. Onlara sorarsanýz, onlar da haklý olur. Çünkü Türk Telekom da müþterilerinden ücreti öyle talep etmektedir. Politika baþtan gidiktir.
Bu hüzün dolu senaryo çok yaþanmýþtýr. Herkesin hayatýnda bir yerlere dokunmuþtur þu yazdýklarým.
Ama dostlar, dert varsa, deva da var. Gelin hele dinleyin bir fakiri.
Deva 1 : Ýyileþtirme, Güzelleþtirme (Optimization)
Kodlarý optimize etmekten bahsediyoruz. Özellikle CSS, JS türü arka plan dosyalar optimizasyona çok müsait. Sýrf bu dosyalarýn içerdiði "whitespace" karakterleri temizleseniz %40'lara varan kazanç saðlýyorsunuz. Kodunuzun okunabilirliði hiç önemli deðil. Arka taraflarda Bekir Coþkun misâli manzum nesirler yazmaya çalýþmayýn.
Öte yandan dinamik tarafta da üretilen koda dikkat etmek gerekiyor. Ýstemci tarafýna ayný tarz kodlarýn her sayfa ile sürekli olarak gönderilmesi ne kadar gereksiz bir çabadýr. Buna raðmen, arayüzle ilgili tüm tanýmlarýn CSS'lere, tarayýcýya yönelik script kodlarýnýn da JS dosyalarýna alýnmasý takdir edilmeyi hak eder.
AJAX denen sihirli deðneði kullanmak için tam isabet! Flickr nâm sitenin fotoðraf üstü baþlýk ve fotoðraf altý açýklama bilgilerini liste ekranýndan yazýnýn üstüne bir fare týklamasýyla deðiþtirebilmek ne derece konfor saðlýyorsa, o kadar da að tasarrufu saðlýyor. Kullanýcý yapacaðý basit bir iþlem için o aðýr sayfayý tekrar yüklemek zorunda kalmýyor. Hem sizin için, hem onun için kazanç. Adam sýnýrlý ADSL kullanýyor belki, nereden biliyoruz? Neden boþ yere adamýn kotasýný tüketelim? Evet; optimizasyon-AJAX, tencere-kapak.
Ýyileþtirme çalýþmalarý, sadece kodlarýn kýrpýlmasý olarak düþünülmemeli. Ýþ mantýðýnda ve akýþýnda yapýlacak düzenlemeler de bu baðlamda size kazanç saðlayacaktýr. Bu söylediðim þey, kiþisel site yapýmcýlarý için biraz uzak kalýyor ama kurumsal bünyeler gayet iyi anlamýþtýr meseleyi.
Ýyileþtirme, zevkli ve verimli bir çalýþmadýr. Geri dönüþü yüksektir. Her site yapýmcýsýnýn mutlaka denemesi gerekir. Yok benim bant geniþliðinden, kapasiteden yana sýkýntým yok, Allah ne verdiyse... gibi bir yaklaþýmda olanlar var ise (misâl haber siteleri) onlarý zaten web siteleri deðil de "internetteki korna sesleri" olarak deðerlendirdiðimiz için bu sohbette "meclisten dýþarý"dýrlar.
Deva 2 : Sýkýþtýrma (HTTP Compression)
Web uygulamanýzýn sýkýþtýrma özelliðini açmanýz gerekiyor. Bu özellik, web sunucunuzun modeline göre deðiþiklik arz edebilir. Kimi hosting kontrol panellerinde site sahipleri için sýkýþtýrmayý açýp kapama düðmeleri var. Ne hoþ. Sitenizin HTTP sýkýþtýrmasý etkin mi deðil mi þu adresten öðrenebiliyorsunuz. Ayný yerden, sýkýþtýrma neticesinde ne kadar tasarruf ettiðinizi de görebiliyorsunuz.
Deva 3 : Dýþ kaynak kullanýmý
Sitenizin imkanlarýný tüketen her þeyi dýþ kaynaklara sevketmeyi deneyebilirsiniz. Artýk dünya genelinde "out-source" fikri zaten kabul görmüþ durumda. Sizin yaptýðýnýz da farklý olmayacak. Hem de kazançlý çýkacaksýnýz.
Neleri dýþardan saðlayabilirsiniz bir bakalým.
Deva 3.1 : RSS çýktýlarýnýn dýþ kaynaða sevkedilmesi
Evet, RSS türü þeyler içeriði yaygýnlaþtýrmak, modülerleþtirmek adýna güzel þeyler ama sitenin trafiði için de berbat þeyler. Elin oðlu RSS okuyucu yaptým diye geziyor ve sizin gibi sitelerin RSS'lerini 30 saniyede bir sömürüyor. Ve onun yüzünden sitenin içeriðini kullanmak isteyene yer kalmýyor. Þöyle örnek verelim. Bir bakkaldasýnýz ve sýra bekliyorsunuz. Ama dükkaný yeni bir þey var mý, þu kaç lira, bu ne kadar diye soru yaðmuruna tutan veletler kaplamýþ. Bakkal onlarý ikna edip sizinle ilgilenemiyor bile. (Nasýl da bakkal örneði verdim þu yüzyýlda hayret doðrusu.)
Hal böyle olunca, RSS çýktýlarýný sizin daha güçlü, bu iþte uzmanlaþmýþ bir kadroya vermeniz makul bir çözüm oluyor. Bu uzmanlardan en bilineni FeedBurner.
Kapýsýný çalýp benim XML'lerimi sen ver isteyene diyebilirsiniz rahatlýkla. O programcýklar da artýk Feedburner'in kapýsýnda XML beklesinler.
Kabaca nasýl oluyor bu sevk iþlemi? XML adresinizi FeedBurner'a veriyorsunuz. FeedBurner da size kendi alanýndan bir adres veriyor. Artýk XML adresini isteyenlere bu Feedburner adresini veriyorsunuz. XML üreten script'inizi de Feedburner dýþýndaki istekler için FeedBurner'a yönlendiriyorsunuz. Bu kadar açýk. FeedBurner'a geçmek sizin için adres taþýnabilirliði de saðlýyor. Blog hizmetini veya XML adreslerini deðiþtirdiðinizde, XML aboneleriniz bundan etkilenmiyor. Ha FeedBurner boþ durmuyor tabi, kendi saðladýðý adresi sizin alan adýnýza ekleyebiliyor (CNAME hadiseleri); böylece karizma konusunda tereddüt etmiyorsunuz.
Deva 3.2 : Sabit dosyalarýn dýþ kaynaða sevkedilmesi
Sabit dosyalar deyince aklýmýza metin tabanlý CSS, JS, HTML, XML, vb. ve JPG, GIF, PNG gibi görüntü dosyalarý ve de artýk çok popüler olan medya dosyalarý geliyor. Bu dosyalar istemci tarafta önbelleklense bile yine de trafiðimizi ciddi ölçüde tüketiyor. Bunun yanýnda görüntü ve medya dosyalarý artýk hiç küçük deðil. Büyüklüklerinden dolayý çok fazla yer iþgal ediyorlar.
Görüntü dosyalarýnýz için alternatif bir saklama alaný Flickr olabilir. Ama Flickr'ýn kullaným yönetmeliðine göre Flickr'da yüklü bir görüntü dosyasýný kullandýðýnýz yerden Flickr sayfasýna geri link vermeniz gerekiyor. Bu biraz itici geliyor. Aslýnda bu, Flickr'ýn dosya barýndýrma hizmeti deðil de fotoðraf paylaþma platformu olmak istemesinden kaynaklý. Saygý göstermek lazým. Diðer "image hosting" çözümleri de pek matah durmuyor. Misal, kurumsal yerlerdeki güvenlik politikalarý bu tür sitelere eriþim izni vermiyor. Sitenizin kendisinin yüklenip resimlerinin gelmemesi gibi eðlenceli bir duruma sebebiyet verebilir.
Gelmek istediðimiz yer Amazon S3. Uzunca Simple Storage Service. Amazon Web Services (AWS) bünyesinde açýlmýþ bir hizmet kalemi. Gördüðüm en mantýklý ücretlendirme politikasýna sahip. Bu hizmetle dosyalarýnýzý yetkilendirmelerine varýncaya kadar ayarlayýp internete sunabilirsiniz. Bir kere maliyeti çok düþük. Kullandýðýnýz alan ve tükettiðiniz bant geniþliðine göre ücret ödüyorsunuz. Havaya para saçmýyorsunuz yani. [Hadi merak ettiyseniz bir hesap yapýn.]
S3'e sitenizin tüm sabit dosyalarýný aktarabilirsiniz. Saðladýðý programlama arayüzü ile siteniz üzerinden "upload" iþlemleri de yapabilirsiniz. Gayet esnek, ucuz ve güvenilir bir çözüm. Kendi alan adýnýz üzerinden -CNAME oyunlarýyla- bu Amazon hizmetini kullanabilme imkanýnýz bile var. Anlat anlat bitmez. Kýsmetse ilerleyen günlerde bu hizmet ile ilgili bir yazý yazýp kamu oyuna sunacaðým. Takipte kalýn efendim.
Sabit dosyalarý bu türden bir dýþ kaynaða sevk ederek, temel hosting alanýnýzda sadece dinamik içerik ve veri tabaný dosyalarýný býrakabilirsiniz. Böylelikle hosting tedarikçinize ödediðiniz ücret çok düþecektir. Malum, tedarikçiniz, özellikle yerli firmaysa, sizden ilave kapasite ve trafik için ciddi paralar istemektedir.
Sözün Sonu
Efendim, yazýmýzda Web sitesi sahiplerinin bant geniþliði konusunda hassas olanlara yönelik tavsiyeler derledik. Bunlarýn hepsini kendimiz bulmadýk veya düþünmedik elbette. Ýnternet üzerindeki kaynaklar, kendi tecrübelerimiz birleþti ve böyle bir yazýda söze döküldü. Kelâmýn muhatabý sizden daha çok yazarýn kendisi. 2002'den beri web projeleriyle iliþkisini kesmiþ bir vatandaþýn tekrar uyanmaya baþlayan yayýncýlýk þuuru yazdýrdý bunu. Bu þuur ile oluþan fikir atmosferinde yazýldý. Eminim çok daha detaylý bir tavsiye rehberi yazýlabilir. Ancak bu fakirin yazmasýna engel deðildir.
Buradaki tavsiyeleri denediðinizde -ki içerisinde eminim denemiþ olduklarýnýz vardýr- göreceksiniz ki hem kapasiteden hem de að trafiðinden önemli ölçüde tasarruf elde edeceksiniz. Bu yayýncýlýk iþleri için ödediðiniz bedel düþecek. Ve artan parayý içeriðe harcayabileceksiniz kim bilir. Ben bu ilkeleri uygulamasý için Tabi'nin sahibi, Mobiletiþim ve Dobiþko sitelerinin Erkan Yýlmaz'a ilk fýrsatta gereken baskýyý yapacaðým.
Evet efendim. Ýþte geldik sözün sonuna. Noktalama iþaretlerinin zarifiyle: nokta.