Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
App EngineKick Start@tomucha
Multimedia atelier s. r. o.
Multimedia atelier s. r. o.
memeReactor
Cloud Computing                                 scalabity               virtualization         SOA                        ...
Cloud Computing   Just like water from the tap in your kitchen, cloud   computing services can be turned on or off quickly...
Škálovatelnost (nutná, ...)                           Peak                         3 nodes                                ...
(… nikoliv postačující podmínka úspěchu)                                               TechCrunch                         ...
ŠkálováníVertical scaling – posiluju počítačVertical partitioning – rozděluju službyHorizontal scaling – přidávám nody  • ...
Možnosti Amazon Elastic Compute Cloud (Amazon EC2) Amazon Simple Storage Service (Amazon S3) Windows Azure Rackspace.com ...
App Engine             API / Framework  Hosting                      IDE plugin / SDK
App Engine vs. Amazon AWS                          App Engine   mrak strojůhostingstoragescalabilitypay for what you usedi...
App Engine – A jako v praxi teda?       WAR
App Engine – Omezení (Sandbox)     Bezpečnost              Škálovatelnost     přístup na FS                NoSQL   práce s...
App Engine – K čemu je, k čemu není         Jo                      Ne       WWW                finanční software       eS...
App Engine – FrameworkSessions – musí se zapnoutImages – manipulace alá PicassaChannel – push to client (+ JS knihovna)Mai...
Demohttp://code.google.com/appengine/http://code.google.com/appengine/docs/java/tools/eclipse.html
DatabázeBigTable → BIG MIND SHIFT  • gigantická HashMapa HashMap  • WWW index, Earth, Finance, ...nemá datový modelpreinde...
Databáze – Primary KeysKey                    Entity employee = new   •   appId                      Entity("Employee");  ...
Databáze – Transakce                           Entity Group    Faktura                 Řádek 1          Produkt 1         ...
Databáze – JDO relationshipsOwned One-to-One Relationships (záznam + detaily)  • jo – může přinést výhodyOwned One-to-Many...
Databáze - Optimistic Concurrency Controlint retries = 3;while (true) {    Transaction txn = datastore.beginTransaction();...
memeReactor - pitevna       try {           chain.doFilter(hr, response);       } finally {           try {               ...
memeReactor - pitevna              Begin, Commit, Rollback, repeat, ...transaction(new TransactionCallback() {  @Override ...
AppEngine - tipyZapomeňte na SQL a normální formy (s rozmyslem)  • denormalizace  • kolekce a pole jako datový typZapomeňt...
Q&A
Upcoming SlideShare
Loading in …5
×

App Engine Kick Start

5,111 views

Published on

Tomuchovo prednaska o App Engine na GUG CVUT.

  • Přednáška byla super. @tomucha umí přednášet. Správné vyvážení základů a pokročilých věcí. Líbilo se mi poukázání na takové ty maličkosti, nad kterými bych určitě strávil hodiny (nejde použít dvakrát < v query, sessions se musí zapnout, transakce se nemusí povést při větším náporu, ...)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

App Engine Kick Start

  1. 1. App EngineKick Start@tomucha
  2. 2. Multimedia atelier s. r. o.
  3. 3. Multimedia atelier s. r. o.
  4. 4. memeReactor
  5. 5. Cloud Computing scalabity virtualization SOA distributed SaaS YOU YOUR ADMIN
  6. 6. Cloud Computing Just like water from the tap in your kitchen, cloud computing services can be turned on or off quickly as needed. Vivek Kundra, 1st CIO of USA “Its stupidity. Its worse than stupidity: its a marketing hype campaign.” Richard Stallman, GNU founder
  7. 7. Škálovatelnost (nutná, ...) Peak 3 nodes 1 node12:00 18:00 24:00 6:00 12:00 18:00 24:00 6:00 12:00 18:00 24:00 6:00
  8. 8. (… nikoliv postačující podmínka úspěchu) TechCrunch efect12:00 18:00 24:00 6:00 12:00 18:00 24:00 6:00 12:00 18:00 24:00 6:00 12:00
  9. 9. ŠkálováníVertical scaling – posiluju počítačVertical partitioning – rozděluju službyHorizontal scaling – přidávám nody • load balancing • dynamické škálování • sessions • database a další sdílené zdroje (FS, cache, ...) • péče o hardware
  10. 10. Možnosti Amazon Elastic Compute Cloud (Amazon EC2) Amazon Simple Storage Service (Amazon S3) Windows Azure Rackspace.com ...
  11. 11. App Engine API / Framework Hosting IDE plugin / SDK
  12. 12. App Engine vs. Amazon AWS App Engine mrak strojůhostingstoragescalabilitypay for what you usedifferent OS, languagesframework / API
  13. 13. App Engine – A jako v praxi teda? WAR
  14. 14. App Engine – Omezení (Sandbox) Bezpečnost Škálovatelnost přístup na FS NoSQL práce se sockety joins, group by, agregate thready unique java.lang.System / GC 30s limit reflexe quoty
  15. 15. App Engine – K čemu je, k čemu není Jo Ne WWW finanční software eShop UDP herní server “Twitter” “YouTube” “Flickr” velké výpočty
  16. 16. App Engine – FrameworkSessions – musí se zapnoutImages – manipulace alá PicassaChannel – push to client (+ JS knihovna)Mail / URLFetch / XMPP - komunikaceMemCache – distributed cacheTask Queue / Cron – asynchronní úlohyUsers – login via Google Account
  17. 17. Demohttp://code.google.com/appengine/http://code.google.com/appengine/docs/java/tools/eclipse.html
  18. 18. DatabázeBigTable → BIG MIND SHIFT • gigantická HashMapa HashMap • WWW index, Earth, Finance, ...nemá datový modelpreindexed queries, joins, 2x “<”přístup • nativní API App Engine • Java Data Objects – JDO • Java Persistence Api – JPA
  19. 19. Databáze – Primary KeysKey Entity employee = new  • appId Entity("Employee"); • namespace • Entity kind Entity employee = new  • id / name Entity("Employee",  "asalieri"); • parent KeyFactory.createKey(Employee. class.getSimpleName(),  "Alfred.Smith@example.com");
  20. 20. Databáze – Transakce Entity Group Faktura Řádek 1 Produkt 1 Řádek 2 Produkt 2
  21. 21. Databáze – JDO relationshipsOwned One-to-One Relationships (záznam + detaily) • jo – může přinést výhodyOwned One-to-Many Relationships (faktura + řádky) • jo, vytváří EntityGroupUnowned Relationships (člověk a oblíbené jídlo, n:m) • ne-e, ručně, přes Key
  22. 22. Databáze - Optimistic Concurrency Controlint retries = 3;while (true) {    Transaction txn = datastore.beginTransaction();    try {        // do stuff        txn.commit();        break;    } catch (ConcurrentModificationException e) {        if (retries == 0) throw e;        ­­retries;    } finally {        if (txn.isActive()) txn.rollback();    }}
  23. 23. memeReactor - pitevna       try {           chain.doFilter(hr, response);       } finally {           try {               final PersistenceManager pm = PMF.get();               if (pm.currentTransaction().isActive()) {                   pm.currentTransaction().rollback();               }           } catch (Exception e) {           }           PMF.close();       }
  24. 24. memeReactor - pitevna Begin, Commit, Rollback, repeat, ...transaction(new TransactionCallback() { @Override public void runInTransaction(PersistenceManager pm) { // do stuff }});
  25. 25. AppEngine - tipyZapomeňte na SQL a normální formy (s rozmyslem) • denormalizace • kolekce a pole jako datový typZapomeňte na ORM (nebo alespoň relationships)Testujte “pod zátěží” a ne jen na localhost<%@ page contentType="text/html;charset=UTF­ 8" language="java" isELIgnored="false" %>
  26. 26. Q&A

×