SlideShare a Scribd company logo
1 of 39
Using Puppet, Ansible and Ops
Manager to Create Your Own MongoDB
As a Service
Mike Grayson, Paychex
MongoDB World ‘18
Agenda
• About Paychex
• The Challenge
• About Me
• How We attacked it
• Next Steps
2
About Paychex
Paychex is a leading provider of integrated human
capital management solutions for payroll, HR,
retirement, and insurance services. Backed by 46
years of industry expertise, Paychex serves
approximately 605,000 payroll client as of May 31,
2017, across more then 100 locations and pays one
out of every 12 American private sector employees.
3
About The Paychex Environment
4
IT Operations – Data Services
• Operations
• Applications
• Platform
• 3 data centers, 2 regions
• Multiple database and data platforms
supported
• 100+ applications supported
Database Footprint
• ~35,000 databases
• ~1500 VMs
• ~250 physical hosts
• ~100 MongoDB databases
The Challenge – IT Edition
• More and more requests for MongoDB Infrastructure
• Partially automated build
• Build more and keep things:
• Standard, Easy for Operations, Monitored, Low Risk
5
The Challenge – Business Edition
The Challenge – Business Edition Cont’d
The Challenge – Business Edition Cont’d
Manual Flow
• End to End Time: 1-2 weeks!
The Manual Way
• Development sends in a ticket requesting DB
• Database Engineer reviews Solutions Architecture with Solutions Leads
• Database Engineer requests VM(s) from Systems Team
• VM(s) Provisioned by Systems Team
• Database(s) built, users added, custom roles added, Monitoring, Backups, etc. setup
• Turn Around Time 1-2 weeks, MongoDB SME (me) involved in just about every build
About Me
• Using MongoDB for about 4 years
• MongoDB Master 2016-present
• Twitter: @mikegray831
• Blog: https://mongomike.wordpress.com/blog
• I don’t scale!
11
If at first you don’t succeed….
Putting all the automation
logic in Puppet
…try, try again
Putting all the automation
logic in Ansible
Problems remain
• Upgrades still manual
• Brittle Solutions
• Integrations remain manual
• Engineer Apathy “It’s still faster than
Oracle builds”
Solution
• MongoDB as a Service
• However:
• Different applications have different requirements and even different replica set design
patterns
• No standard way of building MongoDBaaS
15
The Automated Way
+
+
Automation Flow
End to End Time: 15-25 minutes depending on Replica Set size
What is Puppet?
• configuration management tool
• manage your systems declaratively with a Ruby-like language, “Infrastructure
as Code”
• create manifests that can be pushed to many hosts via declared host groups
18
When We Use Puppet
• Configuration management
• Making sure a service is always “up”
• Keep hosts within a group of hosts using the same configuration
19
When We Don’t Use Puppet
20
• When Orchestration is needed
• Managing Database RPMs
How we use Puppet
• OS Configuration
• Disable Transparent Huge Pages (THP)
• Create the mongod user
• Create data mounts with correct permissions
• Ops Manager Automation Agent Install
21
Puppet Code Samples
22
Puppet Code Samples Cont’d
23
What is Ansible?
• Automation for everyone
• Devops made simple
• Agentless
24
When We Use Ansible
• When order matters
• When a process needs to occur once,
and only once
• With immutable server architecture
(create, destroy, replace with no
interruption)
• Integrations needed
25
How We Use Ansible
• API Call to Ops Manager to build MongoDB
26
Ansible Code Examples
27
Ansible Code Examples Cont’d
28
Ansible Code Examples Cont’d
29
What is MongoDB Ops Manager
30
• Best Way to run MongoDB
• Management
• Automation Enabler
When We Use Ops Manager
• Provisioning
• Monitoring
• Backups
31
How We Use Ops Manager
32
• Add Databases
• Setup Backups
• Create Users/Roles
• Upgrades
Tying it all together with Orchestration
Orchestration Options We Considered
• Ansible Tower
• BMC Atrium Orchestrator
34
What We Plan To Use For Orchestration
• Ansible – AWX (Open Source Ansible Tower)
35
Future
• Use Ansible to setup backups and snapshot schedules in Ops Manager
• Use Ansible to automate Ops Manager Restore Jobs
• Service Now Integration with AWX
• OpenShift/OpenStack Integration
• Public Cloud Integration
36
Lessons Learned
• Use the right tool or tools for the job!
• There’s always room for improvement
• Make the process truly DevOps, involve
Development early and often
Summary
• Automation is an iterative process
• Work with the business and development to become a business enabler
• Get creative!
Questions?
39

