1. MongoDB on Linux-VM How-to Guide
Windows Azure
Microsoft Expert Student Partner jan.hentschel@studentpartners.de
Jan Hentschel Windows Azure Insider @Horizon_Net
2. Aufbau dieses How-tos
• Einführung und Möglichkeiten
• Einrichten von MongoDB
• Entwicklung der Beispielanwendung
• Zusammenfassung und FAQ
• Videos unter
• http://bit.ly/PDCiYb
• http://janatdevelopment.com/
3. Agenda
• Infrastructure as a Service in Windows Azure
• Was ist NoSQL?
• Einführung in MongoDB
• MongoDB in Windows Azure
• Einführung in Node.js
• FAQ
4. Infrastructure as a Service in Windows Azure
Was ist Infrastructure as a Service?
„If deploying an application requires a developer‘s involvement,
it‘s not IaaS“
• Abstrahiert physische Hardware
• Kunde ist verantwortlich für das OS, Software und
Datenbanken
• Rechenkapazitäten wie Performance, Bandbreite und
Speicherzugriff sind standardisiert
7. Infrastructure as a Service in Windows Azure
Verfügbare VM-Größen
VM-Größe Anzahl RAM Bandbreit Anzahl
CPUs e Disks
Extra Shared 768 MB 5 (Mbps) 1
Small
Small 1 1.75 GB 100 2
(Mbps)
Medium 2 3.5 GB 200 4
(Mbps)
Large 4 7 GB 400 8
(Mbps)
Extra 8 14 GB 800 16
Large (Mbps)
Jede persistente Disk kann bis zu 1 TB betragen
8. Virtuelle Maschine vs. VM Role
VM Role Virtuelle Maschine
Speicher Nicht-persistenter Speicher Persistenter Speicher
Einfaches Hinzufügen von weiterem
Speicher
Deployment Erstellen einer VHD on-premise mit Erstellen der VHD direkt in der
Upload in den Storage Cloud oder on-premise über den
Upload
Networking Internal und Input Endpoints Internal Endpoints sind generell
konfiguriert durch das Service offen.
Model ACS durch die Firewall im Gast OS.
Input Endpoints kontrolliert durch
das Portal, Service Model oder
API/Skript
Haupteinsatzgebiet Installation von Applikationen mit Applikationen, die persistenten
langen oder komplexen Speicher in Windows Azure
Installationen benötigen
9. Was ist NoSQL?
Einführung
• Herkömmliche Datenbanken basieren auf dem ACID-Prinzip
• Atomarität
• Konsistenz
• Isoliertheit
• Dauerhaftigkeit
• NoSQL-Datenbanken bauen in der Regel auf BASE-Prinzip
auf
• Grundsätzlich verfügbar
• „Sanfter“ Zustand
• Eventuell konsistent
• Verschiedene NoSQL-Datenbankentypen
• Typische Vertreter: Key-Value- und Dokumentorientierte Systeme
10. Einführung in MongoDB
• Dokumentenbasierte NoSQL-Datenbank von 10gen
• Entitäten werden als Dokumente persistiert
• Schemaloser Aufbau
• Daten werden im BSON-Format gespeichert
• JavaScript ist Hauptzugriffssprache
• Konnektoren für andere Programmiersprachen verfügbar
11. MongoDB in Windows Azure
• MongoDB kann unterschiedlich in Windows Azure genutzt
werden
• In einer Worker Role
• In einer Windows Azure VM
• Kann auf verschiedenen Windows Azure VMs installiert
werden
• U.a. in Windows Server- oder Linux-VM
12. Einführung in Node.js
• JavaScript auf dem Server
• Ereignisgesteuerte Architektur
• Asynchrones Ausführungsmodell
• Minimaler Overhead bei maximaler Skalierbarkeit
15. Web Ressourcen
Unter folgenden Einstiegspunkten finden sich alle Ressourcen, die für einen Start in Windows Azure wichtig sind
• Windows Azure Homepage
http://www.azure.com
• Kostenloser Demo-Account
http://www.windowsazure.com/en-us/pricing/free-trial/?WT.mc_id=A2DCCE88E
• Windows Azure Development Center
http://www.windowsazure.com/en-us/develop/overview/
• Windows Azure SDKs
http://www.windowsazure.com/en-us/develop/downloads/
• Windows Azure Training Kit
http://www.windowsazure.com/en-us/develop/net/other-resources/training-kit/
• Kundenreferenzen
http://www.microsoft.com/de-de/business/kundenreferenzen/default.aspx?product=53
• Video-Serie zu Windows Azure (10-Minuten-Videos):
http://www.youtube.com/watch?v=kLfaa_19yB4&list=PLC71216BDE26EBE8C
Keine festgelegte SchemataVersuchen Joins zu vermeidenSkalieren horizontalGrundsätzlich verfügbar: Das System ist grundsätzlich verfügbar, aber nicht unbedingt alle Daten in der Datenbank„Sanfter“ Zustand: Daten können „auslaufen“Eventuell konsistent: Nach einer gewissen Zeit sind alle Datenbankknoten konsistent, aber nicht zu jedem Zeitpunkt
Erste Veröffentlichung 2009Schemaloser Aufbau: Jedes Dokument in einer Collection kann unterschiedliche Schemas habenBSON: Binary JSON
Ereignisgesteuerte Architektur: Verhindert das I/O-Operationen blockiert werden