SlideShare a Scribd company logo
1 of 27
MongoDB Management Service Engineering Team, MongoDB
Cailin Nelson, Cadran Cowansage, Louisa Berger, Bard Bloom, Tim
Olsen
#MongoDBWorld
Automate MongoDB with MMS
MMS: MongoDB Management
Service
MMS Automation: What Does It Do?
● Create MongoDB systemsof any size, and any configuration
● Manage MongoDB systems, such as adding capacity or resizing the
oplog, with no application downtime
● Upgrade a deployment, with no application downtime
… all from the comfort of your web browser.
MMS Automation…. And MMS Provisioning Too
For extra fun, we’ve also added anAmazonAWS integration
which allows you to provision the servers on which your
MongoDB processes will run, directly from MMS.
● Optional component- you can provision your base servers any way you like, doing it
via MMS Provisioning is just one way
● Future plans to integrate OpenStack,VMWare, etc.
MMS Automation: Why?
● Ease of operation
● Expect the unexpected
About This Talk...
● Series of demos
● Questions at the end
MMS Provisioning on AWS
… from 0 to Sharded Cluster in 8 minutes
or less
Raising Your Cluster Right
… MongoDB management the easy
way
Upgrading a Cluster Manually
1. Rundb.upgradeCheckAllDBs()tocheckdatasetforcompatibility
2. Resolveanyincompatibilitesinyourdeployment
3. Upgradeauthenticationmodel
4. DownloadmongoDBbinariesfor2.6
5. Disablethebalancer
6. Upgradethecluster’smetadata
7. Waitforeachmongostoexitoncompletion
8. Upgradeeachmongosprocess,oneatatime
9. Upgradeeachconfigserver,oneatatime,withthefirstoneupgradedlast.
10. Upgradeeachshard,oneatatime:
a. Upgradesecondaries,oneatatime:
i. Shut down the mongod
ii. Replace the 2.4 binary with the 2.6 binary
iii. Restart mongod
iv. Wait for member to recover to SECONDARY state
b. Stepdowntheprimary
c. WaitforanothermembertobeelectedtoPRIMARY
d. Upgradepreviousprimary
11. turnbackonthebalancer
Now, using Automation
How does it work?
Automation ≈ Self-Driving Car
● Tell it where you want to go.
o It goes there
● If you steer manually?
o It reroutes and goes toward your destination
● Bridge out?
o It reroutes and goes toward your destination
● Want to go somewhere else?
o It reroutes and goes toward your new destination
Architecture Introduction
● One agent per machine
● Agent talks to:
o MMS
 instructions
o Mongo
 sense
 control
● No agent-agent
● Single executable
MMS
MongoD
MongoS
Config Server
Auto. Agent
MongoD
MongoS
Config Server
Auto. Agent
Automation Cycle
Get Instructions
Inspect Cluster
Adjust Cluster
Sleep 30 sec
Desired State?
You tellAutomation what you want.
Automation makes that happen.
Desired State ≈ Self-driving car’s destination.
What Automation Knows
1. What you want
a. from MMS
2. What’s actually on the cluster
a. from inspecting the cluster
3. How to do various things
a. Like “start Mongod” or “init replica set”
b. from MongoDB documentation
c. preconditions: what has to be true before.
d. postconditions: what should be true after.
Planning
● Look at what you want vs. what you have
● If they’re the same, yay!
o Check again in 30 seconds
● Else, make a plan to fix what you have
o Basic robotics-style planning problem
o precondition/postcondition make this work.
Executing Plans
● Follow the plan, one move at a time.
● Each move has a bunch of actions
● Check expected vs. reality for each action
o Check preconditions before doing an action
o Check postconditions afterwards
o If they’re different, go make a new plan!
● How could they be different?
o machine crash
o killing/modifying a mongo instance by hand
Automation
● Instructions from you
● Information from your cluster
● Expertise about how to run Mongo
● Patience to get all the details right
Advanced Operations
Oplog Resizing
What is an oplog?
● A capped collection that stores an ordered
history of logical writes to a MongoDB database
● Enables replication
Why resize the oplog?
1. You may want to increase its size to
accommodate a high write rate and/or high
replication lags to secondaries.
2. You may want to decrease its size to save on
disk space.
Resizing the Oplog with
Automation
How to resize an oplog
1. Shutdown a replica set member
2. Start the member in standalone mode, listening on a different port than it usually does
3. Back up the last oplog entry
4. Drop the oplog
5. Recreate the oplog with its new size
6. Insert the saved oplog entry
7. Stop the member
8. Start the member with normal options
9. Repeat Steps 1 - 8 for each of the remaining replica set members
Or just have Automation do it
Automating MMS
MongoDB Management Service Engineering Team, MongoDB
Cailin Nelson, Cadran Cowansage, Louisa Berger, Bard Bloom, Tim
Olsen
#MongoDBWorld
Questions

