SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à App Engine Kick Start

Migrace na windows azure
Migrace na windows azureMigrace na windows azure
Migrace na windows azure
KenticoDominikP
 
Web Analytics pro ČVUT
Web Analytics pro ČVUTWeb Analytics pro ČVUT
Web Analytics pro ČVUT
Lukáš Čech
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
Jiří Mareš
 

Similaire à App Engine Kick Start (20)

Vývojářské Nástroje a Techniky
Vývojářské Nástroje a TechnikyVývojářské Nástroje a Techniky
Vývojářské Nástroje a Techniky
 
Migrace na windows azure
Migrace na windows azureMigrace na windows azure
Migrace na windows azure
 
TNPW2-2016-06
TNPW2-2016-06TNPW2-2016-06
TNPW2-2016-06
 
TNPW2-2014-06
TNPW2-2014-06TNPW2-2014-06
TNPW2-2014-06
 
Microsoft Azure – Směr, jak změnit pohled na IT
Microsoft Azure – Směr, jak změnit pohled na ITMicrosoft Azure – Směr, jak změnit pohled na IT
Microsoft Azure – Směr, jak změnit pohled na IT
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
TNPW2-2011-10
TNPW2-2011-10TNPW2-2011-10
TNPW2-2011-10
 
Webove Aplikace Pro Cloud Computing
Webove Aplikace Pro Cloud ComputingWebove Aplikace Pro Cloud Computing
Webove Aplikace Pro Cloud Computing
 
ITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
ITSM - Jira Service Desk a spřátelené aplikace z rodiny AtlassianITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
ITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
 
Migrace do Atlassian cloudu z Jira Server Data Center a Confluence
Migrace do Atlassian cloudu z Jira Server Data Center a ConfluenceMigrace do Atlassian cloudu z Jira Server Data Center a Confluence
Migrace do Atlassian cloudu z Jira Server Data Center a Confluence
 
Confluence cloud pozitiva nedostatky
Confluence cloud pozitiva nedostatkyConfluence cloud pozitiva nedostatky
Confluence cloud pozitiva nedostatky
 
Web Analytics pro ČVUT
Web Analytics pro ČVUTWeb Analytics pro ČVUT
Web Analytics pro ČVUT
 
TNPW2-2011-06
TNPW2-2011-06TNPW2-2011-06
TNPW2-2011-06
 
TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
IaaS
IaaSIaaS
IaaS
 
Rockaway AWS Hackaton – Kick-off Meeting
Rockaway AWS Hackaton – Kick-off MeetingRockaway AWS Hackaton – Kick-off Meeting
Rockaway AWS Hackaton – Kick-off Meeting
 
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změnySpusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
 
Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2Co přináší Oracle Database 12c Release 2
Co přináší Oracle Database 12c Release 2
 
Amazon Web Services v praxi - Bezpecnost v cloudu
Amazon Web Services v praxi - Bezpecnost v clouduAmazon Web Services v praxi - Bezpecnost v cloudu
Amazon Web Services v praxi - Bezpecnost v cloudu
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 

App Engine Kick Start