Cloud Computing i pies woźnego
Wstań, idź
Wyznaczyłem sobie horyzont: prosty site z możliwością dodawania komentarzy i logowaniem użytkowników. Szukałem wygodnego rozwiązania, będącego kompromisem między łatwością developowania, kosztem utrzymania i wdrożenia, a wydajnością i dostępnością technologii.
Ograniczenia:
* dobre wsparcie IDE
* sensowny język programowania
* tani hosting
* łatwy framework
Kraina PHP
Oczywiste rozwiązanie, które nasunęło się niemal od razu wskazywało:
1. wordpress lub cms (jeden z wielu)
Zalety:
* tani lub wręcz darmowy (obciążony reklamami) hosting
* podstawowy site można wyklikać w jeden dzień.
Wady:
* Rozbudowa o dodatkowe moduły wymaga poznania technologii.
* Oparte na językach bez typów.
2. apache + php + [kohana, symfony, cake]
Podobne zalety i wady.
Ruby on Rails
Krótka fascynacja tym (rewelacyjnym) frameworkiem zaowocowała brakiem dalszego zainteresowania.
Rzecz nie jest w tym, że język ma specyficzną składnie, bo to rzecz wtórna- tylko hostingi są dość drogie.
Piąty Element: VPS
W tym momencie zrezygnowałem już z PHP i Ruby-ego. Wydawało mi się, że zrobię mądrze jeśli zainwestuję w wirtualny serwer. Koszt takiej imprezy to około 1000 zł rocznie. Można oczywiście znaleźć tańsze rozwiązania (np. OVH proponuje VPSy za jakieś 300zł rocznie) ale ich wydajność nie pozwoli odpalić niczego przyzwoitego.
Google App Engine
W końcu, z mroków wyłonił się zwycięzca. Ten darmowy dopust boży, dający możliwość serwowania aplikacji w Javie i Pythonie jest rozwiązaniem w sam raz dla kogoś kto potrzebuje wystartować z małym projektem. Poczynione obserwacje statystyk ruchu mogą oczywiście przeobrazić mały projekt w większy i należy wtedy zapłacić za podniesienie wydajności serwera, ale koszty te są niewielkie i sensownie rozłożone, bo płaci się za konkretne parametry systemu które chcemy uzupełnić.
Konfigurację można załatwić w kilka minut (http://code.google.com/intl/pl/appengine/docs/whatisgoogleappengine.html), jednak raczej odradzam pisanie kodu na Idei Community. Po pierwsze brak jej pluginu App Engine, a po drugie słabo integruje się z antem. Warto dodać że werjsa Enterprise podobno ma wbudowane wsparcie dla GAE.
Oficjalny tutorial sugeruje Ecplipse-a. Nie lubię tego narzędzia, ale pomyślałem, że warto spróbować ze względu na omawiane w guidzie plusy. Plugin się nie zainstalował; może to tylko mój problem, ale wystąpił. Był to dobry moment, żeby przejść na NetBeansa 6.9.x
Odpowiedni poradnik ułatwiający instalację pluginu znajdziemy tu http://rocky.developerblogs.com/tutorials/getting-started-google-app-engine-netbeans/
Play framework (www.playframework.org)
Warty polecenia framework MVC, oparty na idei convention over configuration.
Po oglądnięciu filmiku marketingowego byłem złapany na haczyk. Bardzo przypomina Raily (i dobrze!).
Wspiera deploy na Google App Engine!!
Niestety, żeby nie było za owocowo, abstrakcja modelu danych siada. JPA zwyczajnie nie działa, ze względu na nierelacyjny model danych GAE.
Z pomocą powinna przyjść siena: http://www.sienaproject.com/documentation.html
Podsumowanie
IDE: NetBeans 6.9 CloadComputing: Google App Engine framework: play!