More Related Content

What's hot

App Services - Connecting the dots of Web Mobile and Integration_published
App Services - Connecting the dots of Web Mobile and Integration_publishedApp Services - Connecting the dots of Web Mobile and Integration_published
App Services - Connecting the dots of Web Mobile and Integration_published
Wagner Silveira
 

What's hot (18)

Serverless Real-time Tracking & Analysis
Serverless Real-time Tracking & AnalysisServerless Real-time Tracking & Analysis
Serverless Real-time Tracking & Analysis
 
App Services - Connecting the dots of Web Mobile and Integration_published
App Services - Connecting the dots of Web Mobile and Integration_publishedApp Services - Connecting the dots of Web Mobile and Integration_published
App Services - Connecting the dots of Web Mobile and Integration_published
 
Consolidating services with middleware - NDC London 2017
Consolidating services with middleware - NDC London 2017Consolidating services with middleware - NDC London 2017
Consolidating services with middleware - NDC London 2017
 
Serving Files In Azure
Serving Files In AzureServing Files In Azure
Serving Files In Azure
 
Serverless Code Deployments in AWS
Serverless Code Deployments in AWSServerless Code Deployments in AWS
Serverless Code Deployments in AWS
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
Real-Time Vote Platform Benchmark
Real-Time Vote Platform BenchmarkReal-Time Vote Platform Benchmark
Real-Time Vote Platform Benchmark
 
Scaling Marketplace to 10,000 Add-Ons - Arun Bhalla
Scaling Marketplace to 10,000 Add-Ons  - Arun BhallaScaling Marketplace to 10,000 Add-Ons  - Arun Bhalla
Scaling Marketplace to 10,000 Add-Ons - Arun Bhalla
 
What is new in pass summit 2014
What is new in pass summit 2014What is new in pass summit 2014
What is new in pass summit 2014
 
Intro to.net core 20170111
Intro to.net core   20170111Intro to.net core   20170111
Intro to.net core 20170111
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
Async streams
Async streamsAsync streams
Async streams
 
Automating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed ServicesAutomating Cloud Operations: Tips from Managed Services
Automating Cloud Operations: Tips from Managed Services
 
Leveraging OpenStack at Scale: How the Elastic Cloud Drives Innovation Velocity
Leveraging OpenStack at Scale: How the Elastic Cloud Drives Innovation VelocityLeveraging OpenStack at Scale: How the Elastic Cloud Drives Innovation Velocity
Leveraging OpenStack at Scale: How the Elastic Cloud Drives Innovation Velocity
 
Rapid Prototyping for Big Data with AWS
Rapid Prototyping for Big Data with AWS Rapid Prototyping for Big Data with AWS
Rapid Prototyping for Big Data with AWS
 
The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018
The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018
The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018
 
Serverless CQRS in Azure!
Serverless CQRS in Azure!Serverless CQRS in Azure!
Serverless CQRS in Azure!
 
Containerization: The DevOps Revolution
Containerization: The DevOps Revolution Containerization: The DevOps Revolution
Containerization: The DevOps Revolution
 

Similar to MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own On-Premise MongoDB as a Service

Similar to MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own On-Premise MongoDB as a Service (20)

MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...
MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...
MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...
 
An Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops ManagerAn Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops Manager
 
SigOpt at MLconf - Reducing Operational Barriers to Model Training
SigOpt at MLconf - Reducing Operational Barriers to Model TrainingSigOpt at MLconf - Reducing Operational Barriers to Model Training
SigOpt at MLconf - Reducing Operational Barriers to Model Training
 
Alexandra johnson reducing operational barriers to model training
Alexandra johnson   reducing operational barriers to model trainingAlexandra johnson   reducing operational barriers to model training
Alexandra johnson reducing operational barriers to model training
 
Urbanesia - Open Source & Microsoft
Urbanesia - Open Source & MicrosoftUrbanesia - Open Source & Microsoft
Urbanesia - Open Source & Microsoft
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
 
