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

Preview:

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.

Citation preview

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: markus@teaminternet.de

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

• Linkedin:

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

Markus Ostertag - MongoDB München 2013

Recommended