SimpleDB - Chancen einer Cloud Datenbank

  • 555 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
555
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

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. Amazon SimpleDBChancen einer Cloud-DatenbankLouis BrauerONE-Konferenz, 10. Mai 2012 1
  • 2. Agenda1. Datenbank-Umfeld2. Was ist Amazon SimpleDB?3. Features4. Deep Dive5. Einschränkungen und Grenzen6. Use Cases7. Kosten8. Getting started 2
  • 3. Amazon SimpleDB‣ Einfach‣ Skalierbar‣ Günstig‣ Migrationspfad für SQL-Fans„Simplicity is the ultimate sophistication.“(Leonardo da Vinci) 3
  • 4. SimpleDB im Kontext 4
  • 5. SQL NoSQL DBs DBs MySQL MongoDB AWS SimpleDBPostgreSQL CouchDB Google BigTable CassandraSQL Server Oracle 5
  • 6. Relationale Key/Value Object DB DB StoreMySQL AWS SimpleDB CouchDBPostgreSQL Google BigTable MongoDBSQLite AWS DynamoDBSQL Server CassandraOracle Neo4j Graph 6
  • 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. Was ist Amazon SimpleDB? 8
  • 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. Klassisches relationales Datenmodell 10
  • 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
  • 13. 13
  • 14. 14
  • 15. Features 15
  • 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
  • 18. 18
  • 19. Firewall Load BalancerWeb-Server Web-Server Web-ServerApp-Server App-Server App-ServerDB-Replika DB-Replika DB-Replika DB-Master 19
  • 20. SimpleDB Firewall Load BalancerWeb-Server Web-Server Web-ServerApp-Server App-Server App-ServerDB-Replika DB-Replika DB-Replika DB-Master 20
  • 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. 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. Entwicklung‣ Mehrere „Endpunkte“ verfügbar • Dublin • USA Ost- und 2xWestküste • Tokio • Sao Paulo 23
  • 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. Deep Dive 25
  • 26. Simple API - 8 Methoden‣ Domains • ListDomains • CreateDomain • DeleteDomain • DomainMetadata‣ Items • GetAttributes • Put / BatchPut • Delete‣ Abfragen • Select 26
  • 27. SQL-Syntax‣ select output_list from domain where expression order by sort_instruction limit 100‣ sdb.select(„select * from bestellungen“); 27
  • 28. SQL-Syntax‣ select count(*) from domain‣ select * from domain‣ select itemName() from domain‣ select name,city,article from domain 28
  • 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. 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. Grenzen 31
  • 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. 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. Use CasesAnwendungsbeispiele 34
  • 35. Case Study‣ Share-Button>1 Mio. Sites‣ Tracking-Daten 35
  • 36. Case Study‣ Netflix‣ Oracle abgelöst 36
  • 37. 37
  • 38. Case Study‣ Flipboard 38
  • 39. Case Study‣ TweetDeck‣ User-Accounts + Synced Settings 39
  • 40. Case Study‣ PIXELTEX‣ Zeiterfassung 40
  • 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. 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. Kosten 43
  • 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. Getting started 45
  • 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. Tools‣ SimpleDBa (Mac) • Free 47
  • 48. Tools‣ SDB Explorer • Win, Mac, OS X • Linux • $70 48
  • 49. Tools‣ SDB Tool Firefox Plug-in • Free 49
  • 50. Tools‣ Migration von MySQL auf SimpleDB • http://learnaws.s3.amazonaws.com/Migrating_MySQL_to_SimpleDB.pdf 50
  • 51. Getting started‣ AWS Account eröffnen • http://aws.amazon.com‣ SDKs und Tools herunterladen‣ Loslegen :-) 51
  • 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. About us 53
  • 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. pixeltex.com ‣ Louis Brauer • louis @ pixeltex.com • twitter.com/louisbrauer • Tel 044 515 1099Wäre mit SimpleDB nicht passiert! :) 55