More Related Content

What's hot

Intro to MySQL Master Slave Replication
Intro to MySQL Master Slave ReplicationIntro to MySQL Master Slave Replication
Intro to MySQL Master Slave Replicationsatejsahu
 
Strategies for Backing Up MongoDB
Strategies for Backing Up MongoDBStrategies for Backing Up MongoDB
Strategies for Backing Up MongoDBMongoDB
 
MMS Automation In Action!
MMS Automation In Action!MMS Automation In Action!
MMS Automation In Action!MongoDB
 
Seastore: Next Generation Backing Store for Ceph
Seastore: Next Generation Backing Store for CephSeastore: Next Generation Backing Store for Ceph
Seastore: Next Generation Backing Store for CephScyllaDB
 
My notes on vCloud Director and Snapshots
My notes on vCloud Director and SnapshotsMy notes on vCloud Director and Snapshots
My notes on vCloud Director and Snapshotstechstarts
 
Basics of Logical Replication,Streaming replication vs Logical Replication ,U...
Basics of Logical Replication,Streaming replication vs Logical Replication ,U...Basics of Logical Replication,Streaming replication vs Logical Replication ,U...
Basics of Logical Replication,Streaming replication vs Logical Replication ,U...Rajni Baliyan
 
Cpu ready recomendaciones
Cpu ready    recomendacionesCpu ready    recomendaciones
Cpu ready recomendacionesCristian Muñoz
 
Gluster Metrics: why they are crucial for running stable deployments of all s...
Gluster Metrics: why they are crucial for running stable deployments of all s...Gluster Metrics: why they are crucial for running stable deployments of all s...
Gluster Metrics: why they are crucial for running stable deployments of all s...Gluster.org
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment StrategiesMongoDB
 
AEM WITH MONGODB
AEM WITH MONGODBAEM WITH MONGODB
AEM WITH MONGODBNate Nelson
 
LVM عدنان الشعلة عودة تغييرات
 LVM عدنان الشعلة عودة تغييرات  LVM عدنان الشعلة عودة تغييرات
LVM عدنان الشعلة عودة تغييرات adnan alshulah
 
MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011Graham Weldon
 
Data Guard Broker Failover
Data Guard Broker FailoverData Guard Broker Failover
Data Guard Broker FailoverArun Sharma
 
Top 5 vmware tips
Top 5 vmware tips Top 5 vmware tips
Top 5 vmware tips Metron
 

What's hot (20)

Intro to MySQL Master Slave Replication
Intro to MySQL Master Slave ReplicationIntro to MySQL Master Slave Replication
Intro to MySQL Master Slave Replication
 
Strategies for Backing Up MongoDB
Strategies for Backing Up MongoDBStrategies for Backing Up MongoDB
Strategies for Backing Up MongoDB
 
MMS Automation In Action!
MMS Automation In Action!MMS Automation In Action!
MMS Automation In Action!
 
Shootout at the AWS Corral
Shootout at the AWS CorralShootout at the AWS Corral
Shootout at the AWS Corral
 
Seastore: Next Generation Backing Store for Ceph
Seastore: Next Generation Backing Store for CephSeastore: Next Generation Backing Store for Ceph
Seastore: Next Generation Backing Store for Ceph
 
My notes on vCloud Director and Snapshots
My notes on vCloud Director and SnapshotsMy notes on vCloud Director and Snapshots
My notes on vCloud Director and Snapshots
 
Microreboot
MicrorebootMicroreboot
Microreboot
 
