SimpleDB - Chancen einer Cloud Datenbank

805 views
729 views

Published on

Ein Vortrag von Louis Brauer @ ONE Konferenz Zürich 2012

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
805
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SimpleDB - Chancen einer Cloud Datenbank

  1. 1. Amazon SimpleDBChancen einer Cloud-DatenbankLouis BrauerONE-Konferenz, 10. Mai 2012 1
  2. 2. Agenda1. Datenbank-Umfeld2. Was ist Amazon SimpleDB?3. Features4. Deep Dive5. Einschränkungen und Grenzen6. Use Cases7. Kosten8. Getting started 2
  3. 3. Amazon SimpleDB‣ Einfach‣ Skalierbar‣ Günstig‣ Migrationspfad für SQL-Fans„Simplicity is the ultimate sophistication.“(Leonardo da Vinci) 3
  4. 4. SimpleDB im Kontext 4
  5. 5. SQL NoSQL DBs DBs MySQL MongoDB AWS SimpleDBPostgreSQL CouchDB Google BigTable CassandraSQL Server Oracle 5
  6. 6. Relationale Key/Value Object DB DB StoreMySQL AWS SimpleDB CouchDBPostgreSQL Google BigTable MongoDBSQLite AWS DynamoDBSQL Server CassandraOracle Neo4j Graph 6
  7. 7. ‣ Eigene Infrastruktur ‣ Virtualisierte ‣ Keine Infrastruktur Infrastruktur‣ Datenhoheit ‣ Datenhoheit (?) ‣ Datenhoheit SLA!‣ Volle Kontrolle Local/ Cloud Cloud Hosted Hosted DB DB DB‣ Hohe Investitionen ‣ Niedrige Startup-Kosten ‣ Keine Startup-Kosten‣ Hohe Betriebskosten ‣ Höhere Betriebskosten ‣ Rein Nutzungsbasierte Kosten‣ Schlecht skalierbar ‣ Schneller Skalierbar ‣ Automatische Skalierung‣ Wartungsaufwändig ‣ Weniger Wartung ‣ Keine Wartung 7
  8. 8. Was ist Amazon SimpleDB? 8
  9. 9. Relationale SimpleDB Object DB DB Einfache Datentypen Nur Strings Komplexe Datentypen Fixes Schema Schema-frei Schlüssel-Schema JOINs Keine Relationen Keine Relationen Aggregationen Keine Aggregationen Aggregation via Map/Reduce Extrem ausgereift Sehr solide und simpel Grössere Komplexität SQL-Syntax API & SQL-Like-Syntax Nur via APIOO-Entwicklung via ORM Nutzung via HTTP o. SDK Nutzung via SDKUmfangreiches Ökosystem Wenig Tools Wenig Tools 9
  10. 10. Klassisches relationales Datenmodell 10
  11. 11. Konzept‣ Domains • Daten-Container ähnlich einer Tabelle aber ohne fixes Schema‣ Items • Ein Datensatz mit ein- oder mehreren Key/Value-Paaren‣ Attributes • „Spalten“‣ Values • „Zellen“ 11
  12. 12. 12
  13. 13. 13
  14. 14. 14
  15. 15. Features 15
  16. 16. IT-Systemlandschaft Internet-Applikation Firewall Load Balancer Web-Server Web-Server Web-Server App-Server App-Server App-Server DB-Replika DB-Replika DB-Replika DB-Master 16
  17. 17. 17
  18. 18. 18
  19. 19. Firewall Load BalancerWeb-Server Web-Server Web-ServerApp-Server App-Server App-ServerDB-Replika DB-Replika DB-Replika DB-Master 19
  20. 20. SimpleDB Firewall Load BalancerWeb-Server Web-Server Web-ServerApp-Server App-Server App-ServerDB-Replika DB-Replika DB-Replika DB-Master 20
  21. 21. Betrieb‣ Keine eigene Infrastuktur • Keine Hardware, keine Software • Keine Installation‣ Hochverfügbar • Geo-redundante Replikation • Automatisches Failover • Unlimitierte* Ressourcen‣ Administrationsfrei • Keine Konfiguration • Automatische Leistungsoptimierung‣ Sicher • Verschlüsselte Kommunikation via HTTPS • Ausgereiftes Rechtssystem 21
  22. 22. Entwicklung‣ Speichern & Abfragen via HTTPS-Requests • Selbst via HTTPS (REST, SOAP) ansprechen • SDKs für alle gängigen Entwicklungsumgebungen‣ Flexibel • Kein fixes Schema • Konsistente oder Nicht-konsistente Abfragen (schneller)‣ Full Auto-Index • Jedes Attribut wird vollständig indexiert 22
  23. 23. Entwicklung‣ Mehrere „Endpunkte“ verfügbar • Dublin • USA Ost- und 2xWestküste • Tokio • Sao Paulo 23
  24. 24. Performance‣ Ausführungsdauer der Abfrage • Üblicherweise weit unter 20ms‣ Netzwerk-Latenz • „Durchschnittliche“ WLAN-Verbindung: 60-80ms • Kann durch EC2 Server auf bis zu 2ms reduziert werden • Sonst Daten Applikations-seitig cachen, wenn Performance-kritisch ist‣ Mehr Performance durch Parallelisierung‣ Fazit • Mindest-Latenz etwas höher, dafür gleichbleibend auch bei ultimativen Lastspitzen 24
  25. 25. Deep Dive 25
  26. 26. Simple API - 8 Methoden‣ Domains • ListDomains • CreateDomain • DeleteDomain • DomainMetadata‣ Items • GetAttributes • Put / BatchPut • Delete‣ Abfragen • Select 26
  27. 27. SQL-Syntax‣ select output_list from domain where expression order by sort_instruction limit 100‣ sdb.select(„select * from bestellungen“); 27
  28. 28. SQL-Syntax‣ select count(*) from domain‣ select * from domain‣ select itemName() from domain‣ select name,city,article from domain 28
  29. 29. select * from domain‣ where article [=,!=,<,<=,=>,>] `a-1000`‣ where article [not] like `a-%`‣ where article between ´a-1000´ and ´a-9999´‣ where article in (´a-1000´, ´b-2000´)‣ where article is [not] null‣ where every(article) like ´a-%´ 29
  30. 30. Numerische Datentypen‣ Datum/Zeit (z.B. 10.5.2012, 10.00 Uhr) • 2012-05-10T10:00:00.00+01:00‣ Zahlen • 10 => 100010 • 2 => 100002 • -99 => 000099‣ Hilfsfunktionen • encodeRealNumberRange(value, maxDigits, offset); • encodeDate(Date); 30
  31. 31. Grenzen 31
  32. 32. Amazon SimpleDB - Limits‣ Domains • 250 Domains per Default • 10 GB p. Domain • 1 Milliarde Key/Value-Paare p. Domain‣ Items • 256 Key/Value-Paare, sog. „Attributes“‣ Attributes • 1024 Bytes / Key • 1024 Bytes / Value 32
  33. 33. Amazon SimpleDB - Limits‣ Abfragen • 2‘500 Items / Query • 20 Unique Attributes / Query • 1MB / Query • Max. 5sec / Query • Keine Aggregationsfunktionen (MAX, MIN, SUM, AVG usw.)‣ Speichern • Nur Strings / Arrays of Strings • Sonstige Datentypen via Hilfsfunktionen (Numbers, Dates) 33
  34. 34. Use CasesAnwendungsbeispiele 34
  35. 35. Case Study‣ Share-Button>1 Mio. Sites‣ Tracking-Daten 35
  36. 36. Case Study‣ Netflix‣ Oracle abgelöst 36
  37. 37. 37
  38. 38. Case Study‣ Flipboard 38
  39. 39. Case Study‣ TweetDeck‣ User-Accounts + Synced Settings 39
  40. 40. Case Study‣ PIXELTEX‣ Zeiterfassung 40
  41. 41. Geeignete Anwendungsfälle‣ Mobile Apps & Online-Games • Spielstände • Benutzereinstellungen • User-generated Content (Ratings, Comments) • Sessions‣ Metadaten-Index • Geolocations • Tags • Benutzerbewertungen- und Kommentare • Objektinformationen (Bilder, Videos, Dokumente usw.) 41
  42. 42. Geeignete Anwendungsfälle‣ Protokollierung • Audit-Logs • Nutzungsstatistiken (z.B. Suche, Clickstreams, Newsletter-Tracking) • Crash-Reports • Architektur-externer Datenspeicher für Desaster-Fälle • Workflows-Stati • Web-Formulare‣ CMS-Cache • Inhalte vorberechnet cachen • Entlastung + einfache Erweiterung von „schweren“ CMS-Systemen • Auto-Suggests, Instant-Results 42
  43. 43. Kosten 43
  44. 44. Amazon SimpleDB‣ Investitionen u. Betriebskosten • Keine‣ Nutzung • $0,154 / machine hour • Erste 25h / Monat frei‣ Speicher • 1 GB kostenlos • $0,275 pro GB/Monat‣ Datenübertragung • 1 GB kostenlos • $0,12 / GB (bis zu 10 TB, danach günstiger) • Eingehend immer gratis • Amazon EC2-Traffic immer gratis 44
  45. 45. Getting started 45
  46. 46. SDKs‣ Amazon SDKs ‣ Community SDKs • Java • C, C++, C# • PHP • ColdFusion • Ruby (on Rails) • Erlang • .NET • Excel • iOS • Groovy • Android • Java Persistence API (JPA) • JavaScript • Linq • Perl • Python (boto) • Scala • Visual Studio 2008 46
  47. 47. Tools‣ SimpleDBa (Mac) • Free 47
  48. 48. Tools‣ SDB Explorer • Win, Mac, OS X • Linux • $70 48
  49. 49. Tools‣ SDB Tool Firefox Plug-in • Free 49
  50. 50. Tools‣ Migration von MySQL auf SimpleDB • http://learnaws.s3.amazonaws.com/Migrating_MySQL_to_SimpleDB.pdf 50
  51. 51. Getting started‣ AWS Account eröffnen • http://aws.amazon.com‣ SDKs und Tools herunterladen‣ Loslegen :-) 51
  52. 52. Getting started‣ „With SimpleDB you get a rock-solid, globally available database which can be scaled infinitely. But I dont say that it is the best NoSQL-database, but maybe a good start for people coming from the SQL-world and want to jumpstart into NoSQL.“ 52
  53. 53. About us 53
  54. 54. pixeltex.com‣ PIXELTEX • Enterprise Web-Engineering seit 1999 • 14 Mitarbeiter, davon 11 in Entwicklung & Design • Zürich & Berlin‣ Schwerpunkte • ColdFusion, Java, Node.js • JavaScript, HTML5 • AWS Cloud Computing 54
  55. 55. pixeltex.com ‣ Louis Brauer • louis @ pixeltex.com • twitter.com/louisbrauer • Tel 044 515 1099Wäre mit SimpleDB nicht passiert! :) 55

×