simpledb - chancen einer cloud datenbank

55
Amazon SimpleDB Chancen einer Cloud-Datenbank Louis Brauer ONE-Konferenz, 10. Mai 2012 1

Upload: one-schweiz

Post on 22-May-2015

627 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: SimpleDB - Chancen einer Cloud Datenbank

Amazon SimpleDBC h a n c e n e i n e r C l o u d - D a t e n b a n k

L o u i s B r a u e rONE-Konferenz, 10. Mai 2012

1

Page 2: SimpleDB - Chancen einer Cloud Datenbank

Agenda

1. Datenbank-Umfeld

2. Was ist Amazon SimpleDB?

3. Features

4. Deep Dive

5. Einschränkungen und Grenzen

6. Use Cases

7. Kosten

8. Getting started

2

Page 3: SimpleDB - Chancen einer Cloud Datenbank

Amazon SimpleDB‣ Einfach

‣ Skalierbar

‣ Günstig

‣ Migrationspfad für SQL-Fans

„Simplicity is the ultimate sophistication.“ (Leonardo da Vinci)

3

Page 4: SimpleDB - Chancen einer Cloud Datenbank

SimpleDB im Kontext

4

Page 5: SimpleDB - Chancen einer Cloud Datenbank

MySQLPostgreSQL

SQLDBs

NoSQLDBs

SQL ServerOracle

MongoDBCouchDB

CassandraAWS SimpleDB

Google BigTable

5

Page 6: SimpleDB - Chancen einer Cloud Datenbank

MySQLPostgreSQLSQLite

SQL ServerOracle

CouchDBMongoDB

AWS DynamoDBCassandra

AWS SimpleDBGoogle BigTable

Graph

Neo4j

Relationale DB Object DBKey/Value

Store

6

Page 7: SimpleDB - Chancen einer Cloud Datenbank

Local/Hosted

DB

CloudHosted

DBCloud

DB

‣ Eigene Infrastruktur

‣ Datenhoheit

‣ Volle Kontrolle

‣ Hohe Investitionen

‣ Hohe Betriebskosten

‣ Schlecht skalierbar

‣ Wartungsaufwändig

‣ VirtualisierteInfrastruktur

‣ Datenhoheit

‣ Niedrige Startup-Kosten

‣ Höhere Betriebskosten

‣ Schneller Skalierbar

‣ Weniger Wartung

‣ Keine Infrastruktur

‣ Datenhoheit (?)SLA!

‣ Keine Startup-Kosten

‣ Rein Nutzungsbasierte Kosten

‣ Automatische Skalierung

‣ Keine Wartung7

Page 8: SimpleDB - Chancen einer Cloud Datenbank

Was ist Amazon SimpleDB?

8

Page 9: SimpleDB - Chancen einer Cloud Datenbank

Relationale DB Object DBSimpleDB

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 API

OO-Entwicklung via ORM Nutzung via HTTP o. SDK Nutzung via SDK

Umfangreiches Ökosystem Wenig Tools Wenig Tools

9

Page 10: SimpleDB - Chancen einer Cloud Datenbank

Klassisches relationales Datenmodell

10

Page 11: SimpleDB - Chancen einer Cloud Datenbank

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

Page 12: SimpleDB - Chancen einer Cloud Datenbank

12

Page 13: SimpleDB - Chancen einer Cloud Datenbank

13

Page 14: SimpleDB - Chancen einer Cloud Datenbank

14

Page 15: SimpleDB - Chancen einer Cloud Datenbank

Features

15

Page 16: SimpleDB - Chancen einer Cloud Datenbank

IT-Systemlandschaft Internet-Applikation

FirewallLoad Balancer

DB-Master

DB-Replika DB-Replika DB-Replika

App-Server App-Server App-Server

Web-Server Web-Server Web-Server

16

Page 17: SimpleDB - Chancen einer Cloud Datenbank

17

Page 18: SimpleDB - Chancen einer Cloud Datenbank

18

Page 19: SimpleDB - Chancen einer Cloud Datenbank

FirewallLoad Balancer

DB-Master

DB-Replika DB-Replika DB-Replika

App-Server App-Server App-Server

Web-Server Web-Server Web-Server

19

Page 20: SimpleDB - Chancen einer Cloud Datenbank

FirewallLoad Balancer

DB-Master

DB-Replika DB-Replika DB-Replika

App-Server App-Server App-Server

Web-Server Web-Server Web-Server

SimpleDB

20

Page 21: SimpleDB - Chancen einer Cloud Datenbank

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

Page 22: SimpleDB - Chancen einer Cloud Datenbank

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

Page 23: SimpleDB - Chancen einer Cloud Datenbank

Entwicklung