Basics of Logical Replication,Streaming replication vs Logical Replication ,U...
Basics of Logical Replication,Streaming replication vs Logical Replication ,U...Basics of Logical Replication,Streaming replication vs Logical Replication ,U...
Basics of Logical Replication,Streaming replication vs Logical Replication ,U...
 
Cpu ready recomendaciones
Cpu ready    recomendacionesCpu ready    recomendaciones
Cpu ready recomendaciones
 
Gluster Metrics: why they are crucial for running stable deployments of all s...
Gluster Metrics: why they are crucial for running stable deployments of all s...Gluster Metrics: why they are crucial for running stable deployments of all s...
Gluster Metrics: why they are crucial for running stable deployments of all s...
 
08 2020 - vm scale set dns
08 2020 - vm scale set dns08 2020 - vm scale set dns
08 2020 - vm scale set dns
 
Deployment Strategies
Deployment StrategiesDeployment Strategies
Deployment Strategies
 
AEM WITH MONGODB
AEM WITH MONGODBAEM WITH MONGODB
AEM WITH MONGODB
 
Noit ocon-2010
Noit ocon-2010Noit ocon-2010
Noit ocon-2010
 
LVM عدنان الشعلة عودة تغييرات
 LVM عدنان الشعلة عودة تغييرات  LVM عدنان الشعلة عودة تغييرات
LVM عدنان الشعلة عودة تغييرات
 
Redo log
Redo logRedo log
Redo log
 
MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011
 
Data Guard Broker Failover
Data Guard Broker FailoverData Guard Broker Failover
Data Guard Broker Failover
 
Multicore
MulticoreMulticore
Multicore
 
Top 5 vmware tips
Top 5 vmware tips Top 5 vmware tips
Top 5 vmware tips
 

Similar to Automate MongoDB deployment and operations with MMS

MMS Automation In Action!
MMS Automation In Action!MMS Automation In Action!
MMS Automation In Action!MongoDB
 
MongoDb scalability and high availability with Replica-Set
MongoDb scalability and high availability with Replica-SetMongoDb scalability and high availability with Replica-Set
MongoDb scalability and high availability with Replica-SetVivek Parihar
 
Benchmarking, Load Testing, and Preventing Terrible Disasters
Benchmarking, Load Testing, and Preventing Terrible DisastersBenchmarking, Load Testing, and Preventing Terrible Disasters
Benchmarking, Load Testing, and Preventing Terrible DisastersMongoDB
 
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...Codemotion
 
Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCReal World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCCarlo Bonamico
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automationRicardo Bánffy
 
MongoDB Management Service: Getting Started with MMS
MongoDB Management Service: Getting Started with MMSMongoDB Management Service: Getting Started with MMS
MongoDB Management Service: Getting Started with MMSMongoDB
 
OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...
OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...
OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...NETWAYS
 
How to serve 2500 Ad requests per second
How to serve 2500 Ad requests per secondHow to serve 2500 Ad requests per second
How to serve 2500 Ad requests per secondMiguel Sousa Filipe
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadKrivoy Rog IT Community
 
Introducing MongoDB in a multi-site HA environment
Introducing MongoDB in a multi-site HA environmentIntroducing MongoDB in a multi-site HA environment
Introducing MongoDB in a multi-site HA environmentSebastian Geib
 
Growing MongoDB on AWS
Growing MongoDB on AWSGrowing MongoDB on AWS
Growing MongoDB on AWScolinthehowe
 
Mongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam HelmanMongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam HelmanHakka Labs
 
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...Alessandro Molina
 
Large scale virtual Machine log collector (Project-Report)
Large scale virtual Machine log collector (Project-Report)Large scale virtual Machine log collector (Project-Report)
Large scale virtual Machine log collector (Project-Report)Gaurav Bhardwaj
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagJean-François Gagné
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?Vivek Parihar
 
Monolithic to Microservices Architecture - STM 6
Monolithic to Microservices Architecture - STM 6Monolithic to Microservices Architecture - STM 6
Monolithic to Microservices Architecture - STM 6Tricode (part of Dept)
 

Similar to Automate MongoDB deployment and operations with MMS (20)

MMS Automation In Action!
MMS Automation In Action!MMS Automation In Action!
MMS Automation In Action!
 
MongoDb scalability and high availability with Replica-Set
MongoDb scalability and high availability with Replica-SetMongoDb scalability and high availability with Replica-Set
MongoDb scalability and high availability with Replica-Set
 
