Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
-
Upload
mongodb -
Category
Technology
-
view
189 -
download
0
Transcript of Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
MongoDB Europe 2016Old Billingsgate, London
15. Novembermongodb.com/europe
Mit dem Code benjaminlorenz20 sindIhre Tickets 20 % günstiger!
Back to Basics 2016: Webinar 6
Produktivsetzung einer AnwendungBenjamin Lorenz
Senior Solutions Architect, MongoDB Frankfurt@benjaminlorenz
V1.1
3
Rückblick
• Webinar 1: Einführung in NoSQL– Verschiedene Typen von NoSQL-Datenbanken, MongoDB ist eine
Dokumentdatenbank• Webinar 2: Ihre erste MongoDB-Anwendung
– Erstellen von Datenbanken und Collections, CRUD-Operationen, Indizes und explain()
• Webinar 3: Schema-Design– Dynamische Schemata, Einbettung von Dokumenten
• Webinar 4: Text- und Geoindizes• Webinar 5: Einführung in das Aggregation Framework
4
Produktivsetzung einer Anwendung
• Der Prozess, in dessen Rahmen neu entwickelte Software für Anwender zugänglich gemacht wird
• Die wichtigsten Aspekte aus der Datenbankperspektive:– Dauerhaftigkeit– Skalierbarkeit– Datensicherheit– Allgemeine Hinweise für die Produktion
5
Dauerhaftigkeit – Replica Sets
Node 1
Node 2 Node 3
6
Initialisierung eines Replica Sets
Node 1
Node 2 Node 3
Node 1(Primary)
Node 2(Secondary)
Node 3(Secondary)
Replikation Replikation
Heartbeat
7
Node 2(Secondary)
Node 3(Secondary)
Heartbeat
Wahl des Primary
Node 1(Primärknoten)
Replica Set – Ausfall des Primary
8
Node 1(Primärknoten)
Node 2(Primary)
Node 3(Secondary)
Heartbeat
Replikation
Replica Set – Neuer Primary
9
Node 2(Primary)
Node 3(Secondary)
Heartbeat
Replikation
Node 1Wiederherstellung
Replikation
Replica Set – Wiederherstellung
10
Node 2(Primary)
Node 3(Secondary)
Heartbeat
Replikation
Node 1(Secondary)
Replikation
Replica Set – Mit neuem Primary wieder vollständig
Starke Konsistenz vs. geringe Latenz
12
Node 1(Primary)
Node 2(Secondary)
Node 3(Secondary)
Anwendung
Treiber
Lesen & schreiben
Starke Konsistenz
13
Node 1(Primary)
Node 2(Secondary)
Node 3(Secondary)
Anwendung
Treiber
Geringe Latenz
Lesen Lesen
Lesen & schreiben
14
Write Concern
• Hiermit lässt sich festlegen, welche Art von Rückmeldung auf einen Schreibvor-gang erfolgt:
• w:0 : Der Treiber schickt das Paket ab und wartet anschließend nicht auf Rückmeldung vom Server.
• w:1 : Alle vom Server generierten Fehlermeldungen werden an die Anwendung zurückgeschickt.
• w:majority : Es wird rückgemeldet, ob der Schreibvorgang auf mehr als der Hälfte der Knoten des Replica Sets erfolgt ist.
• Journaling • j:false : Schreiboperationen müssen nicht im Journal erfasst werden.• j:true : Schreiboperationen müssen im Journal erfasst werden.
Schreibmodus: w:0
Schreibmodus: w:1
Schreibmodus: w:j
Schreibmodus: w:majority
Sharding
20
Engpass: Ein-/Ausgabe
Engpass: Arbeitsspeicher
Sharded Cluster
mongos mongos mongos
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Anwendung
Treiber
Config Server
23
Einrichten von Replica Sets und Sharded Clusters
• Einfachste Option: Server und Management von MongoDB– MongoDB Atlas
• Etwas komplizierter: Ihre Server, cloudbasiertes Management– MongoDB Cloud Manager
• Noch etwas komplizierter: Ihre Server, Management in Ihrem Unternehmen– MongoDB Ops Manager
• Komplizierteste Option– Sie erledigen alles selbst, mit Skripts und manuell eingegebenen
Befehlen. (Anleitungen in der Dokumentation)
24
Datensicherheit – Mehrschichtiger Schutz
• Nutzen Sie ausschließlich durch SSL geschützte Verbindungen.• Richten Sie Anwender, Passwörter und Zugriffsrollen für alle Datenbanken ein.• Personenbezogene Daten und Kreditkartendaten sollten nur verschlüsselt
gespeichert werden.• Aktivieren Sie die Protokollierung (Auditing), wenn Sie zurückverfolgen können
müssen, wer welche Änderungen vorgenommen hat.• Aktivieren Sie Monitoring aller Nodes, um verdächtige Operationen zu
identifizieren.• Ihre Datenbank sollte nicht universell zugänglich sein – klare, restriktive
Firewall-Regeln sind Pflicht.
25
Allgemeine Hinweise für die Produktion• Nutzen Sie die aktuelle MongoDB-Version. Spielen Sie alle Patches ein. (64-Bit-Version für Produktion)• Die Storage Engine Wired Tiger (Standardoption) bietet die beste Leistung.• Wählen Sie den angemessenen Write Concern aus.• Konfigurieren Sie den Connection Pool auf Basis der Anzahl der zu erwartenden gleichzeitigen Verbindungen.• Stellen Sie genug RAM und CPU für die zu erwartende Arbeitslast bereit.• Nutzen Sie nach Möglichkeit Solid-State-Festplatten (SSD).• Deaktivieren Sie NUMA (Non Uniform Memory Access).• Sorgen Sie für genügend Swap-Space (sonst stoppt der OOM-Daemon in Linux Ihre MongoDB-Prozesse).• Machen Sie sich mit den Komprimierungsoptionen für Wired Tiger vertraut: none, snappy (Standard) und zlib.• Für RAID-Nutzer: Wir empfehlen RAID10.• Das Dateisystem XFS bietet die beste Leistung.• Für VM-Nutzer: Nutzen Sie einen NOOP-Scheduler für virtuelle Geräte.• Synchronisieren Sie die Systemzeit aller Nodes in Ihrem Cluster mit NTP.• Deaktivieren Sie die Option atime für alle Dateisysteme, auf denen Sie Datenbankdateien speichern.• Erhöhen Sie die Obergrenze für die Anzahl der Dateideskriptoren.• NFS und Dateisysteme mit eigener Replikation (SANs) sind für MongoDB ungeeignet.
26
Vor der Inbetriebname
• Sprechen Sie mit uns.• Lassen Sie uns Ihre Konfiguration überprüfen (Health Check).• Nutzen Sie unsere automatisierten Tools (Atlas, Cloud Manager,
Ops Manager).
Die meisten Produktionsprobleme treten auf, wenn die Kunden alles allein machen wollen.
Fragerunde