Google App Engine: zalety i wady

Wysłany przez Andrey Skalyuk - 04/17/2008, 00:08
Tagi: google python Wysłany przez Andrey Skalyuk - 04/17/2008, 00:08   Tagi:   google   python   Po zapoznaniu się z informacjami w Internecie na temat Google App Engine chciałbym wyrazić swoją opinię na temat głośnych sporów wokół tego produktu, a także przedstawić ogólną listę jego ograniczeń w oparciu o publikacje badane na ten temat

Po zapoznaniu się z informacjami w Internecie na temat Google App Engine chciałbym wyrazić swoją opinię na temat głośnych sporów wokół tego produktu, a także przedstawić ogólną listę jego ograniczeń w oparciu o publikacje badane na ten temat.

Profesjonalny programista wybiera narzędzie do zadania i rozwiązuje je za pomocą dostępnych narzędzi.

Dotyczy to zarówno wyboru języka Python, jak i całej platformy. Osobiście jestem programistą Pythona i Django od ponad roku i mogę ocenić ich zalety i wady. Python i Django okazały się doskonałymi narzędziami do tworzenia aplikacji internetowych. Korzystanie z nich, czy nie, to sprawa każdego. Moim zdaniem Google odebrało i zapewniło wystarczające środki na pełnoprawne tworzenie stron internetowych. Dlaczego Python został wybrany, myślę, że jest jasne dla wszystkich - korporacja ma duże doświadczenie w pracy z tym językiem. A także nie powinniśmy o tym zapominać Guido van rossum - członek zespołu programistów.

Była publikacja, w której rozwiązanie Google zostało porównane z hostingiem na „twoim ulubionym języku + MySQL”. Wątpię, by Google nagle zdecydowało się przekwalifikować w firmie hostingowej przeciętnego poshiba. Google App Engine nie jest darmowym hostem dla Twojego ulubionego bloga, jest to skalowalne środowisko dla aplikacji o dużym obciążeniu, które działają z dużymi zestawami danych. W takiej sytuacji będzie ci przydatne, chociaż możesz z niego korzystać tak, jak chcesz. Musisz zrozumieć, w jaki sposób produkt jest ustawiony i jak go właściwie używać. Jako przykład przytoczę kwestię arbitralnych żądań. Dla każdego z zapytań środowisko wymaga utworzenia indeksu. Robi to absolutnie dobrze (i często automatycznie). Chociaż ogranicza to możliwość „grania” danymi, ale prawdziwa aplikacja zawsze działa z ograniczoną listą żądań do bazy danych. Zawsze tworzy te same żądania, tylko z różnymi parametrami. Optymalizacja dla twoich żądań jest właściwą decyzją i bardzo dobrze, że samo środowisko popycha cię do tego. Dlatego technologia ta wymaga zrozumienia jej celu.

Lista ważnych ograniczeń:

  • Rozmiar plików statycznych jest ograniczony do 1 MB. App Engine nie obsługuje częściowych żądań treści.
  • Nie można korzystać z technologii kometowych (push serwera).
  • Aplikacja nie jest jednoznacznie identyfikowana przez adres IP. Trudne do interakcji z usługami zewnętrznymi. Aplikacja może ucierpieć z powodu złych sąsiadów w tej samej usłudze.
  • brak obsługi SSL. Brak unikalnego adresu IP utrudnia autoryzację, ale port 443 jest otwarty na żądania. Możesz polegać na usługach Google dla zaufanych loginów.

Lista rozwiązanych ograniczeń:

  • Nie ma możliwości korzystania z zadań cron. Rozwiązuje się to poprzez przejście na zewnątrz i wywołanie specjalnych adresów URL aplikacji.
  • brak przetwarzania obrazu. Biblioteka Python Imaging Library nie działa, ponieważ część biblioteki jest napisana w C. Napisz własne przetwarzanie obrazu w czystym pythonie.
  • powiązać na kontach Google. Za każdym razem, gdy logujesz się do aplikacji, użytkownicy będą wiedzieć o wybranym przez Ciebie silniku aplikacji Google. Nie widzę żadnych szczególnych problemów. Pozytywny moment - najlepsze pozycjonowanie reklam w AdSence.
  • wolne tabele skanowania. BigTable nie jest MySQL. Czytamy dokumentację - zmieniamy myślenie. Jeśli Twoje zapytania są wykonywane powoli, najprawdopodobniej używasz narzędzia nieprawidłowo. Spójrz na przykłady, przemyśl architekturę ponownie.
  • potrzebują stałej interakcji z hostem. Jest tylko jeden sposób uruchomienia kodu ze wszystkimi funkcjami środowiska - aby załadować go na serwer. Jest to niewygodne, ponieważ nie można „podnieść” projektu lokalnie.

Źródła internetowe:

http://community.livejournal.com/evan_tech/248465.html
http://www.niallkennedy.com/blog/2008/04/google-app-engine.html
http://www.tomstechblog.com/post/2008/04/Google-App-Engine-Free-and-still-barely-worth-it.aspx