SlideShare a Scribd company logo
MongoDB server provisioning:
From 2 months… to 2 minutes
Chetan Gavankar, DB Executive Advisor@ Anthem
September 2018
22
Topics to Cover
• MongoDB in Anthem
• Demand for quick deployment
• Road Map to achieve our goal
• How we did it
• Lesson learned
• Future Ideas
• Q/A
MongoDB in Anthem
• Anthem as an organization
– 2nd largest HealthCare company
– Lots of development using SQL and NoSQL
• Why MongoDB
a) Flexible schema design
b) High availability
• From few serves to 200 servers in short time
3
4
Demand for quick deployment
Current Process (1-2 months)
Mongodb
Server
App team
request
server Work in
Take
Process to
acquire
HW
Request to
create all
IDs
Verify HW
configurati
on
OS setup
and
verificatio
n
Firewall
/Port
setup
Centrify
setup
Install
MongoDB
Setup Ops
manager
DBA checklist
5
Demand for quick deployment
Proposed Process (2 minutes)
Mongodb
Server
App team
request server
MongoDB
server
delivered from
Ops manager
server pool
Work in Take
Process
acquired new
servers
Servers are
added back to
server pool
6
What’s the advantage of Automation
• Faster delivery of servers to customers i.e. happy customers
• Consistent setup when delivering these servers
• DBA efficiency
Time and effort saved to build these servers can be utilized to work closely with application
team on design review , performance testing and more interesting things for DBA to work on
.
7
How We did it
• Automation of Server Build process
• Ops Manager’s Server Pool feature
• Automation Software using Ops Manager API and Python
8
Automation of Server Build process
• Standard offering
– We developed SPO (server image) which allows to build servers with specific T-shirt sizes i.e.
predefined CPU/MEMORY/STORAGE (mount points)/OS
• Scripted OS configuration
– The script performs OS setup as recommended in MongoDB Production notes
https://docs.mongodb.com/manual/administration/production-notes
• No more individual firewall rules!
– We created a Firewall group for the given VLAN so required ports are open to allow
communications between DB servers and Ops Managers and within DB server itself
• Minimizing human intervention
– By the time servers are delivered to DBA team only manual process is to install ops manager
automation agent and edit the server pool configuration file (this also we will automate
soon)
9
Ops Manager Server Pool Feature
10
Ops Manager Server Pool Feature
Custom user defined properties
(stored in the pool properties file on each host)
11
Automation Software
• Ops Manager REST API
– Gives incredible flexibility in building scripts/software to manage MongoDB deployments
• Python
– Easy to learn programming language
– OOO development
– Package to handle REST API calls
12
Single Command to Deploy
A single command will create new Group in Ops manager , bind servers to new group depending on the
deployment topology and characteristics selected , install MongoDB version selected , setup monitoring ,
setup alerts , setup backup and put DB servers under Ops manager Automation …and bring you coffee and
fresh milk
python maintenance/creategroupanddeploy.py
--opsmgrUri http://***.**.com:80 --opsmgrapiuser <email user id> --opsmgrapikey ***
--organizationId 5af1482f99c8472f18541146
--groupName "FAMRTEST01"
--environments DEV
--deploymentTopology 'single-node'
--tShirtSize small --chipset intel --location dc1
--loglevel debug
--mongoDbVersion "3.6.5“
--deploymentName "farmDV01"
--disableAlerts --disableBackup
13
Originally just a small single script
Automation SW Architecture Diagram
14
Ops manager REST API - Example
15
Calling Ops Manager API from Python - Example
import requests
Connector = OpsMgrConnector(args.opsMgrUri, args.opsMgrApiUser, args.opsMgrApiKey)
return creategroup(args)
_________________________________________________________________________________
def creategroup(args):
return addGroup(args.opsMgrUri, args.groupName, environmentType, organizationId)
def addGroup(opsMgrUri, groupName, groupType, organizationId):
addGroupResultJson = opsMgrConnector.addGroup(newGroupName, organizationId)
def addGroup(self, newGroupName, organizationId):
payload = { "name" : newGroupName, "orgId" : organizationId }
return self.post("{}/groups".format(self.apiURL), payload)
def post(self, url, payload):
result = requests.post(url, json=payload, auth=self.auth).json()
return result
16
MongoDB Server Deployed in Ops manager
17
Lesson Learned
• DNS Caching
– Nontrivial issues when DNS queries are taking long time
• Lots of testing
– Different test cases
– Different HW such as Intel , Power , Private Cloud, etc.
• Non-technical
– Project planning and roadmap is a must
– Everyone involved should understand project goals and individual responsibilities
18
Future Ideas
• More automation
– Alert templates
• Explore integration with other automation/orchestration tools
– Chef, Puppet, Ansible
– Kubernetes
19
Yes it is possible , we did it and All Clicked
Faster delivery of servers to customers i.e. happy customers
 Consistent setup when delivering these servers
 Time saved to build these servers can be utilized to work closely with application team
