Materiały dydaktyczne Katedra Inżynierii Komputerowej Przetwarzanie danych w chmurze Podstawy Google App Engine dr inż. Robert Arsoba Robert.Arsoba@weii.tu.koszalin.pl Koszalin 2017 Wersja 1.0
Podstawy Google App Engine Strona 2 Platformy PaaS Charakterystyka Google App Engine Konto Google App Engine Instalacja środowiska Tworzenie projektu aplikacji Struktura projektu aplikacji Uruchamianie aplikacji Umieszczanie aplikacji w chmurze
Platformy PaaS Strona 3 Dostępne platformy PaaS - Top 20 PaaS
Platformy PaaS Strona 4 PaaS Platform as a Service Google App Engine Microsoft Azure Amazon Elastic Beanstalk Google App Engine (GAE) 2008 beta, 2011 Microsoft Azure 2008 ogłoszenie, 2010 komercyjnie Amazon AWS Elastic Beanstalk 2011
Charakterystyka Google App Engine Strona 5 Google App Engine (GAE) jako przykład PaaS 2008 Google App Engine PaaS 2012 Google Compute Engine IaaS dostępne języki programowania: Java, Python, PHP, Ruby, Go, Node.js, C# (.NET) następne? (language independent) dla każdego języka dostępne dwa środowiska uruchomieniowe: Standard i Flexible bazy danych: DataStore (GQL, brak złączeń JOIN), MySQL ograniczenia w tworzeniu aplikacji (patrz następny wykład) Java dostępne wsparcie dla Java 7 i Java 8, aktualnie (12 2017) brak wsparcia dla Java 9 (możliwe użycie tylko jako custom runtime w App Engine Flexible) wspierane frameworki: Spring, Struts Python dostępne wsparcie dla Python 2.7, aktualnie (12 2017) brak wsparcia dla Python 3 wspierane serwlety i JSP GWT (Google Web Toolkit) do tworzenia GUI wspierane frameworki: Django, CherryPy, Pyramid, Flask, web2py, webapp2
Charakterystyka Google App Engine Strona 6 Ograniczenia GAE w wersji bezpłatnej parametr ograniczenie liczba aplikacji w GAE 10 czas działania instancji aplikacji (frontend) 28 godzin czas działania instancji aplikacji (backend) 9 godzin kod i pamięć plików statycznych 1 GB maksymalny rozmiar pojedynczego pliku 32 MB pamięć masowa Google Cloud Storage 5 GB dane przechowywane w Google Cloud Datastore 1 GB operacje odczytu / zapisu w Datastore 50 tys. / 20 tys. operacji ilość danych wysyłanych przez aplikację 1 GB, maks. 56 MB/min. ilość danych odbieranych przez aplikację 1 GB, maks. 56 MB/min. Limity są zerowane co 24 godziny. Limit dotyczący liczby aplikacji jest stały.
Konto Google App Engine Strona 7 Konto Google aplik1 ( klasyczne gmail) Zalogowanie do witryny GAE appengine.google.com
Instalacja środowiska Strona 8 Java SE 8 SDK (JDK 8) Instalacja krok po kroku uwaga: GAE nie wspiera jeszcze Java 9 oficjalnie wspierane IDE: Eclipse, IntelliJ Eclipse co najmniej 4.5 np. Eclipse IDE for Java Developers, Eclipse IDE for Java EE Developers UWAGA! Od stycznia 2018 Google nie wspiera używanego dotąd Google Plugin for Eclipse (GPE). Dlatego warto migrować do Cloud SDK (i ewentualnie dodatkowo GWT Eclipse Plugin). W przeciwnym razie mogą wystąpić problemy przy współpracy starego pluginu GPE z nowymi wersjami App Engine SDK i Eclipse IDE. Google Cloud SDK (Cloud Tools for Eclipse) narzędzia do zarządzania (gcloud, gsutil, bq) oraz biblioteki do tworzenia zasobów na Google Cloud Platform https://cloud.google.com/eclipse/docs/quickstart https://cloud.google.com/sdk/docs Cloud SDK działa na Windows, Linux, Mac OS X, wymaga Python 2.7 dodatkowo: GWT SDK (Google Web Toolkit) biblioteka do tworzenia GUI w Javie http://gwt-plugins.github.io/documentation/gwt-eclipse-plugin/download.html
Instalacja środowiska Strona 9 Instalacja Google Cloud SDK pobrać interaktywny instalator GoogleCloudSDKInstaller.exe https://cloud.google.com/sdk/docs/ http://dl.google.com/dl/cloudsdk/channels/rapid/googlecloudsdkinstaller.exe uruchomić plik jako administrator postępować wg wskazówek etap wyboru składników instalacji: Cloud SDK Core Libraries and Tools Bundled Python (do uruchamiania narzędzi Cloud SDK lub własny Python 2.7) Cloud Tools for PowerShell (gcloud, gsutil, bq) polecenia Beta (dla gcloud) wymagane gcloud funkcje Google Cloud Platform (w tym GAE) gsutil funkcje Google Cloud Storage bq funkcje BigQuery
Instalacja środowiska Strona 10 Ostatnie okno interaktywnej instalacji: Instalacja Google Cloud SDK tworzy ikonę terminala Google Cloud SDK Shell otwiera okno terminala uruchamia polecenie gcloud init (inicjalizacja SDK)
Instalacja środowiska Strona 11 Instalacja Google Cloud SDK Efekt polecenia gcloud init logowanie na konto GAE => w tym celu uruchomi się przeglądarka www
Instalacja środowiska Strona 12 Instalacja Google Cloud SDK - efekt polecenia gcloud init Po zalogowaniu nastąpi autoryzacja instalowanych narzędzi: nowak Po komunikacie można zamknąć przeglądarkę:
Instalacja środowiska Strona 13 Instalacja Google Cloud SDK - efekt polecenia gcloud init Wybór bieżącego projektu lub utworzenie nowego projektu (Project-ID) W naszym przykładzie wybrano [2] i nadano Project-ID w postaci aplik1 [aplik1]. aplik1
Instalacja środowiska Strona 14 Instalacja Google Cloud SDK instalacja App Engine SDK for Java zmienić katalog na inny niż C:\Program Files\Google\Cloud SDK cd C:\ w oknie terminala uruchomić polecenie: gcloud components install app-engine-java Domyślnie instalowane są dwa środowiska uruchomieniowe GAE dla Javy: Standard i Flexible
Instalacja środowiska Strona 15 Instalacja Cloud Tools for Eclipse plugin W Eclipse: Help -> Eclipse Marketplace... zakładka Search pole Find wyszukać Google Cloud
Instalacja środowiska Strona 16 Instalacja GWT W Eclipse: Help -> Eclipse Marketplace... zakładka Search pole Find wyszukać GWT
Instalacja środowiska Strona 17 Instalacja GWT Instalujemy: GWT Eclipse Plugin GWT SDK
Instalacja środowiska Strona 18 Paski narzędziowe zainstalowane w Eclipse IDE Pasek narzędziowy dla Google App Engine SDK: Pasek narzędziowy dla GWT SDK:
Tworzenie projektu aplikacji Strona 19 Tworzenie projektu aplikacji dla GAE menu File -> New -> Project -> Google Cloud Platform wybieramy Google App Engine Standard Java Project
Tworzenie projektu aplikacji Strona 20
Struktura projektu aplikacji Strona 21 Struktura katalogów projektu aplikacji plik źródłowy serwletu plik strony HTML
Uruchamianie aplikacji Strona 22 Uruchamianie lokalne w Eclipse w wewnętrznej przeglądarce www: drzewo projektów -> PPM na nazwie projektu -> Run As -> App Engine w zewnętrznej przeglądarce www: http://localhost:8080
Umieszczanie aplikacji w chmurze Strona 23 nowak aplik1 aplik1
aplik1 Umieszczanie aplikacji w chmurze Strona 24 Automatycznie tworzony jest link www pod którym aplikacja będzie dostępna jako usługa. Można również wykupić lub zarejestrować domenę niestandardową. http://aplik1.appspot.com http://project-id.appspot.com Lokalizacje GAE: europe-west1 (Belgium) europe-west2 (London) europe-west3 (Frankfurt) us-central1 (Iowa) us-east1 (South Carolina) us-east4 (Northern Virginia) southamerica-east1 (Sao Paulo) asia-northeast1 (Tokyo) asia-south1 (Mumbai) australia-southeast1 (Sydney) Uwaga: po ustaleniu regionu nie można go zmienić.