Google App Engine

Siirretään sovelluksemme Googlen App Engine -ympäristöön. App Engine tarjoaa kaksi ympäristövaihtoehtoa: standardiympäristön ja joustavan ympäristön. Käytämme standardiympäristöä, joka on yksinkertaisin ylläpitää ja pienille sovelluksille myös edullisin.

Google Datastore

Googlen Datastore on NoSQL-tietokanta. Datastorea voi käyttää melkein samaan tapaan kuin relaatiotietokantoja.

Liitoksia ei voi käyttää Datastoren kyselyissä.

Uusin versio Datastoresta on rakennettu Googlen Firestore tietokannan päälle. Firestorea voi käyttää joko natiivimoodissa tai Datastore-moodissa. Käytämme Datastore-moodia. Choosing between Native mode and Datastore mode.

Lisätietoa

Kyselyt (Datastore Queries)

Kirjautuminen Googlen tunnuksella

Google-tunnuksella kirjautuminen vaatii hieman esivalmisteluja, jotta saadan OAuth 2.0 toimimaan.

Using OAuth 2.0 to Access Google APIs

App Engine instanssit

App Engine luo tarpeen mukaan yhden tai useampia instansseja sovelluksestasi. Mitä enemmän sovelluksella on käyttäjiä/verkkoliikennettä tai mitä hitaammin sovellus vastaa pyyntöihin, sitä herkemmin App Engine ottaa käyttöön useampia instansseja. Mitä enemmän instansseja on käytössä sitä nopeammin sovellus vastaa, mutta sitä enemmän sovellus myös kuluttaa palvelinresursseja ja google laskuttaa enemmän.

App Enginen skaalausta ja muita ominaisuuksia voi säätää app.yaml-tiedoston avulla.

runtime: python39  #python-tulkin versio

default_expiration: "24h"  #määrää staattisten tiedostojen säilymisiän välimuistissa
instance_class: F1 #käytetyn instanssin teholuokka. F1 on heppoisin ja halvin
                   #älä käytä tällä kurssilla tehokkaampia

automatic_scaling:
  target_cpu_utilization: 0.65  #raja-arvo, jonka jälkeen käynnistetään uusia instansseja
  min_instances: 2 #instanssien minimimäärä. 0 tarkoittaa, että instanssit voidaan kaikki sammuttaa, jos sovelluksella ei ole käyttöä
                   #sovelluksen käynnistyminen on hitaampaa, jos kaikki instanssit ovat pois päältä
                   #Käytä tällä kurssilla arvoa 2 eli koko ajan on käytössä kaksi instanssia
                   #tällä määrällä saa hyvin testattua toimiiko sovellus kunnolla useamman instanssin tapauksessa
                   #varo globaaleja muuttuja, koska ne ovat instanssikohtaisia
  max_instances: 3   #instanssien maksimimäärä. Mitä suurempi lukumäärä sitä suuremmat mahdolliset kustannukset
  min_idle_instances: 2 #jouten olevien instanssien minimimäärä
  max_idle_instances: 3 #jouten olevien instanssien maksimimäärä
  min_pending_latency: 30ms #kauanko odotetaan jonossa ennen kuin luodaan uusi instanssi
  max_pending_latency: 100ms #jos odotusaika on minimin ja maksimin välissä yritetään käyttää olemassa olevaa instanssia
  max_concurrent_requests: 10 #montako yhtäaikaista pyyntöä yksi instanssi kelpuuttaa ennen kuin luodaan uusia instansseja
                              #Hyvä arvo voisi olla 50, mutta käytä nyt minimiarvo eli 10, jotta saadaan varmasti useita instansseja käyntiin

Tarkemmat tiedot asetuksista löytyvät app.yaml referencestä

Lisätietoa

Käyttäjien kommentit

Kommentoi Lisää kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
https://appro.mit.jyu.fi/ties4080/ohjaus/ohjaus4/
© 2021-03-31 09:32:12
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta