Page 1
Step-by-Step Parse Migration
Page 2
Learning Objectives● Understand Migration process● Try Migration with Test Application● Self Hosted DB with ClouldManager● Application Hosting in Elastic Beanstalk
Page 4
https://www.mongodb.com/migrate-from-parse-to-mongodb-cloud-manager-and-aws
Page 5
HostedDBapi.parse.com
Pre-migration
Page 6
HostedDB
Pre-migration
Migration-Test
api.parse.com
Page 7
HostedDB
Syncing Phase
Migration-Test
api.parse.com
SelfHosted
DB
Page 8
HostedDB
Finalize
Migration-Test
api.parse.com
SelfHosted
DB
Page 9
HostedDB
DB Migration Complete
Migration-Test
api.parse.com
SelfHosted
DB
Page 10
HostedDBMigration-Test
api.parse.com
SelfHosted
DBMigration-TestElastic Beanstalk
Application Migration
Page 11
HostedDBMigration-Test
api.parse.com
SelfHosted
DBMigration-TestElastic Beanstalk
Application Migration
Page 12
HostedDBMigration-Test
api.parse.com
SelfHosted
DBMigration-TestElastic Beanstalk
Application Migration
Page 13
HostedDBMigration-Test
api.parse.com
SelfHosted
DBmongo shell
Page 14
HostedDB
Goal State
Migration-Test
api.parse.com
SelfHosted
DB
Page 15
MongoDBCloud Manager
Page 16
MongoDBCloud Manager
Set up & Maintenance
Page 17
MongoDBCloud Manager
Set up & Maintenance
Page 18
MongoDBCloud Manager
Set up & MaintenanceMonitoring & Alerting
Page 19
MongoDBCloud Manager
Set up & MaintenanceMonitoring & Alerting
Back up & Restore
Page 20
http://www.clipartbest.com/cliparts/LcK/4R7/LcK4R7Kca.svg
Page 21
http://www.clipartbest.com/cliparts/LcK/4R7/LcK4R7Kca.svg
US-West-2
US-EastUS-West-1
Page 22
http://www.clipartbest.com/cliparts/LcK/4R7/LcK4R7Kca.svg
US-West-2
US-EastUS-West-1
Page 23
US - East
Availability Zone - b
Availability Zone - c
Availability Zone - d
Page 29
api.parse.comCloudManager
Page 30
api.parse.comSSH - command line
CloudManager
Page 31
api.parse.comSSH - command line
CloudManager
Page 32
SSHPort: 22Protocol: tcpIPs: 0.0.0.0
Page 33
CloudManager Port: 22Protocol: tcpIPs: 4.35.16.128/25, 4.71.186.128/25
Page 34
api.parse.com Port: 27000-28000Protocol: tcpIPs: 54.85.224.0/20
Page 35
api.parse.comSSH - command line
CloudManager
TLS / SSL
Page 37
Authentication and Authorization
Page 38
Role Based Access Control
Authentication and Authorization
Page 39
Role Based Access ControlPrinciple of Least Privilege
Authentication and Authorization
Page 40
Demonstration: Allocate Replica Set
Page 41
HostedDB
Application Migration
Migration-Test
api.parse.com
SelfHosted
DBMigration-TestElastic Beanstalk
Page 42
HostedDB
Migration Completed
Migration-Test
api.parse.com
SelfHosted
DBMigration-TestElastic Beanstalk
Page 43
Demonstration: Migrate Application
Page 44
April 28, 2016
HostedDBMigration-Test
api.parse.com
SelfHosted
DB
Page 45
July 28, 2016
HostedDBMigration-Test
api.parse.com
SelfHosted
DBMigration-TestElastic Beanstalk
Page 46
HostedDB
Migration Completed
Migration-Test
api.parse.com
Migration-TestElastic Beanstalk
AWS EC2
Page 47
Thanks!@blimpyacht
Page 48
Questions for Parse
Page 49
Bugs● Migration never successfully finalizes● On refresh, restarting migration no longer available● Oplog sync continues to self-hosted DB uneffected
Page 50
HostedDBParse App Servers
loadBalancer
SelfHosted
DB
Lag ~30ms
DB Cutover Issue
Page 51
HostedDBParse App Servers
loadBalancer
SelfHosted
DB
Lag ~30ms
Syncing Phase
Page 52
HostedDBParse App Servers
loadBalancer
SelfHosted
DB
Lag ~30ms
Finalizing PhaseMust allow at least 30ms for the last write to replicate to self hosted database
Incoming request load doesn’t stop!!!!
Page 53
HostedDBDEAD Server
loadBalancer
SelfHosted
DB
Lag ~30ms
Finalizing PhaseMust allow at least 30ms for the last write to replicate to self hosted database
Incoming request load doesn’t stop!!!!FAIL!RAM exhaustionconnection exhaustionstack overflow
Page 54
HostedDBDEAD Server
loadBalancer
SelfHosted
DB
Lag ~30ms
How is this scenario avoided?
Incoming request load doesn’t stop!!!!CASCADING FAILURES