Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Google App Engine

Autor: Piotr Karpiuk o piątek 19. Październik 2012

Google App Engine (GAE, App Engine, GAE/J) to dostępna od 2008 roku chmura obliczeniowa typu PaaS (ang. Platform as a Service) będąca środowiskiem wykonania dla aplikacji webowych w centrach danych Googla. W porównaniu z innymi skalowalnymi usługami w chmurze takimi jak Amazon EC2, GAE udostępnia więcej gotowych komponentów ułatwiających i przyspieszających pisanie skalowalnych aplikacji (np. automatyczne uruchamianie nowych instancji w razie potrzeby, klastrowanie, monitoring, niezawodność, cache’owanie danych), ale jednocześnie narzuca pewne ograniczenia, przez co nie każda aplikacja nadająca się do chmury będzie pasowała do GAE. Tak więc, o ile w wielu innych chmurach użytkownik może zainstalować i skonfigurować w zasadzie każde oprogramowanie UNIXowe, App Engine zmusza deweloperów do użycia określonych języków programowania (Python, Java, lub Go), API (m.in. Full Text Search, MapReduce, OAuth, OpenID, Blobstore, Task Queue, XMPP, Mail), i frameworków. Programista GAE nie może korzystać z systemu plików w trybie zapisu, ale ma do dyspozycji mechanizm trwałego przechowywania danych w nierelacyjnej bazie BigTable (od 2011 roku można używać relacyjnej bazy danych MySQL o wielkości nie większej niż 10 GB). Jedynym sposobem wywołania akcji po stronie serwera jest protokół HTTP. Wszystko to razem utrudnia przenoszenie aplikacji do innego dostawcy i uzależnia od konkretnych technologii.

Pewnych twardych limitów nie można przekraczać:

  • ograniczenia czasowe: żądanie HTTP nie może być obsługiwane dłużej niż 60 sekund,
  • odpowiedź HTTP nie może być większa niż 32 MB,
  • rozmiar pojedynczej wartości w bazie danych nie może przekroczyć 1 MB.

Platforma GAE jest darmowa, dopóki nie przekroczy się limitów, m.in.:

  • do 1 GB przestrzeni dyskowej na aplikację,
  • do 5 mln odwiedzin stron miesięcznie,
  • do 10 aplikacji na jedno konto Google.

Programiści mają do dyspozycji dokumentację i forum, na którym mogą się pojawiać pracownicy Google’a, ale nie mają takiego obowiązku. Można wykupić płatne wsparcie inżynierów Google’a.

Aby przystąpić do pracy, potrzebne jest zweryfikowane (np. SMSem) konto Google’a. Każda aplikacja musi zostać zarejestrowana, co wymaga podania identyfikatora, tytułu i sposobu autoryzacji (konto Google’a, OpenID). Jedna aplikacja może mieć kilku administratorów.

Zasada tworzenia aplikacji dla GAE jest taka że piszemy kod lokalnie (używając dostarczanego przez Google’a SDK), a uruchamiamy w chmurze. Każda aplikacja ma plik konfiguracyjny app.yaml, w którym określamy w jakim języku jest napisana, jakich zasobów potrzebuje, gdzie znajdują się jej pliki i w jaki sposób żądania wysyłane do serwerów mają być mapowane na kod.

Lokalne testowanie aplikacji w Pythonie (uruchomienie serwera) sprowadza się do wykonania polecenia powłoki:

    dev_appserver.py katalog_aplikacji

a przesłanie kodu aplikacji do chmury to polecenie:

    appcfg.py update katalog_aplikacji

przy czym zostaniemy zapytani o konto Google’a (adres email) i hasło.

Aplikacja działa pod adresem http://id_aplikacji.appspot.com/.

Dostępny w przeglądarce panel sterowania aplikacji pozwala ustalić ilu użytkowników korzysta z aplikacji w chmurze, jak wiele zasobów pochłania aplikacja, przejrzeć logi serwera itp.

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>