einmal über den großen teich mongodb in der aws-cloud von eu nach us nahezu ohne downtime...

25
Einmal über den großen Teich MongoDB in der AWS-Cloud von EU nach US ohne Downtime migrieren Markus Ostertag Markus Ostertag - MongoDB München 2013

Upload: mongodb

Post on 24-Jun-2015

260 views

Category:

Technology


0 download

DESCRIPTION

Einen aktiven Cluster in einen anderen Kontinent zu migrieren ist selbst in der Cloud und damit ohne den Transport von physischen Servern eine große Aufgabe. Die Anforderung, dass das Ganze mit nahezu keiner Downtime geschehen und bis zum Abschalten dauerhaft in den MongoDB geschrieben werden muss, machte es für uns nicht einfacher... Wie wir das Problem mit genauer Planung und viel Vorarbeit bewältigt haben ist Thema dieses Talks.

TRANSCRIPT

Page 1: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Einmal über den großen Teich

MongoDB in der AWS-Cloud von EU nach US

ohne Downtime migrieren

Markus Ostertag

Markus Ostertag - MongoDB München 2013

Page 2: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Wer bin ich?• Online-Business seit >15 Jahren

• Diplom-Informatik TU München

• Gründer MovieMaze.de (Verkauf 2012)

• Fokus auf Skalierung und AWS

• Seit 11/2012 bei Team Internet als Head ofDevelopment (Advertiser Products)

Markus Ostertag - MongoDB München 2013

Page 3: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Übersicht

• Was ist DNTX?

• Wie wir MongoDB einsetzen

• AWS Voraussetzungen

• Architektur einer MongoDB in EC2

Markus Ostertag - MongoDB München 2013

Page 4: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Übersicht

• Konzept der Migration

• Die Migration

• Die Nacharbeiten

• Happy End?

Markus Ostertag - MongoDB München 2013

Page 5: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Markus Ostertag - MongoDB München 2013

Page 6: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

DNTX

• DNTX = Direct Navigation Traffic Exchange

• Monetarisierung von Domain Parking Traffic

• Real Time Bidding pro Request

• DNTX als Marktplatz zwischen

Parkingplattform und Advertiser

Markus Ostertag - MongoDB München 2013

Page 7: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Wie wir MongoDB einsetzen

• Anfragen nach höchstem Gebot (Read)

• Tracking (Write)

• Read & Write intensiv

• Gesamtantwortzeit < 500ms

Markus Ostertag - MongoDB München 2013

Page 8: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Wie wir MongoDB einsetzen

• 4 Shards (je ein Replica Set mit 3 Maschinen)

• 7 MongoS + 3 Configserver

• Read Preference

„secondaryPreferred“

• Application Server in node.js

Markus Ostertag - MongoDB München 2013

Page 9: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Wie wir MongoDB einsetzen

• 600 Feedrequests/Sek. (~52 Mio./Tag)

• Avg. 4k DB-Queries/Sek. (Peaks: 20k/Sek.)

• Avg. 500 DB-Inserts/Sek. (Peaks: 2k/Sek.)

• Avg. 400 DB-Updates/Sek. (Peaks: 2k/Sek.)

Markus Ostertag - MongoDB München 2013

Page 10: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

AWS Voraussetzungen• Entscheidung für Amazon Web Services

• VPC als „Trusted Environment“

• Availability Zones und Regions

Markus Ostertag - MongoDB München 2013

Page 11: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Architektur einer MongoDB in EC2

Markus Ostertag - MongoDB München 2013

• Eine VPC mit 3 Availability Zones

• Primary über Priority (rs.conf()) verteilen

Page 12: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Sprung über den Teich

Markus Ostertag - MongoDB München 2013

Page 13: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Konzept der Migration

Markus Ostertag - MongoDB München 2013

Page 14: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Die Migration• Datenmenge reduzieren

• Balancer abschalten

• Jedem Shard einen „Transfer-MongoD“ als „hidden“ Secondary hinzufügen

–priority:0, hidden:true, votes:0

• Warten…

Markus Ostertag - MongoDB München 2013

Page 15: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Die Migration

Markus Ostertag - MongoDB München 2013

Page 16: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Die Migration• „Transfer-MongoD“ stoppen

• Snapshots ziehen und nach US kopieren

• Snapshots in US starten

Markus Ostertag - MongoDB München 2013

Page 17: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Die Migration• Sync ausgehend von Transfer-MongoDs

• Alle (12) neuen MongoDs in US starten

• Sync von den jeweiligen Transfer-MongoDs

• Warten…

• Neue MongoS und Application-Server in US

Markus Ostertag - MongoDB München 2013

rs.syncFrom("transfer-mongod-

shard1-us")

Page 18: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Die Migration – Kritischer Teil

• Migration der Config-Server

–Snapshots in EU -> Copy in US starten

–Alle MongoS stoppen und mit den neuen Config-Servern (US) starten -> Downtime von wenigen Minuten

• Gesamtsystem dupliziert

Markus Ostertag - MongoDB München 2013

Page 19: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Die Migration – Kritischer Teil

• Switch der Application von EU nach US (DNS)

• Switch der Secondaries nach US

Markus Ostertag - MongoDB München 2013

cfg = rs.conf();

cfg.members[0].votes = 1

cfg.members[0].priority = 1

cfg.members[0].hidden = false

rs.reconfig(cfg)

Page 20: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Die Migration – Kritischer Teil

• Switch der Primaries nach US

• Zur Sicherheit:

–Neuaufbau der Connections triggern

–EU läuft per VPN noch mit

Markus Ostertag - MongoDB München 2013

Page 21: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Die Nacharbeiten

• Monitoring der US-Systeme

• VPN-Verbindung trennen

• EU abschalten

• Security Groups anpassen

Markus Ostertag - MongoDB München 2013

Page 22: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Happy End?

• Probleme:

–VPN-Instanzen und der Netzwerkdurchsatz

–Ohne Downtime ist ein Config-Serverumzug

nicht möglich (MongoS müssen alle down sein)

Markus Ostertag - MongoDB München 2013

Page 23: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Happy End?• Fazit:

– Vorarbeit

– Geduld

– Hidden Secondaries helfen!

Markus Ostertag - MongoDB München 2013

Page 24: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

Links• IPSec zwischen zwei VPCs:

http://aws.amazon.com/articles/5472675506466066

• MongoDB-Whitepaper von Amazon: http://aws.amazon.com/whitepapers/mongodb-on-aws/

• MongoDB on AWS (10Gen):http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/

Markus Ostertag - MongoDB München 2013

Page 25: Einmal über den großen teich   MongoDB in der aws-cloud von eu nach us nahezu ohne downtime migrieren

• Mail: [email protected]

• Xing: http://xing.to/mo

• Linkedin:

http://de.linkedin.com/in/ostertag

Markus Ostertag - MongoDB München 2013