on design review , performance testing and more interesting things for DBA to work on .
Automation is flexible enough to be deployed on other platforms
20
Q/A
Chetan Gavankar, 2018

More Related Content

What's hot (20)

PDF
What is new in PostgreSQL 14?
Mydbops
 
PPTX
JBoss AS 7
C2B2 Consulting
 
PDF
Learning MySQL 5.7
Jervin Real
 
PPTX
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
Sencha
 
PPT
Desired state-configuration-ravikanth-august-2013-vtc india
Ravikanth Chaganti
 
PPTX
Osgi based cloud system architecture - Open Cloud Engine
uEngine Solutions
 
PPTX
PyData London 2015 - How We Turned EverythingMe Into a Data Driven Company
Arik Fraimovich
 
PPSX
Server Side Rendering, caching and performance
Ateev Chopra
 
PDF
Configuring MongoDB HA Replica Set on AWS EC2
ShepHertz
 
PDF
Cfml features modern_coding
ColdFusionConference
 
PPTX
Power shell for sp admins
Rick Taylor
 
PDF
Database Tools by Skype
elliando dias
 
PDF
Java troubleshooting thread dump
ejlp12
 
PPTX
Spring cloud config
Shubhani Jain
 
PPTX
Powerhsell dsc for chef veterans
Damien Caro
 
PPTX
SQL Server vs Postgres
chandra sekhar pathivada , PMP,ITIL,MCTS
 
PDF
MySQL shell and It's utilities - Praveen GR (Mydbops Team)
Mydbops
 
KEY
Using Apache as an Application Server
Phil Windley
 
What is new in PostgreSQL 14?
Mydbops
 
JBoss AS 7
C2B2 Consulting
 
Learning MySQL 5.7
Jervin Real
 
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe
Sencha
 
Desired state-configuration-ravikanth-august-2013-vtc india
Ravikanth Chaganti
 
Osgi based cloud system architecture - Open Cloud Engine
uEngine Solutions
 
PyData London 2015 - How We Turned EverythingMe Into a Data Driven Company
Arik Fraimovich
 
Server Side Rendering, caching and performance
Ateev Chopra
 
Configuring MongoDB HA Replica Set on AWS EC2
ShepHertz
 
Cfml features modern_coding
ColdFusionConference
 
Power shell for sp admins
Rick Taylor
 
Database Tools by Skype
elliando dias
 
Java troubleshooting thread dump
ejlp12
 
Spring cloud config
Shubhani Jain
 
Powerhsell dsc for chef veterans
Damien Caro
 
MySQL shell and It's utilities - Praveen GR (Mydbops Team)
Mydbops
 
Using Apache as an Application Server
Phil Windley
 

Similar to MongoDB Server Provisioning - From 2 Months to 2 Minutes (20)

PDF
Introducing MongoDB 2.6
MongoDB
 
PPTX
Mongo db - How we use Go and MongoDB by Sam Helman
Hakka Labs
 
PPTX
MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...
MongoDB
 
