Documente Academic
Documente Profesional
Documente Cultură
Sig Narváez
Principal Solution Architect
@SigNarvaez
#MDBlocal
Agenda
#MDBLocal
Why MongoDB? Why Atlas?
Why MongoDB? A: Next Gen Multi-Model data platform
MongoDB is the most powerful data management platform in the market today
Graph
Document Graph &
Rich JSON Hierarchical
Data Structures Recursive
Flexible Schema Lookups
Mobile
Apps
Relational 01 Search
Left-Outer Join JSON 10 Text Search
Views
Multiple Languages
Schema Validation
Faceted Search
GeoSpatial Binaries
Key/Value
GeoJSON
2D & Horizontal Scale Files & Metadata
In-Memory Encrypted
2DSphere
#MDBLocal
MongoDB Atlas Data Platform
Migration Prep
Self-Managed MongoDB to Fully Managed MongoDB Atlas
Prep Items
#MDBLocal
Prep Items: Atlas Cluster Sizing
#MDBLocal
Prep Items: Atlas Cluster Sizing
#MDBLocal
Prep Items: Expert Atlas Cluster Sizing
Work with your local MongoDB Solution Architect
#Shards by Storage = Total Storage ÷ Max Storage Per Shard
#MDBLocal
Prep Items: Version, Driver & Retries
#MDBLocal
Prep Items: Connectivity
vs.
#MDBLocal
Prep Items: Test Basic Ops mgeneratejs '{
"_id": "$objectid",
"dateTime": "$date",
"createdAt": "$date",
"Action" :"$string",
Test, Test, Test
"severityLevel": "$integer",
● Simulate Production Traffic "source": "$string",
"display": "$string",
● Your own test suite
"deviceServerIp": "$ip",
● POCDriver "details": {
"ipAddress": "$ip",
> https://github.com/johnlpage/POCDriver "macAddress": "$string",
"userId": "SYSTEM",
● mgeneratejs "method": "method"
> https://github.com/rueckstiess/mgeneratejs }}' --jsonArray -n 1000000 | mongoimport -
-jsonArray --port 27017 --upsert -d atlas -c
iot
#MDBLocal
Prep Items: Increase OpLog on Source Cluster
Source OpLog
#MDBLocal
Prep Items: Upscale Target Cluster
#MDBLocal
Migration Options
Comparing Options
#MDBLocal
Behind the scenes
#MDBLocal
Migration Dry Run
#MDBLocal
Migration Execution
New Prod
#MDBLocal
DEMO
Live Migration
LiveMigrate
Live Migrate
#MDBLocal
DEMO
mongomirror
#MDBLocal
Post Migration
Housekeeping
Housekeeping
#MDBLocal
Extra Resources
https://www.mongodb.com/cloud/atlas/migrate
#MDBLocal
Extra Resources
https://www.mongodb.com/products/consulting
#MDBLocal
Other Data Stores
Cloud NoSQL & RDBMS
#MDBlocal
Safe Harbor Statement
This presentation contains “forward-looking statements” within the meaning of Section 27A of the Securities Act of 1933,
as amended, and Section 21E of the Securities Exchange Act of 1934, as amended. Such forward-looking statements are
subject to a number of risks, uncertainties, assumptions and other factors that could cause actual results and the timing of
certain events to differ materially from future results expressed or implied by the forward-looking statements. Factors that
could cause or contribute to such differences include, but are not limited to, those identified our filings with the Securities
and Exchange Commission. You should not rely upon forward-looking statements as predictions of future events.
Furthermore, such forward-looking statements speak only as of the date of this presentation.
In particular, the development, release, and timing of any features or functionality described for MongoDB products
remains at MongoDB’s sole discretion. This information is merely intended to outline our general product direction and it
should not be relied on in making a purchasing decision nor is this a commitment, promise or legal obligation to deliver
any material, code, or functionality. Except as required by law, we undertake no obligation to update any forward-looking
statements to reflect events or circumstances after the date of such statements.
30
All Other Data Stores … 350+!!!
https://db-engines.com/en/ranking_categories
#MDBLocal
Let’s choose a few
Azure CosmosDB
#MDBLocal
AWS DocumentDB
● Functional Differences:
https://docs.aws.amazon.com/documentdb/latest/developerguide/functio
nal-differences.html
#MDBLocal
AWS DocumentDB Feature Gap vs. MongoDB
#MDBLocal
AWS DocumentDB Feature Gap vs. MongoDB
#MDBLocal
Possible Migration Options
Method Considerations
*https://docs.aws.amazon.com/documentdb/latest/developerguide/fu
nctional-differences.html#functional-differences.mongodump-
mongorestore
#MDBLocal
[ec2-user@ip-172-31-1-79 dump]$ mongodump --host sigsdocdb.caexbcw7y6up.us-west-
2.docdb.amazonaws.com:27017 --username snarvaez --ssl --sslCAFile /home/ec2-user/rds-
combined-ca-bundle.pem
2020-02-24T05:01:23.523+0000writing SigsTest.coll to
2020-02-24T05:01:23.525+0000done dumping SigsTest.coll (1 document)
#MDBLocal
Azure CosmosDB Feature Gap vs. MongoDB
Also not based on the MongoDB server - It emulates the MongoDB API
Large feature gaps vs. mainline
● 3.2 and 3.6 modes. 3.2 clusters cannot be upgraded to 3.6 at this time (Feb 2020)
● Numerous Incompatibilities
Many operations work differently and are not documented - left to developers to figure out
#MDBLocal
Possible migration options
Method Considerations
* https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-cosmos-db-mongodb-api
* https://www.microsoft.com/en-us/download/details.aspx?id=46436
* https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed
#MDBLocal
AWS DynamoDB
#MDBLocal
Possible migration options
Method Considerations
Offline
https://docs.aws.amazon.com/d
mongoimport atapipeline/latest/DeveloperGuid
e/dp-importexport-ddb-part2
Online
CUD operations
build-your-own via MongoDB Driver
https://docs.aws.amazon.com/a
mazondynamodb/latest/develop
erguide/Streams.Lambda.html
#MDBLocal
RDBMS
Why?
• Modernization
• On-Prem to Cloud
• Monolith to MicroServices
• Oracle exit strategy
Who?
• Cisco migrated $4B
eCommerce Platform
https://www.mongodb.com/blog/post/cisco-and-mongodb-e-commerce-transformation
#MDBLocal
Possible migration options
Method Tools & Patterns
https://github.com/johnlpage/MongoSyphon
Strangler
Pattern
#MDBLocal
db.SigNarvaez.find({}).explain()
Q&A