MongoDB Online Training.pdf
MongoDB Online Training.pdfMongoDB Online Training.pdf
MongoDB Online Training.pdf
 
Benchmarking, Load Testing, and Preventing Terrible Disasters
Benchmarking, Load Testing, and Preventing Terrible DisastersBenchmarking, Load Testing, and Preventing Terrible Disasters
Benchmarking, Load Testing, and Preventing Terrible Disasters
 
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...
Real World AngularJS recipes: beyond TodoMVC - Carlo Bonamico, Sonia Pini - C...
 
Real World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVCReal World AngularJS recipes: beyond TodoMVC
Real World AngularJS recipes: beyond TodoMVC
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automation
 
MongoDB Management Service: Getting Started with MMS
MongoDB Management Service: Getting Started with MMSMongoDB Management Service: Getting Started with MMS
MongoDB Management Service: Getting Started with MMS
 
OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...
OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...
OSMC 2018 | Learnings, patterns and Uber’s metrics platform M3, open sourced ...
 
How to serve 2500 Ad requests per second
How to serve 2500 Ad requests per secondHow to serve 2500 Ad requests per second
How to serve 2500 Ad requests per second
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
Introducing MongoDB in a multi-site HA environment
Introducing MongoDB in a multi-site HA environmentIntroducing MongoDB in a multi-site HA environment
Introducing MongoDB in a multi-site HA environment
 
Growing MongoDB on AWS
Growing MongoDB on AWSGrowing MongoDB on AWS
Growing MongoDB on AWS
 
EVOLVE'14 | Enhance | Nate Nelson | AEM with MongoDB
EVOLVE'14 | Enhance | Nate Nelson | AEM with MongoDBEVOLVE'14 | Enhance | Nate Nelson | AEM with MongoDB
EVOLVE'14 | Enhance | Nate Nelson | AEM with MongoDB
 
Mongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam HelmanMongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam Helman
 
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
EuroPython 2013 - FAST, DOCUMENTED AND RELIABLE JSON BASED WEBSERVICES WITH P...
 
Large scale virtual Machine log collector (Project-Report)
Large scale virtual Machine log collector (Project-Report)Large scale virtual Machine log collector (Project-Report)
Large scale virtual Machine log collector (Project-Report)
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lag
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?
 
Monolithic to Microservices Architecture - STM 6
Monolithic to Microservices Architecture - STM 6Monolithic to Microservices Architecture - STM 6
Monolithic to Microservices Architecture - STM 6
 

More from MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 