‣ Mehrere „Endpunkte“ verfügbar• Dublin• USA Ost- und 2xWestküste• Tokio• Sao Paulo

23

Page 24: SimpleDB - Chancen einer Cloud Datenbank

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

Page 25: SimpleDB - Chancen einer Cloud Datenbank

Deep Dive

25

Page 26: SimpleDB - Chancen einer Cloud Datenbank

Simple API - 8 Methoden

‣ Domains• ListDomains• CreateDomain• DeleteDomain• DomainMetadata

‣ Items• GetAttributes• Put / BatchPut• Delete

‣ Abfragen• Select

26

Page 27: SimpleDB - Chancen einer Cloud Datenbank

SQL-Syntax

‣ select output_listfrom domainwhere expressionorder by sort_instructionlimit 100

‣ sdb.select(„select * from bestellungen“);

27

Page 28: SimpleDB - Chancen einer Cloud Datenbank

SQL-Syntax

‣ select count(*) from domain‣ select * from domain‣ select itemName() from domain‣ select name,city,article from domain

28

Page 29: SimpleDB - Chancen einer Cloud Datenbank

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

Page 30: SimpleDB - Chancen einer Cloud Datenbank

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

Page 31: SimpleDB - Chancen einer Cloud Datenbank

Grenzen

31

Page 32: SimpleDB - Chancen einer Cloud Datenbank

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

Page 33: SimpleDB - Chancen einer Cloud Datenbank

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

Page 34: SimpleDB - Chancen einer Cloud Datenbank

Use CasesA n w e n d u n g s b e i s p i e l e

34

Page 35: SimpleDB - Chancen einer Cloud Datenbank

Case Study

‣ Share-Button>1 Mio. Sites

‣ Tracking-Daten

35

Page 36: SimpleDB - Chancen einer Cloud Datenbank

Case Study

‣ Netflix

‣ Oracle abgelöst

36

Page 37: SimpleDB - Chancen einer Cloud Datenbank

37

Page 38: SimpleDB - Chancen einer Cloud Datenbank

Case Study

‣ Flipboard

38

Page 39: SimpleDB - Chancen einer Cloud Datenbank

Case Study

‣ TweetDeck

‣ User-Accounts +Synced Settings

39

Page 40: SimpleDB - Chancen einer Cloud Datenbank

Case Study

‣ PIXELTEX

‣ Zeiterfassung

40

Page 41: SimpleDB - Chancen einer Cloud Datenbank

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

Page 42: SimpleDB - Chancen einer Cloud Datenbank

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

Page 43: SimpleDB - Chancen einer Cloud Datenbank

Kosten

43

Page 44: SimpleDB - Chancen einer Cloud Datenbank

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

Page 45: SimpleDB - Chancen einer Cloud Datenbank

Getting started

45

Page 46: SimpleDB - Chancen einer Cloud Datenbank

SDKs

‣ Amazon SDKs• Java• PHP• Ruby (on Rails)• .NET• iOS• Android

‣ Community SDKs• C, C++, C#• ColdFusion• Erlang• Excel• Groovy• Java Persistence API (JPA)• JavaScript• Linq• Perl• Python (boto)• Scala• Visual Studio 2008

46

Page 47: SimpleDB - Chancen einer Cloud Datenbank

Tools

‣ SimpleDBa (Mac)• Free

47

Page 48: SimpleDB - Chancen einer Cloud Datenbank

Tools

‣ SDB Explorer• Win, Mac, OS X• Linux• $70

48

Page 49: SimpleDB - Chancen einer Cloud Datenbank

Tools

‣ SDB ToolFirefox Plug-in• Free

49

Page 50: SimpleDB - Chancen einer Cloud Datenbank

Tools

‣ Migration von MySQL auf SimpleDB• http://learnaws.s3.amazonaws.com/Migrating_MySQL_to_SimpleDB.pdf

50

Page 51: SimpleDB - Chancen einer Cloud Datenbank

Getting started

‣ AWS Account eröffnen• http://aws.amazon.com

‣ SDKs und Tools herunterladen

‣ Loslegen :-)

51

Page 52: SimpleDB - Chancen einer Cloud Datenbank

Getting started‣ „With SimpleDB you get a rock-solid, globally available database

which can be scaled infinitely. But I don't 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

Page 53: SimpleDB - Chancen einer Cloud Datenbank

About us

53

Page 54: SimpleDB - Chancen einer Cloud Datenbank

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

Page 55: SimpleDB - Chancen einer Cloud Datenbank

‣ Louis Brauer• louis @ pixeltex.com• twitter.com/louisbrauer• Tel 044 515 1099

pixeltex.com

Wäre mit SimpleDB nicht passiert! :)

55