PDF
Porting Rails Apps to High Availability Systems
Marcelo Pinheiro
 
PDF
MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...
ronwarshawsky
 
PPTX
An Introduction to MongoDB Ops Manager
MongoDB
 
PDF
Priming Your Teams For Microservice Deployment to the Cloud
Matt Callanan
 
PDF
Ansible, MongoDB Ops Manager and AWS v1.1
Michael Lynn
 
PPTX
Webinar: Best Practices for Upgrading to MongoDB 3.2
Dana Elisabeth Groce
 
PDF
How to upgrade to MongoDB 4.0 - Percona Europe 2018
Antonios Giannopoulos
 
PPTX
Automate, monitor and manage MongoDB cluster deployment
Ashnikbiz
 
PDF
Serve Meals, Not Ingredients - ChefConf 2015
Chef
 
PDF
Serve Meals, Not Ingredients (ChefConf 2015)
ThirdWaveInsights
 
PPTX
Mastering MongoDB on Kubernetes, the power of operators
DoKC
 
PPT
How To Scale v2
Georgio_1999
 
PPT
Large Scale Log collection using LogStash & mongoDB
Gaurav Bhardwaj
 
PPTX
Introducing Ops Manager
MongoDB
 
PDF
Serverless Computing
Anand Gupta
 
PPTX
Ops manager webinar mar 5, 2015
MongoDB
 
PPTX
Premiers pas avec Ops Manager
MongoDB
 
Introducing MongoDB 2.6
MongoDB
 
Mongo db - How we use Go and MongoDB by Sam Helman
Hakka Labs
 
MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...
MongoDB
 
Porting Rails Apps to High Availability Systems
Marcelo Pinheiro
 
MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...
ronwarshawsky
 
An Introduction to MongoDB Ops Manager
MongoDB
 
Priming Your Teams For Microservice Deployment to the Cloud
Matt Callanan
 
Ansible, MongoDB Ops Manager and AWS v1.1
Michael Lynn
 
Webinar: Best Practices for Upgrading to MongoDB 3.2
Dana Elisabeth Groce
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
Antonios Giannopoulos
 
Automate, monitor and manage MongoDB cluster deployment
Ashnikbiz
 
Serve Meals, Not Ingredients - ChefConf 2015
Chef
 
Serve Meals, Not Ingredients (ChefConf 2015)
ThirdWaveInsights
 
Mastering MongoDB on Kubernetes, the power of operators
DoKC
 
How To Scale v2
Georgio_1999
 
Large Scale Log collection using LogStash & mongoDB
Gaurav Bhardwaj
 
Introducing Ops Manager
MongoDB
 
Serverless Computing
Anand Gupta
 
Ops manager webinar mar 5, 2015
MongoDB
 
Premiers pas avec Ops Manager
MongoDB
 
Ad

More from MongoDB (20)

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

Recently uploaded (20)

PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Python basic programing language for automation
DanialHabibi2
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 

