Co to jest Google App Engine?

Co to jest Google App Engine?

Google App Engine (GAE) pozwala ci uruchamiać twoje aplikacje webowe na serwerach Google. Aplikacje oparte o GAE są łatwe w budowie, łatwe w utrzymaniu i łatwe w skalowaniu wraz z rosnącym ruchem i ilością przetrzymywanych danych. Nie przejmujesz się także obsługą serwerów.

Twoje aplikacje mogą używać darmowej subdomeny appspot.com, lub też możesz ustawić własną domenę dla aplikacji hostowanych w GAE. Możesz upublicznić swoją aplikację, lub też ograniczyć dostęp do kodu.

Start jest darmowy. Darmowe konto to 500 MB miejsca na dane i odpowiednia ilość cykli procesora i transferu pozwalająca obsłużyć około 5 milionów odsłon miesięcznie. W przyszłości planowane są komercyjne usługi umożliwiające zwiększenie dostępnych zasobów dla rosnących aplikacji.

Architektura

Architektura Google App Engine składa się z szeregu komponentów:
  • Dynamiczne generowanie stron z wsparciem dla popularnych technologii webowych
  • Stałe składowanie danych z zapytaniami, sortowaniem i transakcjami
  • Automatyczne skalowania i równoważenie obciążenia
  • API do autoryzacji użytkowników, czy wysyłania maili poprzez Google Account
  • SDK do tworzenia aplikacji na lokalnym komputerze
Aplikacje GAE pisane są w Pythonie, a dostępne środowisko Pythona na serwerach GAE zapewnia dostęp do większości biblioteki standardowej Pythona. W przyszłości planowane jest wprowadzenie obsługi innych języków.

Aplikacje działają w "piaskownicach" o ograniczonym dostępie do systemu operacyjnego. Umożliwia to dystrybucję aplikacji pomiędzy różnymi serwerami, czy równoważenie obciążenia. Powoduje to jednak kilka ograniczeń:
  • Aplikacja może połączyć się z innymi komputerami tylko poprzez usługi pobierania URLi i usług związanych z emailami, jak i inne dostępne API GAE. Inne komputery mogą nawiązać połączenie wyłącznie za pomocą żądań HTTP czy HTTPS.
  • Aplikacja nie może zapisywać danych w systemie plików. Może je czytać, ale tylko pliki załadowane wraz z kodem aplikacji. Aplikacja musi przetrzymywać wszystkie dane i dodane pliki w bazie danych.
  • Kod aplikacji działa tylko i wyłącznie w odpowiedzi na żądanie i musi zwrócić odpowiedź w przeciągu kilku sekund. Żądanie nie może wywołać kolejnego procesu, czy wykonać kodu po wysłaniu odpowiedzi.

Obecnie jedynym dostępnym językiem jest Python w wersji 2.5.2. Środowisko zawiera bibliotekę standardową tego języka. Wywołanie metody naruszającej ograniczenia piaskownicy nie powiedzie się. Kod musi być napisany w Pythonie, nie ma wsparcia dla modułów napisanych w C. Dodatkowo GAE udostępnia API dla bazy danych, kont Google, pobierania URLi i usług email. GAE zawiera też prosty framework o nazwie webapp umożliwiający szybki start w budowie aplikacji. Dostępne jest także Django w wersji 0.96.1, lecz część jego komponentów (wszystko co związane jest z obsługą baz danych) nie działa (ORM, Modele, częściowo formularze, Panel Admina). Możliwe jest używanie nowszych wersji Django, czy innych frameworków zgodnych z interfejsem WSGI.

Google App Engine udostępnia bazę danych, lecz różni się ona znacząco od relacyjnych baz danych takich jak MySQL, SQLite czy PostgreSQL. Obiekty danych, czy też "wpisy" posiadają typ i zestaw właściwości. Zapytania mogę pobrać wpisy danego typu, filtrować i sortować po podanych wartościach właściwości. API dla składowania danych udostępnia możliwość tworzenia interfejsów opisujących strukturę wpisów. Taki model może określić np. wartość właściwości w podanym zakresie, czy dostarczyć domyślną jej wartość. Operacje na składzie danych przeprowadzane są w transakcjach.

GAE posiada także API do kont Google. Umożliwia ono logowanie na takie konto i udostępnienie adresu email i nazwy przypisanej do konta. Konta Google mogą być wykorzystywane jako system użytkowników dla twojej aplikacji. API także umożliwia określenie czy zalogowana osoba jest administratorem aplikacji.

GAE udostępnia także szereg innych usług. Pobieranie URLi (URL Fetch) pozwala pobierać dane z sieci (np. różne usługi sieciowe, REST itp.) za pomocą technologii używanych w wielu produktach Google. Aplikacje mogę wysyłać emaile za pomocą usług email. Dostępny jest także Memcache umożliwiający keszowanie w pamięci danych na zasadzie klucz/wartość. Memcache można stosować do przechowywania wyników skomplikowanych i/lub długotrwałych operacji w celu przyśpieszenia działania aplikacji i oszczędności zasobów. Usługi związane z obróbką grafiki pozwalają na skalowanie, przycinanie i obracanie grafik w formatach JPEG i PNG.

SDK - programowanie lokalne

GAE udostępnia SDK - pakiet zawierający biblioteki i aplikacje potrzebne do lokalnego uruchamiania aplikacji GAE. SDK zawiera pełny zestaw API dostępny na serwerach GAE, a także symuluje piaskownicę. SDK wymaga Pythona 2.5 i działa na MS Windows, Mac OS X i Linuksie. Za pomocą SDK możemy także przesyłać aplikacje na serwer Google App Engine. Umożliwia także przesłanie nowej wersji aplikacji i testowanie bez automatycznego zastępowania istniejącej wersji.

Konsola Administratora to interfejs dostępny przez przeglądarkę do obsługi swoich aplikacji. Pozwala zarządzać aplikacjami, konfigurować domeny, wersje aplikacji, a także przeglądać logi i statystyki. Umożliwia także przeglądanie składu danych.

Co dalej?

RkBlog

Google App Engine (GAE), 11 September 2008

Comment article
Comment article RkBlog main page Search RSS Contact