App Engine
Kick Start
@tomucha
Multimedia atelier s. r. o.
Multimedia atelier s. r. o.
memeReactor
Cloud Computing



                                 scalabity
               virtualization

         SOA
                            distributed
                    SaaS



           YOU
                                YOUR
                                ADMIN
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




   “It's stupidity. It's worse than stupidity: it's a
   marketing hype campaign.”
                             Richard Stallman, GNU founder
Škálovatelnost (nutná, ...)

                           Peak
                         3 nodes




                                1 node


12:00 18:00   24:00   6:00   12:00   18:00 24:00   6:00   12:00   18:00   24:00   6:00
(… nikoliv postačující podmínka úspěchu)

                                               TechCrunch
                                                  efect




12: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
Škálování


Vertical scaling – posiluju počítač

Vertical partitioning – rozděluju služby

Horizontal 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
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ů

hosting

storage

scalability

pay for what you use

different OS, languages

framework / API
App Engine – A jako v praxi teda?




       WAR
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
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
App Engine – Framework

Sessions – musí se zapnout

Images – manipulace alá Picassa

Channel – push to client (+ JS knihovna)

Mail / URLFetch / XMPP - komunikace

MemCache – distributed cache

Task Queue / Cron – asynchronní úlohy

Users – login via Google Account
Demo


http://code.google.com/appengine/
http://code.google.com/appengine/docs/java/tools/eclipse.html
Databáze

BigTable → BIG MIND SHIFT

  • gigantická HashMapa HashMap
  • WWW index, Earth, Finance, ...
nemá datový model

preindexed queries, joins, 2x “<”

přístup

  • nativní API App Engine
  • Java Data Objects – JDO
  • Java Persistence Api – JPA
Databáze – Primary Keys


Key
                    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");
Databáze – Transakce
                           Entity Group




    Faktura




                 Řádek 1          Produkt 1




                 Řádek 2          Produkt 2
Databáze – JDO relationships


Owned One-to-One Relationships (záznam + detaily)
  • jo – může přinést výhody
Owned One-to-Many Relationships (faktura + řádky)
  • jo, vytváří EntityGroup
Unowned Relationships (člověk a oblíbené jídlo, n:m)
  • ne-e, ručně, přes Key
Databáze - Optimistic Concurrency Control

int 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();
    }
}
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();
       }
memeReactor - pitevna


              Begin, Commit, Rollback, repeat, ...




transaction(new TransactionCallback() {
  @Override
  public void runInTransaction(PersistenceManager pm) {
      // do stuff
  }
});
AppEngine - tipy


Zapomeňte na SQL a normální formy (s rozmyslem)
  • denormalizace
  • kolekce a pole jako datový typ
Zapomeň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" %>
Q&A

More Related Content

PDF
Jump Start into Apache® Spark™ and Databricks
PPT
Engine starting & starters
PPTX
Chapter 1 engine components and classification
PDF
Prezentace Bakalářské práce - Obhajoba 2012
PPT
2009 JEE Overview
PDF
Výběr vhodných technologii pro startup v prostředí cloudu
PDF
node.js: zápisky z fronty (Battle guide to node.js)
PDF
Spring introduction
Jump Start into Apache® Spark™ and Databricks
Engine starting & starters
Chapter 1 engine components and classification
Prezentace Bakalářské práce - Obhajoba 2012
2009 JEE Overview
Výběr vhodných technologii pro startup v prostředí cloudu
node.js: zápisky z fronty (Battle guide to node.js)
Spring introduction

Similar to App Engine Kick Start (20)

PDF
Spring framework - J2EE S Lidskou Tvari
PDF
Google App Engine
PDF
Webove Aplikace Pro Cloud Computing
PPTX
Poskytování aplikací z cloudu
PPTX
Poskytování aplikací z cloudu
PPT
Zkušenosti s využitím Cloud Computingu ve výuce
PPTX
GTS platforma pro vyvojáře webexpo 2012
PDF
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
PPTX
2019 03-20 snidane-serie-kuchyne-full
PDF
Elias Present Edhouse Profile Cs
PDF
App Design Architecture
PPTX
SMACT and Robotic Organizations
PDF
Chytré domy v chytrých městech
PPTX
Implementace cloudových řešení hris
PPTX
TNPW2-2013-08
PDF
20110511 Vývoj software - produktivně, efektivně, kvalitně
PDF
API Obludárium (API 2018, Praha)
PPTX
Poskytování aplikací z cloudu
PPT
On-line nástroje pro plánování, projektový management a time management + sof...
PDF
Rockaway AWS Hackaton – Kick-off Meeting Brno
Spring framework - J2EE S Lidskou Tvari
Google App Engine
Webove Aplikace Pro Cloud Computing
Poskytování aplikací z cloudu
Poskytování aplikací z cloudu
Zkušenosti s využitím Cloud Computingu ve výuce
GTS platforma pro vyvojáře webexpo 2012
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
2019 03-20 snidane-serie-kuchyne-full
Elias Present Edhouse Profile Cs
App Design Architecture
SMACT and Robotic Organizations
Chytré domy v chytrých městech
Implementace cloudových řešení hris
TNPW2-2013-08
20110511 Vývoj software - produktivně, efektivně, kvalitně
API Obludárium (API 2018, Praha)
Poskytování aplikací z cloudu
On-line nástroje pro plánování, projektový management a time management + sof...
Rockaway AWS Hackaton – Kick-off Meeting Brno
Ad

App Engine Kick Start