Silnik aplikacji Google Jest to platforma oferowana przez Google dla programistów internetowych. Nie byłoby przesadą stwierdzenie, że problem wzrostu i rozsądnych oszczędności na skalowalności i wydajności napotyka deweloperów od samego początku pracy nad projektem. Z jednej strony ogromna liczba startupów, z których deweloperzy nawet w przybliżeniu nie wyobrażają sobie natury i ilości ładunków na stronie, a którzy chcą mieć pewną optymalizację wydajności, często zaczyna się od pierwszych linii kodu. Z drugiej strony muszę powiedzieć, że aplikacje wymagające skalowania mają bardzo złożoną architekturę, a pisanie takiego kodu jest również bardzo specyficzne. Oddzielnie należy wspomnieć o tym, że utrzymanie takiej skalowanej poziomo infrastruktury w warunkach pracy jest dość kłopotliwe i kosztowne. W branży aplikacji o dużym obciążeniu niekwestionowanym sztandarowym produktem jest Google. Oferują swoje doświadczenie programistom w formie Silnik aplikacji Google .
Dla tych, którzy nie słyszeli nic o GAE, polecam czytanie artykułów o szybki start z gae , model i kontroler .
Porozmawiajmy trochę o zaletach platformy:
- Przede wszystkim jest to skalowalność „z pudełka”, której absolutnie nie trzeba się zajmować. Gwarantowany czas pracy wynoszący 99,9%, brak kopii zapasowych, replikacji i innych udręk w aplikacjach o dużym obciążeniu.
- wszyscy programiści, jako jedni, podziwiają, jak dobrze GAE jest dobrze udokumentowane i jak łatwo jest stworzyć swój pierwszy świat hello
- przejrzysta integracja z kontem Google i wieloma usługami
- wsparcie dla Javy i Pythona „z pudełka” oraz ogromna liczba języków skryptowych „spod Java”
- wygodny serwer rozwoju i proste narzędzie do wdrażania
- ogromna liczba projektów open source są dobrą pomocą w rozwoju na GAE
Jak zwykle w beczce z miodem, w maści będzie mucha.
- limit rozmiaru pliku: 1 megabajt
- Innym interesującym ograniczeniem jest, na żądanie, nie więcej niż milion cykli procesora na żądanie. Nie masz narzędzi do oceny, profilowania tych cykli i nie ma takiego ograniczenia na lokalnym serwerze. Dlatego przygotuj się na fakt, że złożona aplikacja zacznie się rozpadać po wdrożeniu, prawdopodobnie losowo.
- bardzo powolne lokalne przechowywanie danych, chociaż na serwerze, po wdrożeniu, praca z pamięcią również jest niejednoznaczna, a także nakładane są ograniczenia i limity na pracę z pamięcią masową
- Program ładujący (ładujący zbiorczo) jest raczej powolny i często generuje 500 błędów.
- trzeba powiedzieć - ale nie masz uprawnień roota
- więcej o ograniczeniach można przeczytać tutaj
Na podstawie powyższego uważam, że idealną aplikacją dla GAE są małe startupy, niezdolne do planowania ruchu dla swoich aplikacji i budowania drogiej infrastruktury, która wytrzyma „napływ”, jeśli się powiedzie. Mogą to być wszelkiego rodzaju widgety, aplikacje społecznościowe, gry, z logiką serwera nie zużywającą zasobów.
Kilka wniosków na temat skuteczniejszego stosowania GAE:
- przenieść logikę i funkcjonalność do klienta - wszelkiego rodzaju logiki na JS, Flash, Flex, Silverlight itp
- używać memcache do buforowania żądań do repozytorium
- używać sharded counters dla statystyk
- wysyłanie listów zajmuje dużo procesora, lepiej go używać zadania lub cron
- Użyj kilku aplikacji GAE, dla różnych potrzeb, zamiast jednego dużego. Ma sens zwiększenie kwot i udostępnianie statystyk.
- użyj zapisywania wsadowego i pobieraj dane z pamięci
Komentarze
komentarze
