einmal über den großen teich mongodb in der aws-cloud von eu nach us nahezu ohne downtime...
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
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
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
Übersicht
• Was ist DNTX?
• Wie wir MongoDB einsetzen
• AWS Voraussetzungen
• Architektur einer MongoDB in EC2
Markus Ostertag - MongoDB München 2013
Übersicht
• Konzept der Migration
• Die Migration
• Die Nacharbeiten
• Happy End?
Markus Ostertag - MongoDB München 2013
Markus Ostertag - MongoDB München 2013
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
Wie wir MongoDB einsetzen
• Anfragen nach höchstem Gebot (Read)
• Tracking (Write)
• Read & Write intensiv
• Gesamtantwortzeit < 500ms
Markus Ostertag - MongoDB München 2013
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
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
AWS Voraussetzungen• Entscheidung für Amazon Web Services
• VPC als „Trusted Environment“
• Availability Zones und Regions
Markus Ostertag - MongoDB München 2013
Architektur einer MongoDB in EC2
Markus Ostertag - MongoDB München 2013
• Eine VPC mit 3 Availability Zones
• Primary über Priority (rs.conf()) verteilen
Sprung über den Teich
Markus Ostertag - MongoDB München 2013
Konzept der Migration
Markus Ostertag - MongoDB München 2013
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
Die Migration
Markus Ostertag - MongoDB München 2013
Die Migration• „Transfer-MongoD“ stoppen
• Snapshots ziehen und nach US kopieren
• Snapshots in US starten
Markus Ostertag - MongoDB München 2013
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")
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
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)
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
Die Nacharbeiten
• Monitoring der US-Systeme
• VPN-Verbindung trennen
• EU abschalten
• Security Groups anpassen
Markus Ostertag - MongoDB München 2013
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
Happy End?• Fazit:
– Vorarbeit
– Geduld
– Hidden Secondaries helfen!
Markus Ostertag - MongoDB München 2013
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
• Mail: [email protected]
• Xing: http://xing.to/mo
• Linkedin:
http://de.linkedin.com/in/ostertag
Markus Ostertag - MongoDB München 2013