The world is not black and white – Impact of decisions over the lifetime of a...
The world is not black and white – Impact of decisions over the lifetime of a...The world is not black and white – Impact of decisions over the lifetime of a...
The world is not black and white – Impact of decisions over the lifetime of a...
 
Integration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesIntegration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob Davies
 
Five Ways to Fix Your SQL Server Dev-Test Problems
Five Ways to Fix Your SQL Server Dev-Test Problems Five Ways to Fix Your SQL Server Dev-Test Problems
Five Ways to Fix Your SQL Server Dev-Test Problems
 
Big ideas in small packages - How microservices helped us to scale our vision
Big ideas in small packages  - How microservices helped us to scale our visionBig ideas in small packages  - How microservices helped us to scale our vision
Big ideas in small packages - How microservices helped us to scale our vision
 
Couchbase Connect 2016
Couchbase Connect 2016Couchbase Connect 2016
Couchbase Connect 2016
 
Enterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a ServiceEnterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a Service
 
Modern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for InnovationModern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for Innovation
 
Ansible, MongoDB Ops Manager and AWS v1.1
Ansible, MongoDB Ops Manager and AWS v1.1Ansible, MongoDB Ops Manager and AWS v1.1
Ansible, MongoDB Ops Manager and AWS v1.1
 
Performance optimisations PHP meetup Rotterdam
Performance optimisations PHP meetup RotterdamPerformance optimisations PHP meetup Rotterdam
Performance optimisations PHP meetup Rotterdam
 
Infrastructure As Code
Infrastructure As CodeInfrastructure As Code
Infrastructure As Code
 
DevOps at Tradeshift - AWS community day nordics
DevOps at Tradeshift - AWS community day nordicsDevOps at Tradeshift - AWS community day nordics
DevOps at Tradeshift - AWS community day nordics
 
MongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDB
MongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDBMongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDB
MongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDB
 

More from 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

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 

MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own On-Premise MongoDB as a Service

  • 1. Using Puppet, Ansible and Ops Manager to Create Your Own MongoDB As a Service Mike Grayson, Paychex MongoDB World ‘18
  • 2. Agenda • About Paychex • The Challenge • About Me • How We attacked it • Next Steps 2
  • 3. About Paychex Paychex is a leading provider of integrated human capital management solutions for payroll, HR, retirement, and insurance services. Backed by 46 years of industry expertise, Paychex serves approximately 605,000 payroll client as of May 31, 2017, across more then 100 locations and pays one out of every 12 American private sector employees. 3
  • 4. About The Paychex Environment 4 IT Operations – Data Services • Operations • Applications • Platform • 3 data centers, 2 regions • Multiple database and data platforms supported • 100+ applications supported Database Footprint • ~35,000 databases • ~1500 VMs • ~250 physical hosts • ~100 MongoDB databases
  • 5. The Challenge – IT Edition • More and more requests for MongoDB Infrastructure • Partially automated build • Build more and keep things: • Standard, Easy for Operations, Monitored, Low Risk 5
  • 6. The Challenge – Business Edition
  • 7. The Challenge – Business Edition Cont’d
  • 8. The Challenge – Business Edition Cont’d
  • 9. Manual Flow • End to End Time: 1-2 weeks!
  • 10. The Manual Way • Development sends in a ticket requesting DB • Database Engineer reviews Solutions Architecture with Solutions Leads • Database Engineer requests VM(s) from Systems Team • VM(s) Provisioned by Systems Team • Database(s) built, users added, custom roles added, Monitoring, Backups, etc. setup • Turn Around Time 1-2 weeks, MongoDB SME (me) involved in just about every build
  • 11. About Me • Using MongoDB for about 4 years • MongoDB Master 2016-present • Twitter: @mikegray831 • Blog: https://mongomike.wordpress.com/blog • I don’t scale! 11
  • 12. If at first you don’t succeed…. Putting all the automation logic in Puppet
  • 13. …try, try again Putting all the automation logic in Ansible
  • 14. Problems remain • Upgrades still manual • Brittle Solutions • Integrations remain manual • Engineer Apathy “It’s still faster than Oracle builds”
  • 15. Solution • MongoDB as a Service • However: • Different applications have different requirements and even different replica set design patterns • No standard way of building MongoDBaaS 15
  • 17. Automation Flow End to End Time: 15-25 minutes depending on Replica Set size
  • 18. What is Puppet? • configuration management tool • manage your systems declaratively with a Ruby-like language, “Infrastructure as Code” • create manifests that can be pushed to many hosts via declared host groups 18
  • 19. When We Use Puppet • Configuration management • Making sure a service is always “up” • Keep hosts within a group of hosts using the same configuration 19
  • 20. When We Don’t Use Puppet 20 • When Orchestration is needed • Managing Database RPMs
  • 21. How we use Puppet • OS Configuration • Disable Transparent Huge Pages (THP) • Create the mongod user • Create data mounts with correct permissions • Ops Manager Automation Agent Install 21
  • 23. Puppet Code Samples Cont’d 23
  • 24. What is Ansible? • Automation for everyone • Devops made simple • Agentless 24
  • 25. When We Use Ansible • When order matters • When a process needs to occur once, and only once • With immutable server architecture (create, destroy, replace with no interruption) • Integrations needed 25
  • 26. How We Use Ansible • API Call to Ops Manager to build MongoDB 26
  • 28. Ansible Code Examples Cont’d 28
  • 29. Ansible Code Examples Cont’d 29
  • 30. What is MongoDB Ops Manager 30 • Best Way to run MongoDB • Management • Automation Enabler
  • 31. When We Use Ops Manager • Provisioning • Monitoring • Backups 31
  • 32. How We Use Ops Manager 32 • Add Databases • Setup Backups • Create Users/Roles • Upgrades
  • 33. Tying it all together with Orchestration
  • 34. Orchestration Options We Considered • Ansible Tower • BMC Atrium Orchestrator 34
  • 35. What We Plan To Use For Orchestration • Ansible – AWX (Open Source Ansible Tower) 35
  • 36. Future • Use Ansible to setup backups and snapshot schedules in Ops Manager • Use Ansible to automate Ops Manager Restore Jobs • Service Now Integration with AWX • OpenShift/OpenStack Integration • Public Cloud Integration 36
  • 37. Lessons Learned • Use the right tool or tools for the job! • There’s always room for improvement • Make the process truly DevOps, involve Development early and often
  • 38. Summary • Automation is an iterative process • Work with the business and development to become a business enabler • Get creative!

Editor's Notes

  1. Mention Data Center configuration, 3 data centers, 2 regions
  2. Why was the build partially automated, what challenges did we face? Increase # of databases per engineer
  3. If systems fail, people don’t get paid, your taxes don’t get sent to the IRS, your 401k changes won’t get sent.
  4. Talk through time to market challenges, #2 in Payroll and trying to close gap
  5. Convey that if one part was done incorrectly or a step missed, delays could cause further delays Rife with potential for human errors New project (TNG) required entire app stack, including infrastructure, to be completely automated You can’t scale me!
  6. MongoDB Advocacy Hub, Beta Tester
  7. Why did this fail? What did we learn?
  8. Why did this fail? What did we learn?
  9. Upgrades had to be done via YUM repositories
  10. What are some of the different requirements Azure Arbiter, secondary reads in region
  11. Ticket > Solutions Architecture Review > Flow > Test Out
  12. Whare are some successes we’ve had with these specific points
  13. Why did we choose not to use Puppet for these, what lessons did we learn to come to these conclusions Database RPMs stored in YUM repo, sync’ed from MongoDB’s repo
  14. Explain what this code accomplishes
  15. Explain what this code accomplishes
  16. Why is Ansible easier to learn How does it makes Devops simple? (Same language as Dev, etc.) What are the benefits of Agentless Architecture (Security Vulnerabilities, etc.)
  17. Why do we use Ansible for the above We don’t use Ansible for Config Management, because Puppet is better at it, explain why
  18. What does this code do? (calls to Ops Manager API to start build process)
  19. What does this code do? (calls to Ops Manager API to start build process)
  20. What does this code do? (calls to Ops Manager API to start build process)
  21. Why was Ops Manager a better choice for these then Ansible or Puppet?
  22. Speak on the importance of orchestration
  23. Why did we pick these two (existing relationships) What was our evaluation criteria
  24. Why did we choose open source Tower
  25. Why are these important to us