• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Google App Engine. Zwei Jahre im Produktiveinsatz
 

Google App Engine. Zwei Jahre im Produktiveinsatz

on

  • 2,870 views

Java User Group Berlin: Zwei Jahre Produktiveinsatz mit Google App Engine. Ein Abriss über App Engine, Stärken und Schwächen, und Empfehlungen für wen sich App Engine lohnt.

Java User Group Berlin: Zwei Jahre Produktiveinsatz mit Google App Engine. Ein Abriss über App Engine, Stärken und Schwächen, und Empfehlungen für wen sich App Engine lohnt.

Statistics

Views

Total Views
2,870
Views on SlideShare
1,135
Embed Views
1,735

Actions

Likes
1
Downloads
12
Comments
0

6 Embeds 1,735

http://tech.small-improvements.com 1720
http://smallimprovementstech.wordpress.com 8
http://digg.com 4
http://www.365dailyjournal.com 1
http://webcache.googleusercontent.com 1
http://www.google.ca 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Google App Engine. Zwei Jahre im Produktiveinsatz Google App Engine. Zwei Jahre im Produktiveinsatz Presentation Transcript

    • 2 Jahre mit Google App Engine Erfahrungen und Probleme, Stärken und Schwächen. Ein Praxisbericht. Per Fragemann, Java User Group Berlin, Dezember 2012Mittwoch, 19. Dezember 12
    • Tagesordnung 1. Motivation 2. Technischer Überblick 3. Datenbank 4. Services 5. Betrieb & Lessons learned 6. Bewertung & DiskussionMittwoch, 19. Dezember 12
    • Über uns Software as a Service Erster Prototyp 2010, direkt auf GAE 5 MitarbeiterMittwoch, 19. Dezember 12
    • Unsere KundenMittwoch, 19. Dezember 12
    • ToolsMittwoch, 19. Dezember 12
    • 2: ÜBERBLICKMittwoch, 19. Dezember 12
    • GAE ist performant • Innerhalb eines SDKs programmieren, JAR hochladen, fertig • Automatische Skalierung: Manche haben 1 Server-Instanz, andere haben 2000 • Kein Admin notwendigMittwoch, 19. Dezember 12
    • GAE ist PAAS • Jetty, Datastore, Services & APIs • Sehr mächtige Admin Console • Kein direkter Zugriff auf Server oder VMs! PAAS != IAASMittwoch, 19. Dezember 12
    • Prinzipieller Aufbau Application Application Application Version A Version B Version C (default) Fi A1 Fi A2 ... Fi AnMittwoch, 19. Dezember 12
    • Instances: Frontends • Optimiert für Web Requests • 3 Leistungsstufen F1, F2, F4 • Automatisches Skalieren: • Keine Sticky Sessions • 30-Sekunden-Limit • Gemeinsamer Zugriff auf DB & ServicesMittwoch, 19. Dezember 12
    • Instances: Backends • Optimiert für längere Aufgaben • 4 Leistungsstufen B1 - B4 • Extern adressierbar • Skalieren nicht, man bucht sie nach BedarfMittwoch, 19. Dezember 12
    • Unser Setup Demo time!Mittwoch, 19. Dezember 12
    • 3: DATENBANKMittwoch, 19. Dezember 12
    • Datastore • NoSQL: • Perfekt für große Datenmengen • Sehr einfach änderbar • Bis vor kurzem einzige Persistenz- LösungMittwoch, 19. Dezember 12
    • It’s not SQL! • Keine Joins • Stark begrenzte Queries • kein OR, kein NOT, ineffizientes IN • keine functions wie count oder avg() • Transaktionen nur auf sog. Entity- GroupsMittwoch, 19. Dezember 12
    • Beispiel • Alle Nerd-Shirts von “Per”, sortiert nach FirmennameMittwoch, 19. Dezember 12
    • Beispiel • Alle Nerd-Shirts von “Per”, sortiert nach Firmenname Company Nerd-Shirt User ID ID ID name userID name country companyID coding skills userName companyNameMittwoch, 19. Dezember 12
    • Eventual Consistency • Objekt wird gespeichert. • Objekt wird aber erst nach einigen Sekunden lesbar • Problem: Denormalisierung vs Eventual ConsistencyMittwoch, 19. Dezember 12
    • Datastore (2) • Eigentlich ist Datastore für uns zu groß • Latenzzeit höher als bei typischer DB • Vorteil: Programmierung für Datastore sehr gut abschätzbar. • Keine Überraschungen wie Deadlocks, Performance Degradation etcMittwoch, 19. Dezember 12
    • Low Level API ARGH!Mittwoch, 19. Dezember 12
    • JDO/JPA ARGH!Mittwoch, 19. Dezember 12
    • Objectify Objectify ofy = ObjectifyService.begin(); Query<User> userQuery = ofy.query(User.class) .filter("boss", viewedUser) .filter("isActive",true); List<User> teamMembers = userQuery.list(); Easy! And has caching!Mittwoch, 19. Dezember 12
    • 4: SERVICESMittwoch, 19. Dezember 12
    • Push Queue • Web Hooks: URL verzögert aufrufen • Queues haben Durchsatz-Limits, Retry- Regeln • Man umgeht 30-Sekunden Limit • Last-Steuerung • Gut kombinierbar mit Cron JobsMittwoch, 19. Dezember 12
    • Pull Queue • Eigene Applikation muss sich um Abarbeitung kümmern • Feinere Steuerung möglich • Queue kann auch mit REST abgefragt werdenMittwoch, 19. Dezember 12
    • Memcache • Zugriff auf DB ist langsam • Je weniger Zugriffe pro Request desto besser • Alles wichtige immer in Memcache speichern • Memcache ist Instanz-übergreifendMittwoch, 19. Dezember 12
    • Data Caching 1 2 3 ... n Instance-cache & Request-cache Memcache Data StoreMittwoch, 19. Dezember 12
    • PageSpeed Service • Optimiert vollautomatisch das Frontend • JS minification & combination • Image optimization • CSS inlining • Regeln frei wählbar https://developers.google.com/speed/docs/mod_pagespeed/config_filtersMittwoch, 19. Dezember 12
    • MapReduce • Parallele Bearbeitung großer Datenmengen • Nicht auf GAE beschränkt • Aber GAE sehr gut geeignet • Terabytes von Daten, Hunderte von Servern? Kein Problem. http://www.youtube.com/watch?v=EIxelKcyCC0Mittwoch, 19. Dezember 12
    • Easy deployment • “ant update”Mittwoch, 19. Dezember 12
    • AppstatsMittwoch, 19. Dezember 12
    • 5. BETRIEBMittwoch, 19. Dezember 12
    • Unerklärliche Fehler • Es können auch jederzeit einfach so Fehler auftreten, z.B. “bei 5% aller Requests” • Man kann dies im Forum und im Issue Tracker melden. Und dann beten. • Meistens werden sie innerhalb einiger Stunden bis Tage gelöst.Mittwoch, 19. Dezember 12
    • Uptime • Komplettausfälle sind extrem selten. 2 Mal in den letzten zwei Jahren • 3 Stunden Ende Oktober • 20 Minuten Mitte NovemberMittwoch, 19. Dezember 12
    • Uptime • Komplettausfälle sind extrem selten. 2 Mal in den letzten zwei Jahren • 3 Stunden Ende Oktober • 20 Minuten Mitte NovemberMittwoch, 19. Dezember 12
    • Latenzzeit • Keine Garantien!Mittwoch, 19. Dezember 12
    • Latenzzeit • Keine Garantien!Mittwoch, 19. Dezember 12
    • Startup Time • Kein Request darf mehr als 30 Sekunden dauern • Oft genug drückt App Engine ein Auge zu • Aber nicht immer! • Manchmal ist 10s das Limit!Mittwoch, 19. Dezember 12
    • Startup Time (2) • Application Startup muss schnell gehen! • besser kein Spring benutzen.. • Abhängigkeiten gering halten • Classloading verschieben • Lazy Initialisation (“is loadingRequest?”) • .. und allgemeines Performance TuningMittwoch, 19. Dezember 12
    • Drum prüfe wer sich ewig bindet... • Nicht alle Libraries/Tools unterstützt • Teilweise vorher klar, teilweise aber auch nicht • z.B. starke VerschlüsselungMittwoch, 19. Dezember 12
    • Fortschritte in 2012 • HTTPS on custom domains • Cloud SQL • Starke Verschlüsselung (z.B. BouncyCastle) • Eigene Threads • Volltextsuche • Backup/Restore • Traffic Splitting • Page SpeedMittwoch, 19. Dezember 12
    • 6: BewertungMittwoch, 19. Dezember 12
    • Insgesamt sehr positiv • Sehr robuste Administration • Sehr hohe Verfügbarkeit • Gute Performance • SkalierbarkeitMittwoch, 19. Dezember 12
    • Kosten • Pro Lese & Schreibzugriff • Pro gespeichterten Daten • Pro CPU Time • In 2011 überraschend stark gestiegen • Google’s Kommunikation nicht ideal • Aber man spart immer noch deutlich PersonalkostenMittwoch, 19. Dezember 12
    • Perfekt für: Finger weg: • Startups in B2B • Risikoaverse Firmen • “Dev-Startups” • Sehr komplexe Applikationen • Prototypen • Sehr langfristige Projekte Geeignet für: Kritisch evaluieren • Startups in B2C (Kosten • Kernprodukt einer bedenken) bestehenden Firma • Nicht-kritische Projekte, • >99.9 Uptime auch in traditionelleren FirmenMittwoch, 19. Dezember 12
    • We’re hiring. 500€ Refer-a-friend Bonus!Mittwoch, 19. Dezember 12 Habe fertig!