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