tag:blogger.com,1999:blog-5197374494377847819.post1895617430764960174..comments2024-03-22T22:13:46.650+01:00Comments on Holistycznie o inżynierii oprogramowania: Google Application EngineSławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-5197374494377847819.post-26526866001483612582010-05-14T21:06:23.052+02:002010-05-14T21:06:23.052+02:00@Bolo: pewne klasy problemów niebiznesowych jak na...@Bolo: pewne klasy problemów niebiznesowych jak najbardziej zadowolą się małowartościowymi danymi: np komentarze na jutubie i innych podobnych sprawach.<br /><br />Wydaje mi się, że właśnie po to Google udostępnił tego typu platformę - aby stymulować ludzi do realizacji swoich pomysłów webowych. Jak jeden na 10 000 pomysł wypali (a'la fejsbuk) to się wykupi chłopaków wraz z rodziną i inwestycja się zawsze zwróci:)Sławek Sobótkahttps://www.blogger.com/profile/15082577671795313109noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-13377938147356634692010-05-14T15:15:53.631+02:002010-05-14T15:15:53.631+02:00Ostatnio sam zastanawialem sie nad uzyciem GAE, al...Ostatnio sam zastanawialem sie nad uzyciem GAE, ale skuteczenie zniechecilo mnie ograniczenie warstwy 'trwalosci' do BigTable - skladu danych (a nie bazy danych) zapewniajacego wylaczenie atomowosc transakcji. To nie jest cofniecie sie o 10 a o 20 lub wiecej lat do tylu. Z mojego punktu widzenia oznacza to, ze na GAE mozna rozwijac tylko aplikacje, w ktorych dane nie maja wartosci. Tylko po co w takim razie cos takiego pisac ?Bolohttp://ziobrowski.wordpress.comnoreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-58975098425628430762010-05-04T23:34:55.544+02:002010-05-04T23:34:55.544+02:00A na mnie się patrzyliście dziwnie jak pisałem baz...A na mnie się patrzyliście dziwnie jak pisałem bazę danych na csv-ach ;P<br />Ale widzę, że jestem daleko za peletonem w kombinowanych rozwiązaniach.<br /><br />Jeśli mówicie o kierunku/tendencji to przydało by się podać oczekiwany czas takowego zachowania.<br /><br />GAE ma racje bytu do prostych zastosowań, na następne kilka lat jest idealne. Wadą tego rozwiązania jest fakt, że nic specjalnie złożonego na nim nie zrobimy.<br />Google zdobyło rynek dzięki funkcjonalności, szybko dostarczane aplikacje mają racje bytu tylko do czasu pokazania się na rynku czegoś porządnego co wymiecie resztę konkurencji.<br /><br />A rynek się zmienia, uważacie, że za kilka lat firmy dalej będą potrzebować rozwiązań od ręki i na kilka miesięcy (a przynajmniej te poważniejsze)?Lasu aka Marek Koziełhttps://www.blogger.com/profile/02386422649418906804noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-51335842824327322352010-04-27T15:17:23.234+02:002010-04-27T15:17:23.234+02:00Zapomniałem odnieść się do JSP na szczycie stosu. ...Zapomniałem odnieść się do JSP na szczycie stosu. Osobiście przerabiałem to już 6 lat temu... <br /><br />Moja wizja jest taka, że był to kiedyś jakiś tam rozdział w historii. A od tego czasu pojawiło się wiele narzędzi budujących wyższy poziom abstrakcji, przez co drastycznie zwiększających produktywność (która jest tak istotna, co sam podkreślasz na końcu swego posta).Sławek Sobótkahttps://www.blogger.com/profile/15082577671795313109noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-39576479094127153732010-04-27T15:12:00.898+02:002010-04-27T15:12:00.898+02:00Generalnie zgadzam się, że kierunek jest dobry. Je...Generalnie zgadzam się, że kierunek jest dobry. Jestem wręcz przekonany, że z czasem stanie się to standardem. Już teraz średnie i większe firmy softwarowe, które jednocześnie hostują swe produkty stawiają swoje własne chmury. Z czasem na pewno chmury zaczną dostarczać środowisko developerskie wspierające konkretne modele programistyczne (modele w sensie mentalnym). Gdy tylko to nastąpi, wówczas ma pewno będę jednym z pierwszych "pasażerów":)<br /><br /><br />Ale póki co w szczegółach tkwi jak wiadomo sam uber-diałbeł;)<br /><br />Czy spring jest ciężki? Hmmm podobno to J2EE było ciężkie i smutne, co było inspiracją do powstania lekkiego Springa. Ale to kwestia subiektywnego wyważenie "ciężaru" i konsekwencji, zysków i strat na różnych poziomach...<br /><br />Sam spring jest bogatą biblioteką (raczej nie frameworkiem) rozwiązań wieli żmudnych problemów, takich jak bezpieczeństwo czy transakcje.<br /><br />Wystrzykiwanie zależności to tylko środek do osiągnięcia odwrócenia kontroli na takim poziomie aby móc osiągnąć aspektowe konstrukty. Wstrzykiwanie samo w sobie nie niesie dużej wartości w "zwykłych" projektach, gdzie architektura nie musi być na tyle giętka aby była potrzeba utrzymywania wysokiego poziomu abstrakcji wymiennych "klocków". Tak więc sam Juice to dla mnie mało. Bez różnych ficzerów można żyć, pytanie tylko jakim kosztem.<br /><br />Co do problemów z konfiguracją to kwestia doświadczenia i skilla. A na przykład szybkie podmiany można realizować w sposób jaki sam Martin Fowler lansuje w swych projektach, czyli zwykłe przełączenie IP.Sławek Sobótkahttps://www.blogger.com/profile/15082577671795313109noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-49729103858561407152010-04-27T14:02:33.409+02:002010-04-27T14:02:33.409+02:00Rzeczywiscie, jesli przyzwyczailes sie do ciezkich...Rzeczywiscie, jesli przyzwyczailes sie do ciezkich bibliotek jak spring, jsf, hibernate, etc, to trudno jest przejsc na appengine - odradzam.<br /><br />Natomiast jesli cenisz prostote to lekkie srodowisko jsp+guice+jdo na appengine da ci spora poprawe wydajnosci pracy.<br /><br />Od 9 miesiecy w mojej firmie uzywamy appengine do hostowania webservice-ow i prostych aplikacji webowych. Do tego nadaje sie genialnie. <br /><br />Gdy jestesmy na wakacjach nikt nie musi sie martwic: Czy padl nam tomcat? A moze mysql nie ma juz miejsca na dysku? Czy ktos wogole monitoruje aplikacje? Czy backup na pewno sie wykonal? A jak padnie serwer to jak go skonfigurowac od nowa i ile to zajmie czasu? Te wszystkie problemy zalatwia appengine. Nawet jak padnie, co jeszcze mu sie zdarza, to tez nas nie martwi bo chlopaki z Google raz dwa rozwiazuja problem.<br /><br />Swietnie rozwiazany jest deployment: wrzucasz nowa wersje na appengine, testujesz w srodowisku docelowym, a potem tylko przelaczasz pstryczek i ciach juz jest na produkcji. Nie dziala? No coz przelaczasz spowrotem i jestes na starej wersji. Dla nas jest to kluczowe, bo pozwala uniknac wpadek na produkcji, ktore kosztuja wiele w relacji z klientem. Pozwala tez czasem agresywnie wrzucac nowe rzeczy na produkcje bez strachu, ze jak nie zadzialaja to ciezko bedzie sie wycofac.<br /><br />Amazon swietnie sie sprawdza tam gdzie chcesz miec kontrole nad infrastruktura i uzywamy go do hostowania serwera deweloperskiego - wiki/ci/bugtracking etc.<br /><br />Gdy dostarczam rozwiazanie klientowi nie chce zeby placil on za kofiguracje serwerow - wole jesli wyda swoje pieniadze na to co dla niego wazne, czyli nowa funkcjonalnosc.<br /><br />Oczywiscie appengine to jeszcze nowy produkt i nie jest wolny od wad, ale wg. mnie kierunek ktory reprezentuje to przyszlosc hostingu aplikacji.Piotr Gabryanczykhttps://www.blogger.com/profile/00316230475482560970noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-76656155645499535222010-04-27T13:44:15.540+02:002010-04-27T13:44:15.540+02:00Ten komentarz został usunięty przez autora.Piotr Gabryanczykhttps://www.blogger.com/profile/00316230475482560970noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-77463315362506500012010-04-22T10:49:46.875+02:002010-04-22T10:49:46.875+02:00Osobiście obawiam się wynalazków typu Play, poniew...Osobiście obawiam się wynalazków typu Play, ponieważ jak napisał (mniej więcej, cytat z pamięci) kiedyś jeden sędziwy programista:<br /><br />"Ograniczeni umysłowo twórcy 'frameworków' twierdzą, że rozwiąże on 95% problemów. Po wstępnych oględzinach uznajesz, że jest to 50%. Jak zaczynasz używać w nietrywialnych przypadkach niebędących Hello World i zagłębiać się to wychodzi jedynie 5%. Pozostałe 95% to same problemy wynikające z wspomnianych ograniczeń"<br /><br /><br />Co do wydajności i chmury to masz rację. Ale co jeżeli chmura jest elementem wizerunku produktu oraz filarem jego kampanii marketingowej?:P<br />Nie będę tego dalej rozwijał, ale są przypadki gdzie na prawdę jest to racjonalny pomysł.Sławek Sobótkahttps://www.blogger.com/profile/15082577671795313109noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-30382905536512816082010-04-22T10:08:01.162+02:002010-04-22T10:08:01.162+02:00Bardzo ciekawy wpis - dobrze oddaje to, jak na chw...Bardzo ciekawy wpis - dobrze oddaje to, jak na chwilę obecną wygląda GAE. Ja próbowałem odpalić Grailsy na GAEJ. Wyglądało to tak, że musiałem hackować źródła Grailsów, pluginów app-engine, acegi i gorm-jpa. Udało mi się nawet uruchomić prostą aplikację z logowaniem i zarządzaniem użytkownikami ale po pewnym czasie w ogóle nie dało się aplikacji odpalić - uruchamiała się dłużej niż 30 s... Dałem sobie spokój z Grailsami i przerzuciłem się na Spring MVC + JSP + JDO + scheduler pingujący aplikację żeby nie zdechła :) Takie połączenie nawet jako tako działa... Ponoć Play Framework dobrze sobie radzi na GAEJ. Generalnie wychodzi chyba na to, że lepiej napisać aplikację w RoR, Grailsach, czy Django a wydajnością martwić się, jak faktycznie będą z nią problemy :)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-26744895152781638342010-04-21T22:31:24.014+02:002010-04-21T22:31:24.014+02:00Teoretycznie można by próbować ustawić cron job (a...Teoretycznie można by próbować ustawić cron job (albo taskami to zrobić) by cały czas utrzymywać aplikację w ruchu. Ale to chmura, więc nie ma pewności czy kolejny request nie trafi na jakąś nową maszynę. Już nie wspominając o zużywaniu w ten sposób zasobów. <br />Big Table też może być sporym problemem. Sporo z tego co się wie o tworzeniu schematu bazy trzeba wyrzucić do kosza bo okazuje się bardzo niewydajne.<br />Niestety GAE nie do wszystkiego się nadaje.<br />Swoją drogą gdzieś widziałem jakieś porównanie Java vs Python, ciekawe czy są jakieś znaczące różnice wydajnościKosciaKhttp://kosciak.blox.pl/noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-49216844902816498392010-04-21T21:12:51.416+02:002010-04-21T21:12:51.416+02:00Jakiś czas temu zastanawiałem się czy pisać coś na...Jakiś czas temu zastanawiałem się czy pisać coś na appEngine ale po wielu probóbach uruchomienia JSF 1.2 z seamem dałem sobie spokój. Tak jak napisał Sławek trzeba użyć 1000 hacków żeby to się poskładało. To samo z JPA, ograniczenia (o zgrozo JPA w wersji 1.0 już i tak jest na maksa ograniczone)<br /><br />Ja doszedłem do wniosku że albo trzeba się nauczyć wykorzystywać GWT i Guice albo zapłacić za normalny hosting z zainstalowaym Linuksem gdzie mogę sobie postawić wszystko co chcę i bez takich ograniczeń.<br /><br />Wujaszek nie lubi konkurencyjnych frameworków więc mimo że jest bardzo dużo votów na to aby obsługa Richfaces działała to i tak się wujaszkowinioe spieszy (a nuż może się nauczą słuszniejszej technologii).<br /><br />sMarek Dominiakhttps://www.blogger.com/profile/17842356173813763614noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-29242108592180481102010-04-21T20:50:27.643+02:002010-04-21T20:50:27.643+02:00Start na GAE jest generalnie bardzo długi - chmura...Start na GAE jest generalnie bardzo długi - chmura "rozkłada" sobie aplikację w sobie. Czasem nawet 5 minut.<br /><br />Mało tego, nieużywana aplikacja "zamiera" i request, który ją budzi trwa niemiłosiernie długo. Hehe są firemki, które za drobną miesięczną opłatą niedopuszczaną do "zamarcia" (pewnie "pingują" jakąś stronkę)Sławek Sobótkahttps://www.blogger.com/profile/15082577671795313109noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-64521563465384448052010-04-21T20:46:26.386+02:002010-04-21T20:46:26.386+02:00Czas startu pliku WAR jest zwykle i tak znikomy na...Czas startu pliku WAR jest zwykle i tak znikomy nawet z 10 frameworkami w porównaniu z czasem startu serwera jak JBoss.<br />Jeśli ci zależy na szybkim starcie przede wszystkim używaj "małych" serwerów jak Tomcat czy Jetty. Opasłe krowy typu JBoss są tylko do największych aplikacji dla największych klientów.Irek Matysiewiczhttps://www.blogger.com/profile/02786161827081997066noreply@blogger.comtag:blogger.com,1999:blog-5197374494377847819.post-83132431830692911762010-04-21T20:26:47.128+02:002010-04-21T20:26:47.128+02:00Nawet jeśli różniaste (duże) Javowe frameworki by ...Nawet jeśli różniaste (duże) Javowe frameworki by na GAE działały to pojawi się kolejny problem - kosztowny zimny start aplikacji. Te wszystkie biblioteki muszą zostać załadowane, pożerając czas potrzebny na obsłużenie żądania oraz czas procesora. Im mniejszy ruch w aplikacji tym mocniej będzie boleć.KosciaKhttp://kosciak.blox.pl/noreply@blogger.com