Bir süredir Google App Engine kullanarak basit web uygulamaları hazırlamayla ilgileniyordum. Herhangi bir platforma ciddi işler için bel bağlamadan önce üstünde ufak tefek şeyler yapmayı severim.
Aslında App Engine ile çıktığı günden beri ilgileniyorum ve takip ediyorum. Kullanmaktan büyük zevk duyduğum Python’un destekledikleri ilk dil olması hep hoşuma gitmiştir.
Linux sistemler üzerine kurulu web programlarını hazırladıktan sonra sıra yayınlamaya geldiğinde karşılaşılan en büyük zorluklardan bir, kaya gibi sağlam bir sunucu (veya sunucu kümesi) kurmak onu güvenli bir şekilde ayakta tutmak ve gerektiği gibi ölçekleyebilmek. Eğer App Engine ile yazılım geliştiriyorsanız bunları kafanıza takmazsınız. Google sizin için yapar. Sadece harcadığınız kaynak kadar para ödersiniz. Hatta bu harcadığın kadar öde modelinin en güzel örneğini sergiler bir de üstüne her ay, hatta her gün sıfırlanıp yeniden kullanıma sunulan bedava kaynaklar sağlar.
Eğer başarısından şüphe duyduğunuz ve başarısız olursa nasıl onun masrafının altından kalkarım diye dert ettiğiniz bir web projeniz olursa mutlaka sunucu olarak App Engine kullanın. Yeterince yük binmeyen yani başarısız olan projeniz hiç masraf çıkarmayacak ve hayatta kalmaya devam edecek. Böylece az sayıda sadık kullanıcınızı da küstürmezsiniz.
Django-nonrel gibi projeleri takip ediyorsanız. Doğası gereği ilişkisel veritabanları için üretilmiş enfes Python frameworkünü bile kullanabilirsiniz. Ya da ben o kadar karmaşık yapılar üstüne projemi inşa etmek istemiyorum diyorsanız App Engine için geliştirilmiş webapp isimli framework ideal. Hatta Django’dan epeyce kopya çekmiş olduğundan kendinizi bir miktar evinizde bile hissedebilirsiniz (Django ile daha önce çalıştıysanız tabi.)
Ama her şey o kadar tospembe değil:
Örneğin Türkiye’de yaşıyorsanız App Engine’in üreticisi Google’ın Türkiye hükümeti ve mahkemeleri ile çok iyi arkadaş olmadığını hatırlatırım. Neredeyse Google’a ceza kesmek için bahane arayan bir yönetime sahip olduğunuzdan Digiturk isimli bir aşağılık markanın mahkeme kararı ile güya yayın haklarını korumak için Google IP adreslerini engelletmesine şahit olabilirsiniz. Hal böyle olunca suçsuz yere sizin uygulamanızı da sunan IP adresleri engellenebilir ve ortada kalabilirsiniz. Hatta benim gibi çok şanslıysanız bu tam da tanıtım yapmayı planladığınız güne falan denk gelebilir. Aman tabi Digiturk’ün yayın hakları mı önemli yoksa benim nedenini bile bilemeden ceza çekmem mi?
Not: Google, www alt alan adına CNAME bağlantısı yapmanın gerekli olduğunu A kaydını (kendine ait nedenlerden dolayı) sevmediğini söylüyor. Her ne kadar tahmini olarak bulacağınız engellenmemiş ama App Engine sunucularına çıkan IP adreslerine A kaydı vererek sitenizi yayına alabileceğiniz gibi bu günün birinde o IP’nin o servisi vermekten vaz geçme ihtimalini peşinen kabul etmenizi anlamına geliyor. Her an açıkta kalabilirsiniz.
Dezavantajlara gelmişken çıplak alan adı kullanımından da bahsetsem iyi olacak. Eğer alan adınızı www olmadan kullanmak isterseniz hayal kırıklığına uğrayabilirsiniz. Daha önce bunu destekleyen Google, artık olmaz öyle şey diyor. Çözüm olarak herhangi bir hosting sağlayıcısından çıplak alan adınızın www alt alan adına yönlendrilmesi için destek istemeniz gerekiyor. Yani eğer zaten kullandığınız bir hosting servisi yoksa bir de ona para ödemeniz ya da birinden rica etmeniz gerekecek.
SSL kullanmak .appspot.com alan adı üstünde yayın yapmadan mümkün değildi. Eğer App Engine for Business kullanmıyorsanız halen mümkün değil. Ancak hiç olmazsa böyle bir seçeneğin olması çok şükür dedirtiyor.
Bu arada az önce bahsettiğim Django-nonrel’e de çok fazla güvenmek taraftarı değilim. Daha önce, şuan sürdürülmeyen app-engine-patch projesini geliştirmiş takım tarafından üretiliyor. Geçen gün yaptığım denemeler olağanüstü sonuçlar verdi ancak ne kadar daha geliştirmeye devam edeceklerini kim bilebilir ki? İlişkisel olmayan veritabanı desteği, hatta doğrudan Google App Engine Datastore desteği Django’ya eklenmeden çok ciddi bir işi Django kullanarak App Engine ile yapmayı planlamıyorum. Ancak webapp’ın nazını çekebileceğim bir proje olduğunda kullanmaktan çekinmem. Hatta şuan bir tanesini yayınlamak üzereyim.
Django ile çalışmak için tercih ettiğim ortam is Amazon Web Services.
