Mam aplikację działającą na AppEngine, który zużywa około 50 godzin procesora dziennie. Większość z nich spędza się czekając na datastore.Migracja przy AppEngine
Rozważam przeniesienie go z AppEngine do serwerów typu Rackspace Cloud, ponieważ myślę, że moja aplikacja może być bardziej wydajna, jeśli mogę odładować część pracy do bazy danych (plus mogę dodać więcej funkcji, które będą trudne do wdrożenia w AppEngine).
A więc, w jaki sposób mogę przenieść aplikację AppEngine? Jest on opracowywany w środowisku webapp i nie korzysta z wielu interfejsów API Google innych niż magazyn danych. Idealnie byłoby móc zachować kod webapp i zamienić klasy db na coś, co mogłoby porozmawiać z inną bazą danych (MySQL lub PostgreSQL jest prawdopodobnie lepszy niż coś takiego jak CouchDB lub MongoDB, ale te mogą również działać).
AKTUALIZACJA: W odpowiedzi na komentarze poniżej ... Mam już wiele aplikacji internetowych. Nie uruchamiałem jeszcze aplikacji Python do produkcji. Zakładam, że konfigurowanie aspektu python/webserver jest dość proste. Mam nadzieję, że dzięki serwerom typu Rackspace Cloud będzie to 1 serwer, dzięki któremu będę mógł dodawać zasoby również wtedy, gdy się rozwijamy. Obecnie wykonujemy około 200 000 kliknięć dziennie.
Jeśli chodzi o optymalizacje AppEngine, używamy memcache, gdzie możemy (nie wiele miejsc). Używamy także zadań, a ponieważ pomaga to w obejściu limitu czasu żądania, dodaje on używane zasoby.
Moje główne pytanie to dobra alternatywa dla Pythona dla warstwy danych, która może wymagać najmniejszej zmiany kodu. Chociaż wiem również, że prawdopodobnie istnieją pewne istotne pytania, o które nie myślę zadać.
Po prostu z ciekawości, czy czekasz na zapis datastore lub czyta? czy używasz memcache i kolejki zadań? –
Ponadto, nie jest jasne, jakiego rodzaju odpowiedzi szukasz. Czy korzystałeś już z aplikacji internetowej pełnoekranowej? ile trafień dziennie masz? będziesz potrzebować wielu serwerów internetowych? Szukasz rekomendacji ramowych lub krok po kroku, jak ogólnie obsługiwać aplikację internetową? –