2009-09-02 16 views
42

Za chwilę rozpoczniemy pracę nad nowym komercyjnym projektem internetowym i rozważymy Google App Engine jako potencjalną platformę.Google App Engine jako platforma produkcyjna

Pytania:

  1. Czy Google App Engine jest naprawdę skalowalny i może być rozważane jako platforma produkcyjnej handlowej projektu?
  2. Czy jest droższy (lub tańszy niż ) niż dobra firma hostingowa w dłuższej perspektywie?
  3. Czy możliwe (i bardzo tanie), aby przejść aplikację z Google App Engine do niezależnego serwera/farmie (np wykorzystać go jako prywatny systemu, aby wykorzystać naszą własnego sprzętu etc.)?
  4. Czy istnieje jakiś mechanizm umożliwiający radzenie sobie z atakami DDoS?
  5. Czy mogę wykonać pełną kopię zapasową danych aplikacji ?

Przepraszamy za takie głupie pytania.

+2

+1 Dobre pytanie, zwłaszcza o DDoS. Bez obrony przed atakami możesz wykorzystać swój darmowy limit lub nawet pieniądze :( –

Odpowiedz

3

Wszystko zależy od Twoich potrzeb. W przypadku projektu, który wymaga skalowania od bardzo niewielu użytkowników do możliwych milionów użytkowników w krótkim czasie, silnik aplikacji Google może być dokładnie tym, czego szukasz.

Pamiętaj jednak, że możesz być zaskoczony ograniczeniami wynikającymi z GAE. Datastore nie może między innymi wyszukiwać pełnotekstowych lub zapytań za pomocą instrukcji IN. Należy więc dokładnie określić, jakie potrzeby będzie miała aplikacja i jakie dane będą przechowywane i wyszukiwane.

Oznacza to również, że przeniesienie aplikacji z GAE na oddzielny serwer może być kłopotliwe, ponieważ architektura bazy danych najprawdopodobniej będzie inna.

+1

+1 za zaskakujące ograniczenia, ale to właśnie sprawia, że ​​GAE jest tak skalowalny.Poza tym nie możesz łatwo eksportować swoich danych. –

+0

Oglądałbym również wideo z I/O Google w AppEngine z 2010 roku. Są dość zajęci, aby przyspieszyć różne sposoby wysyłania zapytań do twoich danych. – Jilles

4
  1. Watch google IO (whre między innymi mówią, że: „Tak to scallable”
  2. To zależy ... To może być nawet za darmo dla Ciebie (płacisz obciążeniem że masz)
  3. ..
  4. można przejść do Amazonii na przykład stosując appdrop. jest to także dobry pomysł, aby użyć app-engine-patch.
  5. ... dobre pytanie. I naprawdę nie wiem.
  6. Korzystając GAEBar.
+0

Aplikacja wygląda na porzuconą i używa SDK tylko z tego, co mogę zebrać (tzn. Nie jest skalowalnym rozwiązaniem BigTable), więc pytanie pozostaje wciąż kwestią mobilności w moim umyśle. Nie można powiedzieć, że nie można tego zrobić, ale ile wysiłku będzie trzeba? – RyanW

1

Jesteś pytanie # 3 podnosi czerwoną flagę. Jeśli jest to ważna kwestia, w tej chwili powinienem ostrzec App Engine. Uwielbiam tę platformę i nie wątpię, że w pewnym momencie będą to rentowne ścieżki migracji do rozwiązania hostowanego, ale nie teraz. Rzeczy takie jak appdrop udowodnią, że można to zrobić, ale czy wysiłek i inwestycja byłyby tego warte? Oto pytanie, które chciałbym zadać. Chciałbym wiedzieć, czy ktoś z powodzeniem przetransmitował rzeczywistą aplikację do tworzenia aplikacji do innego hosta.

Kopie zapasowe powinny być łatwe do napisania skryptu lub są narzędzia takie jak GAEbar, o których wspomniał Bolotov.

Jeśli chodzi o koszt, prawdopodobnie można uzyskać dziesiątki (a może setki) tysięcy obiektów (zapisów) i przyzwoity ruch/użytkowanie za darmo. Poza tym, nie jestem pewien co do względnych kosztów hostingu, brzmi jak dobry obszar do prowadzenia badań (uwaga do siebie).

Wreszcie Silfverstrom ma rację co do ograniczeń, szczególnie w przypadku wyszukiwania pełnotekstowego. Trwają prace nad kilkoma projektami, które mogą rozwiązać ten problem, ale prawdopodobnie nie są tak mocne jak dojrzałe RDBMS.

10

będę odpowiedzieć na pytanie 1:

jestem w fazie pilotażowej nowej aplikacji internetowej na App Engine. Spędziliśmy około miesiąca na pisaniu kodu i przygotowywaniu rzeczy dla naszego pierwszego klienta. W zeszłym tygodniu wyszli na koncert. Uwielbiają to oprogramowanie, ale kilka dni temu zacząłem otrzymywać losowy termin przekroczenia błędów w aplikacji. Wyszukujesz rekord lub listę i wróci w ciągu milisekund. Następne przejście zajmie 30 sekund i wróci z przekroczonym błędem terminu.

Ślady stosu na desce rozdzielczej dają wyniki losowe. Próbowałem wszystkiego, nawet rozbierając aplikację do świata cześć. Wpisuję wiadomość log do naszego oprogramowania pośredniczącego do żądania procesu django, pierwszego fragmentu naszego kodu, który zostanie wykonany. Pokazano, że na żądanie limitu czasu zajęło 25 sekund od otrzymania przez Google żądania do uruchomienia naszego kodu process_request. Opublikowalem na forum google i nic nie dostałem. Skontaktowałem się z kimś z Google, a oni odpowiedzieli szybko, ale tylko oświadczyli, że skontaktują się z zespołem. Nic od tego.

Możliwe, że jest coś, co robię, aby to spowodować, ale naprawdę w to wątpię. Google nie zapewnia wsparcia, więc zasadniczo nie mam szczęścia.

Gdyby to była komercyjna aplikacja, straciłbym ważność.

tl; dr: Google App Engine ma wielkie nadzieje, ale musi dojrzewać i jeszcze nie nadaje się do produkcji comercial

+0

Czy możesz podać link do wątku na forum? – Sergey

+2

Podstawowy problem jest tutaj: http://code.google.com/p/googleappengine/issues/detail?id=1695 Mój oryginalny wątek jest tutaj, ale są ich dziesiątki na ten sam temat: http : //groups.google.com/group/google-appengine/browse_thread/thread/5373a2efe1a973bb Dla mnie problem został rozwiązany w tym tygodniu (21 września 2009 r.), a 22-go lutego Google dokonał ważnego uaktualnienia. Inni wciąż występują. –

0

Aby zaktualizować niektóre nowsze informacje (2013), GAE ma teraz interfejs API wyszukiwania tekstowego. Nie można bezpośrednio wyszukiwać danych w bazie danych; możesz tworzyć dokumenty do przeszukiwania ze swoich danych i dodawać je do indeksu, który można przeszukiwać. To nie jest strasznie trudne, ale to kłopot. W szczególności, gdy zmieniają się dane, należy ponownie wygenerować zmienione dokumenty i zaktualizować je w indeksie.

Dosyć łatwo jest też eksportować dane do BigQue, co ułatwia raportowanie.