• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • 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, ...)
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
4,851
On Slideshare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
10
Comments
1
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. App EngineKick Start@tomucha
  • 2. Multimedia atelier s. r. o.
  • 3. Multimedia atelier s. r. o.
  • 4. memeReactor
  • 5. Cloud Computing scalabity virtualization SOA distributed SaaS YOU YOUR ADMIN
  • 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. Š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. (… 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. Š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. Možnosti Amazon Elastic Compute Cloud (Amazon EC2) Amazon Simple Storage Service (Amazon S3) Windows Azure Rackspace.com ...
  • 11. App Engine API / Framework Hosting IDE plugin / SDK
  • 12. App Engine vs. Amazon AWS App Engine mrak strojůhostingstoragescalabilitypay for what you usedifferent OS, languagesframework / API
  • 13. App Engine – A jako v praxi teda? WAR
  • 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. 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. 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. Demohttp://code.google.com/appengine/http://code.google.com/appengine/docs/java/tools/eclipse.html
  • 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. 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. Databáze – Transakce Entity Group Faktura Řádek 1 Produkt 1 Řádek 2 Produkt 2
  • 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. 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. 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. memeReactor - pitevna Begin, Commit, Rollback, repeat, ...transaction(new TransactionCallback() { @Override public void runInTransaction(PersistenceManager pm) { // do stuff }});
  • 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. Q&A