More from MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Recently uploaded

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Automate MongoDB deployment and operations with MMS

  • 1. MongoDB Management Service Engineering Team, MongoDB Cailin Nelson, Cadran Cowansage, Louisa Berger, Bard Bloom, Tim Olsen #MongoDBWorld Automate MongoDB with MMS
  • 3. MMS Automation: What Does It Do? ● Create MongoDB systemsof any size, and any configuration ● Manage MongoDB systems, such as adding capacity or resizing the oplog, with no application downtime ● Upgrade a deployment, with no application downtime … all from the comfort of your web browser.
  • 4. MMS Automation…. And MMS Provisioning Too For extra fun, we’ve also added anAmazonAWS integration which allows you to provision the servers on which your MongoDB processes will run, directly from MMS. ● Optional component- you can provision your base servers any way you like, doing it via MMS Provisioning is just one way ● Future plans to integrate OpenStack,VMWare, etc.
  • 5. MMS Automation: Why? ● Ease of operation ● Expect the unexpected
  • 6. About This Talk... ● Series of demos ● Questions at the end
  • 7. MMS Provisioning on AWS … from 0 to Sharded Cluster in 8 minutes or less
  • 8. Raising Your Cluster Right … MongoDB management the easy way
  • 9. Upgrading a Cluster Manually 1. Rundb.upgradeCheckAllDBs()tocheckdatasetforcompatibility 2. Resolveanyincompatibilitesinyourdeployment 3. Upgradeauthenticationmodel 4. DownloadmongoDBbinariesfor2.6 5. Disablethebalancer 6. Upgradethecluster’smetadata 7. Waitforeachmongostoexitoncompletion 8. Upgradeeachmongosprocess,oneatatime 9. Upgradeeachconfigserver,oneatatime,withthefirstoneupgradedlast. 10. Upgradeeachshard,oneatatime: a. Upgradesecondaries,oneatatime: i. Shut down the mongod ii. Replace the 2.4 binary with the 2.6 binary iii. Restart mongod iv. Wait for member to recover to SECONDARY state b. Stepdowntheprimary c. WaitforanothermembertobeelectedtoPRIMARY d. Upgradepreviousprimary 11. turnbackonthebalancer
  • 11. How does it work?
  • 12. Automation ≈ Self-Driving Car ● Tell it where you want to go. o It goes there ● If you steer manually? o It reroutes and goes toward your destination ● Bridge out? o It reroutes and goes toward your destination ● Want to go somewhere else? o It reroutes and goes toward your new destination
  • 13. Architecture Introduction ● One agent per machine ● Agent talks to: o MMS  instructions o Mongo  sense  control ● No agent-agent ● Single executable MMS MongoD MongoS Config Server Auto. Agent MongoD MongoS Config Server Auto. Agent
  • 14. Automation Cycle Get Instructions Inspect Cluster Adjust Cluster Sleep 30 sec
  • 15. Desired State? You tellAutomation what you want. Automation makes that happen. Desired State ≈ Self-driving car’s destination.
  • 16. What Automation Knows 1. What you want a. from MMS 2. What’s actually on the cluster a. from inspecting the cluster 3. How to do various things a. Like “start Mongod” or “init replica set” b. from MongoDB documentation c. preconditions: what has to be true before. d. postconditions: what should be true after.
  • 17. Planning ● Look at what you want vs. what you have ● If they’re the same, yay! o Check again in 30 seconds ● Else, make a plan to fix what you have o Basic robotics-style planning problem o precondition/postcondition make this work.
  • 18. Executing Plans ● Follow the plan, one move at a time. ● Each move has a bunch of actions ● Check expected vs. reality for each action o Check preconditions before doing an action o Check postconditions afterwards o If they’re different, go make a new plan! ● How could they be different? o machine crash o killing/modifying a mongo instance by hand
  • 19. Automation ● Instructions from you ● Information from your cluster ● Expertise about how to run Mongo ● Patience to get all the details right
  • 21. What is an oplog? ● A capped collection that stores an ordered history of logical writes to a MongoDB database ● Enables replication
  • 22. Why resize the oplog? 1. You may want to increase its size to accommodate a high write rate and/or high replication lags to secondaries. 2. You may want to decrease its size to save on disk space.
  • 23. Resizing the Oplog with Automation
  • 24. How to resize an oplog 1. Shutdown a replica set member 2. Start the member in standalone mode, listening on a different port than it usually does 3. Back up the last oplog entry 4. Drop the oplog 5. Recreate the oplog with its new size 6. Insert the saved oplog entry 7. Stop the member 8. Start the member with normal options 9. Repeat Steps 1 - 8 for each of the remaining replica set members
  • 25. Or just have Automation do it
  • 27. MongoDB Management Service Engineering Team, MongoDB Cailin Nelson, Cadran Cowansage, Louisa Berger, Bard Bloom, Tim Olsen #MongoDBWorld Questions

