Back to Basics - Webinar 6: Produktivsetzung einer Anwendung

download Back to Basics - Webinar 6: Produktivsetzung einer Anwendung

of 27

  • date post

    14-Apr-2017
  • Category

    Technology

  • view

    184
  • download

    0

Embed Size (px)

Transcript of Back to Basics - Webinar 6: Produktivsetzung einer Anwendung

PowerPoint Presentation

MongoDB Europe 2016Old Billingsgate, London15. November

mongodb.com/europe

Mit dem Code benjaminlorenz20 sindIhre Tickets 20% gnstiger!

Back to Basics 2016: Webinar 6

Produktivsetzung einer AnwendungBenjamin LorenzSenior Solutions Architect, MongoDB Frankfurt@benjaminlorenz

V1.1

Wer bin ich, seit wann arbeite ich bei MongoDB 2

RckblickWebinar 1: Einfhrung in NoSQLVerschiedene Typen von NoSQL-Datenbanken, MongoDB ist eine DokumentdatenbankWebinar 2: Ihre erste MongoDB-AnwendungErstellen von Datenbanken und Collections, CRUD-Operationen, Indizes und explain()Webinar 3: Schema-DesignDynamische Schemata, Einbettung von DokumentenWebinar 4: Text- und GeoindizesWebinar 5: Einfhrung in das Aggregation Framework

#

Produktivsetzung einer AnwendungDer Prozess, in dessen Rahmen neu entwickelte Software fr Anwender zugnglich gemacht wirdDie wichtigsten Aspekte aus der Datenbankperspektive:DauerhaftigkeitSkalierbarkeitDatensicherheitAllgemeine Hinweise fr die Produktion

#

Dauerhaftigkeit Replica SetsNode 1Node 2Node 3

#

In einer Collection abgelegte Daten bleiben erhalten und sind auch nach einem Stromausfall, dem Ausfall einer Festplatte, eines Racks oder eines ganzen Rechenzentrums verfgbar. Die Konsistenz der Daten kann nach dem Ausfall wiederhergestellt werden.5

Initialisierung eines Replica SetsNode 1Node 2Node 3Node 1(Primary)Node 2(Secondary)Node 3(Secondary)ReplikationReplikationHeartbeat

#

Der Befehl rs.initialise lst die Wahl des Primrknotens aus. Die Nodes signalisieren durch Heartbeats, dass sie funktionsfhig sind und miteinander kommunizieren knnen.6

Node 2(Secondary)Node 3(Secondary)Heartbeat

Wahl des PrimaryNode 1(Primrknoten)

Replica Set Ausfall des Primary

#

7

Node 1(Primrknoten)Node 2(Primary)Node 3(Secondary)Heartbeat

ReplikationReplica Set Neuer Primary

#

8

Node 2(Primary)Node 3(Secondary)HeartbeatReplikationNode 1WiederherstellungReplikationReplica Set Wiederherstellung

#

9

Node 2(Primary)Node 3(Secondary)HeartbeatReplikationNode 1(Secondary)ReplikationReplica Set Mit neuem Primary wieder vollstndig

#

10

Starke Konsistenz vs. geringe Latenz

Node 1(Primary)Node 2(Secondary)Node 3(Secondary)AnwendungTreiberLesen & schreibenStarke Konsistenz

#

12

Node 1(Primary)Node 2(Secondary)Node 3(Secondary)AnwendungTreiberGeringe LatenzLesenLesenLesen & schreiben

#

13

Write ConcernHiermit lsst sich festlegen, welche Art von Rckmeldung auf einen Schreibvor-gang erfolgt:w:0 : Der Treiber schickt das Paket ab und wartet anschlieend nicht auf Rckmeldung vom Server.w:1 : Alle vom Server generierten Fehlermeldungen werden an die Anwendung zurckgeschickt.w:majority : Es wird rckgemeldet, ob der Schreibvorgang auf mehr als der Hlfte der Knoten des Replica Sets erfolgt ist.

Journaling j:false : Schreiboperationen mssen nicht im Journal erfasst werden.j:true : Schreiboperationen mssen im Journal erfasst werden.

#

Schreibmodus: w:0

Schreibmodus: w:1

Schreibmodus: w:j

Schreibmodus: w:majority

Sharding

Engpass: Ein-/Ausgabe

#

Engpass: Arbeitsspeicher

Sharded ClustermongosmongosmongosPrimarySecondarySecondaryPrimarySecondarySecondaryPrimarySecondarySecondaryPrimarySecondarySecondaryPrimarySecondarySecondaryAnwendungTreiber

Config Server

Einrichten von Replica Sets und Sharded ClustersEinfachste Option: Server und Management von MongoDBMongoDB AtlasEtwas komplizierter: Ihre Server, cloudbasiertes ManagementMongoDB Cloud ManagerNoch etwas komplizierter: Ihre Server, Management in Ihrem UnternehmenMongoDB Ops ManagerKomplizierteste OptionSie erledigen alles selbst, mit Skripts und manuell eingegebenen Befehlen. (Anleitungen in der Dokumentation)

#

Datensicherheit Mehrschichtiger SchutzNutzen Sie ausschlielich durch SSL geschtzte Verbindungen.Richten Sie Anwender, Passwrter und Zugriffsrollen fr alle Datenbanken ein.Personenbezogene Daten und Kreditkartendaten sollten nur verschlsselt gespeichert werden.Aktivieren Sie die Protokollierung (Auditing), wenn Sie zurckverfolgen knnen mssen, wer welche nderungen vorgenommen hat.Aktivieren Sie Monitoring aller Nodes, um verdchtige Operationen zu identifizieren.Ihre Datenbank sollte nicht universell zugnglich sein klare, restriktive Firewall-Regeln sind Pflicht.

#

Allgemeine Hinweise fr die ProduktionNutzen Sie die aktuelle MongoDB-Version. Spielen Sie alle Patches ein. (64-Bit-Version fr Produktion)Die Storage Engine Wired Tiger (Standardoption) bietet die beste Leistung.Whlen 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 fr die zu erwartende Arbeitslast bereit.Nutzen Sie nach Mglichkeit Solid-State-Festplatten (SSD).Deaktivieren Sie NUMA (Non Uniform Memory Access).Sorgen Sie fr gengend Swap-Space (sonst stoppt der OOM-Daemon in Linux Ihre MongoDB-Prozesse).Machen Sie sich mit den Komprimierungsoptionen fr Wired Tiger vertraut: none, snappy (Standard) und zlib.Fr RAID-Nutzer: Wir empfehlen RAID10.Das Dateisystem XFS bietet die beste Leistung.Fr VM-Nutzer: Nutzen Sie einen NOOP-Scheduler fr virtuelle Gerte.Synchronisieren Sie die Systemzeit aller Nodes in Ihrem Cluster mit NTP.Deaktivieren Sie die Option atime fr alle Dateisysteme, auf denen Sie Datenbankdateien speichern.Erhhen Sie die Obergrenze fr die Anzahl der Dateideskriptoren.NFS und Dateisysteme mit eigener Replikation (SANs) sind fr MongoDB ungeeignet.

#

Die Gre des Arbeitsspeichers fr Wired Tiger wird durch storage.wiredTiger.engineConfig.cacheSizeGB festgelegt.25

Vor der InbetriebnameSprechen Sie mit uns.Lassen Sie uns Ihre Konfiguration berprfen (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