google app engine

14

Click here to load reader

Upload: tomas-holas

Post on 21-May-2015

1.466 views

Category:

Technology


4 download

TRANSCRIPT

  • 1. Google App Engine Tom Holas

2. Co je to App Engine? Prosted pro vvoj a hostovn webovch aplikac na Google infrastruktue PaaS = Platform as a Service Automatick klovn Nutnost dodrovn pravidel platformy Aplikace v Sandboxu Vvoj v simulovanm prosted SDK Python, Java, dal JVM jazyky, podpora vtiny webovch framework 3. Jak jsou pravidla? Filesystm pouze pro ten 30s as na odpov serveru Zkaz otevrat sov spojen dn nov procesy ani thready Zkaz jakchkoliv systmovch voln Omezen potu a velikosti soubor Kvty na vyuvn systmovch prostedk 4. Vechno pes API URL Fetch Mail Images Google Accounts CRON Task Queues XMPP (Jabber) 5. Google Datastore Distribuovan databze Zaloeno na BigTable Podporuje Transakce a Partitioning Podporuje Hierarchie Nen relan databze Bez schmatu Nepodporuje SQL 6. Princip Datastore Zkladn jednotkou je Entita zznam Druh (Kind) tabulka Kl (Key) primrn kl Skupina Entit (Entity Group) partition 0..N Vlastnost (Properties) sloupce Vechny entity v jedn Tabulce 7. Vlastnosti Entit Kad Entita me mt libovolnou kombinaci vlastnost nezvisle na svm druhu Vlastnosti mou bt vcehodnotov, nap pole tto vlastnosti lze vyut pro 1:N a M:N relace Kad entita me mt svho Rodie a vytvet tak hierarchie Podle Hierarchi se provd automatick Partitioning Transakce jsou mon pouze pro Entity se stejn Skupin Entit 8. Omezen Datastore Nepouv SQL, pouze GQL (Python) nebo JDOQL (Java) Neexistuje podpora pro Joiny, ani tam nen nic podobnho dn databzov constraints (omezen na ciz kle) dn agregan funkce (count, avg, min, max) Maximln 1000 zznam z jednoho dotazu. Za 1000. zznam v poad nen mon se dostat ani pes offset. Omezen na podmnky dotazu: Nerovnost pouze na 1 vlastnosti SELECT * FROM Person WHERE birth_year >= 1980 AND birth_year = 1980 AND height >= 180 dn globln transakce - pouze v rmci stejn Skupiny Entit Nelze provdt ad-hoc dotazy, protoe kad typ dotazu potebuje vlastn index (pomh SDK) 9. Jak se s tm vyrovnat? Zvit vhodnost platformy Jde v tom moje aplikace vbec napsat? Pokud ano, tak zmnit zpsob mylen Zmnit zpsob nvrhu aplikace Nenechat se ovlivovat stereotypy z relanch databz Snait se vyut vhod Datastore Jednoduchost, rychlost, prunost, vcehodnotov vlastnosti... Denormalizovat! Penst odpovdnost za konzistenci dat zdatabze na aplikaci 10. Python API class Person(db.Model): first_name = db.StringProperty() last_name = db.StringProperty() hobbies = db.StringListProperty()p = Person(first_name = "Albert", last_name = "Johnson") p.hobbies = ["chess", "travel"]query = db.Query(Person) query.filter("last_name = ", "Johnson") results = query.fetch 11. Java API @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Person { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id;@Persistent private String firstName;@Persistent private String lastName;@Persistent List hobbies; }Query query = pm.newQuery(Person.class); query.setFilter("lastName == 'Johnson'"); List results = (List) query.execute(); 12. DEMO ! 13. Zvr App Engine umouje snadn vvoj klovatelnch webovch aplikac Pozor na specifick omezen Vhodn pro hodn velk, nebo hodn mal projekty Platforma se rychle vyvj a vylepuje 14. Dkuji za pozornost! [email protected] linkedin.com/in/tomash facebook.com/tomas.holas twitter.com/tomaash