Editor's Notes

  1. Hello, my name is Cailin and I am the VP Engineering for the MongoDB Management Service (or MMS). Many of you have probably seen or used MMS in the past, but for those of you that have not, let’s start with a quick review of what MMS is about. MMS is the MongoDB Management Service - a web-based management application that makes it easy and reliable to run MongoDB at scale. There are three components: Monitoring, Backup and now Automation. MMS can be used in the Cloud (mms.mongodb.com) or installed in your data center. Automation is a big addition to MMS, and we have a great team working on it. For today’s talk we thought it would be fun to introduce you not only to the product, but also to the engineers that made it happen. As this talk progresses, I’ll be introducing them to you along the way.
  2. Many MongoDB operations at scale require following a fairly detailed number of steps, that scale linearly with the number of nodes in your cluster. I’m thinking about operations like deploying a new sharded cluster, upgrading a sharded cluster, or resizing the oplog for all nodes in a replica set. Some of these are easier to script (or manage with Chef/Puppet) than others. For example, deploying a new sharded cluster is relatively fun and easy to script. We like to joke that every MongoDB engineer has written their own “bring up a sharded cluster on EC2 script”.... twice. However, other operations such as upgrading a sharded cluster are much more difficult to script. There are many steps along the way that require you to wait for another process to achieve some particular state, and writing a script or Chef/Puppet config that handles the waiting and state checking is relatively challenging. The other difficulty in scripting something like a sharded cluster upgrade is handling things that go wrong. What if one node in one shard of your 10 shard cluster is down at the time you wish to upgrade? Do you stop the whole process and bring it back up, then try again? Do you skip it for now? If you skip it, how do you ensure that you remember to come back and upgrade it later? MMS Automation is designed to handle all these complex interactions and failure modes, therefore removing a lot of the work in operating MongoDB. What you are about to see is dramatically different from the way things are today.
  3. Now its time to dig in to the specifics. This talk is organized into a series of demos. In order to ensure we get through everything we’ve planned, we’re going to ask you to hold your questions to the end!
  4. For our first demo, I’d like to introduce Cadran Cowansage, who built our integration with Amazon AWS. Cadran joined MongoDB as a veteran of several NYC startups - and has built the component of this system which is optimized for getting startups off the ground and onto MongoDB faster. Cadran will demonstrate using MMS Automation with MMS Provisioning to build a sharded cluster on AWS entirely via the MMS API.
  5. Thank-you, Cadran. For this section of our talk, I’d like to introduce Louisa Berger. Louisa joined MongoDB two years ago, and has been working on MMS Automation ever since. Louisa has watched this project grow from a prototype to its current state on the cusp of release. Louisa is going to continue from where Cadran left off…. now that you have a cluster up and running, how do you manage its lifecycle from here.
  6. Steps To Upgrade : - Run db.upgradeCheckAllDBs() to check data set for compatibility - Resolve any incompatibilites in your deployment - Upgrade authentication model : - ensure that at least one user exists in the admin db - upgrade client libs before any mongod or mongos instances - upgrade all mongoDB processes before upgrading the auth model - Download mongoDB binaries for 2.6 - For each RS : - For a cluster : 1. disable the balancer 2. upgrade the cluster’s meta data 3. wait for each mongos to exit on completion of --upgrade 4. upgrade all mongos processes 5. upgrade each config server, one at a time 6. upgrade each shard, one at a time : - upgrade secondaries, one at a time: - shut down the mongod - replace the 2.4 binary with the 2.6 binary - restart mongo - wait for member to recover to SECONDARY state - step down the primary - wait for another member to be elected to PRIMARY - shut down previous primary - replace the 2.4 binary with the 2.6 binary - restart mongo - wait for member to recover to SECONDARY state 7. turn back on the balancer
  7. Now that we’ve had a quick taste of what MMS Automation can do, we’re going to pause for a peek under hood and talk a little bit about how this works. For this section of our presentation, I’d like to introduce Bard Bloom. Bard joined MongoDB to work on MMS Automation after 18 years at IBM Research. Bard’s work has focused on the central planning machinery that composes the brains of MMS Automation.
  8. Personal note -- how cool it is to be doing AI for MongoDB!
  9. For our last demo, I’d like to introduce Tim Olsen. Tim joined MongoDB and this project about a year ago. Tim previously worked at some of the internet’s largest content providers, including Akamai and Limewire. I like to think of Tim as our team specialist in “Things That Go Wrong In The Real World”. But, since nothing could possibly go wrong in a live demo, Tim is instead going to demonstrate a feature that shows how MMS Automation makes real life with MongoDB quite a bit easier.
  10. One of the more amusing features of running MMS is that we use MMS… to run MMS. That is, we use MMS to Monitor the MongoDBs in which your MMS data is stored. We use MMS to Backup these MongoDBs. And now, we use Automation to manage these MongoDBs. The MMS system is composed of many replica sets, and one large sharded cluster which processes roughly 3 billion updates per day. We try to keep MMS on the latest and greatest versions of MongoDB, but today I’ve purposefully let one replica set fall a version behind so that we could have brief demo of how we run MongoDB… at MongoDB.
  11. And that concludes our demonstration of MMS Automation. At this point, we’ll take questions.