MongoDB Server Provisioning - From 2 Months to 2 Minutes

  • 1. MongoDB server provisioning: From 2 months… to 2 minutes Chetan Gavankar, DB Executive Advisor@ Anthem September 2018
  • 2. 22 Topics to Cover • MongoDB in Anthem • Demand for quick deployment • Road Map to achieve our goal • How we did it • Lesson learned • Future Ideas • Q/A
  • 3. MongoDB in Anthem • Anthem as an organization – 2nd largest HealthCare company – Lots of development using SQL and NoSQL • Why MongoDB a) Flexible schema design b) High availability • From few serves to 200 servers in short time 3
  • 4. 4 Demand for quick deployment Current Process (1-2 months) Mongodb Server App team request server Work in Take Process to acquire HW Request to create all IDs Verify HW configurati on OS setup and verificatio n Firewall /Port setup Centrify setup Install MongoDB Setup Ops manager DBA checklist
  • 5. 5 Demand for quick deployment Proposed Process (2 minutes) Mongodb Server App team request server MongoDB server delivered from Ops manager server pool Work in Take Process acquired new servers Servers are added back to server pool
  • 6. 6 What’s the advantage of Automation • Faster delivery of servers to customers i.e. happy customers • Consistent setup when delivering these servers • DBA efficiency Time and effort saved to build these servers can be utilized to work closely with application team on design review , performance testing and more interesting things for DBA to work on .
  • 7. 7 How We did it • Automation of Server Build process • Ops Manager’s Server Pool feature • Automation Software using Ops Manager API and Python
  • 8. 8 Automation of Server Build process • Standard offering – We developed SPO (server image) which allows to build servers with specific T-shirt sizes i.e. predefined CPU/MEMORY/STORAGE (mount points)/OS • Scripted OS configuration – The script performs OS setup as recommended in MongoDB Production notes https://docs.mongodb.com/manual/administration/production-notes • No more individual firewall rules! – We created a Firewall group for the given VLAN so required ports are open to allow communications between DB servers and Ops Managers and within DB server itself • Minimizing human intervention – By the time servers are delivered to DBA team only manual process is to install ops manager automation agent and edit the server pool configuration file (this also we will automate soon)
  • 9. 9 Ops Manager Server Pool Feature
  • 10. 10 Ops Manager Server Pool Feature Custom user defined properties (stored in the pool properties file on each host)
  • 11. 11 Automation Software • Ops Manager REST API – Gives incredible flexibility in building scripts/software to manage MongoDB deployments • Python – Easy to learn programming language – OOO development – Package to handle REST API calls
  • 12. 12 Single Command to Deploy A single command will create new Group in Ops manager , bind servers to new group depending on the deployment topology and characteristics selected , install MongoDB version selected , setup monitoring , setup alerts , setup backup and put DB servers under Ops manager Automation …and bring you coffee and fresh milk python maintenance/creategroupanddeploy.py --opsmgrUri http://***.**.com:80 --opsmgrapiuser <email user id> --opsmgrapikey *** --organizationId 5af1482f99c8472f18541146 --groupName "FAMRTEST01" --environments DEV --deploymentTopology 'single-node' --tShirtSize small --chipset intel --location dc1 --loglevel debug --mongoDbVersion "3.6.5“ --deploymentName "farmDV01" --disableAlerts --disableBackup
  • 13. 13 Originally just a small single script Automation SW Architecture Diagram
  • 14. 14 Ops manager REST API - Example
  • 15. 15 Calling Ops Manager API from Python - Example import requests Connector = OpsMgrConnector(args.opsMgrUri, args.opsMgrApiUser, args.opsMgrApiKey) return creategroup(args) _________________________________________________________________________________ def creategroup(args): return addGroup(args.opsMgrUri, args.groupName, environmentType, organizationId) def addGroup(opsMgrUri, groupName, groupType, organizationId): addGroupResultJson = opsMgrConnector.addGroup(newGroupName, organizationId) def addGroup(self, newGroupName, organizationId): payload = { "name" : newGroupName, "orgId" : organizationId } return self.post("{}/groups".format(self.apiURL), payload) def post(self, url, payload): result = requests.post(url, json=payload, auth=self.auth).json() return result
  • 16. 16 MongoDB Server Deployed in Ops manager
  • 17. 17 Lesson Learned • DNS Caching – Nontrivial issues when DNS queries are taking long time • Lots of testing – Different test cases – Different HW such as Intel , Power , Private Cloud, etc. • Non-technical – Project planning and roadmap is a must – Everyone involved should understand project goals and individual responsibilities
  • 18. 18 Future Ideas • More automation – Alert templates • Explore integration with other automation/orchestration tools – Chef, Puppet, Ansible – Kubernetes
  • 19. 19 Yes it is possible , we did it and All Clicked Faster delivery of servers to customers i.e. happy customers  Consistent setup when delivering these servers  Time saved to build these servers can be utilized to work closely with application team on design review , performance testing and more interesting things for DBA to work on . Automation is flexible enough to be deployed on other platforms