Agile Development’ın bir İleri Adımı: Google App Engine
Webrazzi’de Google App Engine ile ilgili gördüğüm bir yazı üzerine şöyle bir göz atayım dedim ve geçen sene duyurulan Google App Engine‘in güzel bir yol kat ettiğini fark ettim.
Nedir?
Sektörü takip edenler için özetlemek gerekirse “Amazon Web Services” ile “Ruby on Rails“in işlerini bir arada yapan bir uygulama diyebiliriz.
Bilmeyenler için kısa özet:
Amazon Web Services’in içerisindeki;
- EC2 yoğun yük altındaki sunucuların ölçeklendirilmesi servisi.
- S3 web servisinizdeki verilerin ölçeklendirilmesi servisi.
- SimpleDB ise ölçeklenebilen bir veritabanı servisi.
Yani kısaca trafiği yükselen ve çok yük alan servisler için zahmetsizce kapasitenizi arttırabildiğiniz ve hatta gerektiğinde maliyeti düşürebilmek için azaltabildiğiniz bir servis. Microsoft’un benzer servisinin adı ise “Azure”
Ruby on Rails’in özelliği ise çok hızlı ve pratik proje oluşturulabilmesi. Bir ekibin gereksinim duyduğu bütün altyapılara sahip:
- Geliştirme, test ve son ürün için ayrı konfigürasyon tanımlayabilme (Son üründe hata mesajlarını gösterme, geliştirilen versiyonda göster vs.)
- Geliştirme için kullanıma hazır web server. Apache kurayım, PHP tanıtayım falan yok. Web server’ı çalıştır diyorsunuz, kendi makinenizde herşey hazır olarak çalışıyor.
- Arama motorları için adresin anlamlı olması çok önemli o yüzden adresi scriptlere dağıtan “router” mekanizması. Geliştirici ve tasarımcı için linkleri verirken de kolaylık oluyor.
- Veritabanı için ORM altyapısı.
- vs.vs.vs.
…
Google App Engine’de Rails’i hatırlatan python tabanlı bir framework kullanabiliyorsunuz. İsteğe bağlı olarak en az Rails kadar ses getirmiş Django ya da CGI tabanlı herhangi bir python framework’ü kullanılabiliyor. Son zamanlarda Java desteği de sağlandı.
Geliştirme esnasında sadece komut satırında web sunucuyu çalıştır diyorsunuz. Veritabanı falan kurmaya gerek yok zira veritabanı da web sunucu ile entegre. Kendine özgü bir veritabanı var. Geliştirmeyi bitirdikten sonra sanki FTP ile upload eder gibi projeyi upload et diyorsunuz ve herşey çalışır hale geliyor.
Veritabanında yük artarsa Google hallediyor, veritabanı otomatik genişliyor.
Web sunucularında yük artarsa Google hallediyor, sunucular ölçekleniyor.
Yakın zamana kadar gördüğün en pratik çalışma ortamı…
Ama tabii ki soru işaretleri de bırakıyor…
Dezavantajları
- Paralı bir servis. CPU’nun kullanım saati başına, hat miktarı başına, disk alanı başına, zart başına zurt başına taksimetre gibi yazıyo. Bir miktarı ücretsiz ama ben şahsen herhangi bir projemin ne kadar CPU kullanacağını önceden öngöremem dolayısıyla proje maliyetini öngörmek biraz sıkıntılı.
- Desteklenen diller sadece Python ve yeni yeni Java… Özellikle Python için Türkiye’de programcı bulmak zor…
- Özellikle Google’ın framework’ünü kullanarak projenizi geliştirirseniz ve ileride örneğin Google’ın fiyatlandırmasından ya da hizmetinden memnun kalmazsanız projenizi destekleyecek hosting çözümleri nedir allah bilir. Daha yaygın olan Django tercih etseniz bile veritabanı için Google’ın altyapısı kullanıldığı için başka bir servis sağlayıcıya geçmek zahmetli olabilir.
Sonuçta aynı kurumsal şirketlerin personele bağımlı kalmaması gibi projelerin de servis sağlayıcı, programcı gibi parametrelerden mümkün olduğunca bağımsız olması uzun vadede büyük avantajlar sağlıyor…
Benim öngörüm uzun zamandır geleceğin framework’ler ve framework’leri adam gibi destekleyen IDE’lerde olduğu idi. Framework + IDE ikilisinin yanına Cloud Computing destekli servisleri de ekleyebilirim sanırım.
'96 dan beri web teknolojileri üzerine çalışır.
Hsdsn
12 Apr, 2009
Bu işler için Tr coğrafyasından ulaşımda hızlı çalışacak sunucular ayarlasınlar, sonra php’yi de işin içine dahil etsinler ancak ondan sonra olabilir. Yurtışındaki sunucular yeterli hızda çalışmıyorlar.