poniedziałek, 13 września 2010

Mała pomoc przy pracy z GAE

Witam!

Ostatnimi czasy w celach prywatnych zająłem się małą aplikacją, która docelowo ma działać na Google App Engine. Platformie jeszcze bardzo daleko do ideału, wciąż jest ogrom rzeczy do zrobienia, ale faktem jest, że prace są prowadzone i panowie (i oczywiście panie) z Google nie ustają w swych staraniach. Przykładem mogą być dwie (wydane bardzo krótko jedna po drugiej z powodu znalezienia ważnego bug'a) aktualizacje GAE SDK: 1.3.6 i 1.3.7. Problem ze stałym rozwojem środowiska jest taki, że dosyć często następują przerwy w dostarczaniu usługi. Można śledzić bloga, można też śledzić grupę dyskusyjną, ale ja znalazłem najwygodniejsze rozwiązanie by być na bieżąco z informacjami o przerwach w działaniu GAE - kalendarz Google App Engine Scheduled Maintenance Outages. Jest wygodny, łatwy do zintegrowania z Google Calendar / iGoogle i o wiele trudniej w ten sposób zapomnieć o maintenancie.

Mam nadzieję, że ta krótka notka komuś się przyda :)
Pozdrawiam i do następnego razu!

6 komentarzy:

  1. A nie lepiej zasubskrybować grupę http://groups.google.com/group/google-appengine-downtime-notify i ustawić maile dla każdej wiadomości? Pojawiają się tam informacje, nie tylko powiadamiające o downtimie, ale i raporty z postępów prac.

    OdpowiedzUsuń
  2. Zasubskrybowałem także tą grupę, ale przy napływie maili wolę jednak kalendarz. W nim zresztą mogę sobie też ustawić powiadomienie SMS jeśli wiem, że mniej więcej w tym czasie będę pracować nad aplikacją to dostaje ostrzeżenie, żeby nie uploadować nowej wersji :)

    OdpowiedzUsuń
  3. Kiedyś pisałem coś w Grailsach i wdrażałem na GAE, ale działało to naprawdę słabo. Przy najprostszym odczycie z DB Store co jakiś czas dostawałem timeout. Ale to było jakiś czas temu, więc pewnie już teraz da się na tym pracować. To dobrze, bo idea GAE jest bardzo szlachetna :)

    OdpowiedzUsuń
  4. Co do DB na GAE ciągle są problemy, szczególnie w trakcie maintenance'u, kiedy baza jest ustawiona w tryb read-only, a tak naprawdę możesz na niej robić co chcesz i działa, ale do momentu wyłączenia trybu read-only, bo wtedy dane przestają być spójne (Google deklaruje, że zabezpiecza się przed tym, ja twierdzę, że im nie wychodzi), ale z każdym nowym SDK jest coraz lepiej i warto próbować co jakiś czas :)

    OdpowiedzUsuń
  5. @Henryk Konsek - stety lub nie pisząc aplikację na GAE trzeba bardzo dobrze przemyśleć strukturę bazy danych i sposób dostępu do danych. Trzeba pamiętać, że to nierelacyjna baza danych (o sporych ograniczeniach) i część rozwiązań, które sprawdzają się w "normalnych" bazach danych nie zdaje tu egzaminu.
    Dobrze też intensywnie korzystać z Memcache.

    OdpowiedzUsuń
  6. Ten timeoutujący dostęp do danych polegał na zapisie encji z polami typu String. Żadnych asocjacji. Najprostszy snippet w Grailsach i GAE już leżał. Może tak jak Łukasz sugeruje trafiałem wtedy akurat w maintenance. Anyway, cieszę się, że moje ówczesne doświadczenia nie są regułą.

    OdpowiedzUsuń