SlideShare a Scribd company logo
1 of 30
Technical Considerations
   Michael A. Fiedler
Who uses MongoDB?




             2
3
Agenda
• Why MongoDB is easier to...
  • Develop
  • Operate
  • Scale




                    4
$ whoami
{
    name: "Michael A. Fiedler",
    desc: ["Systems Engineer", "SysAdmin",
           "DevOps", "that guy"],
    hist: "Building tech platforms 16+ years",
    twitter: "@mikefiedler",
    github : "@miketheman",
    website: "http://www.miketheman.net"
}




                      5
Why MongoDB?
• Easier for developers
  • Running within minutes
  • MANY drivers!




                       6
Why MongoDB?
• Easier for developers
  • Running within minutes
  • MANY drivers!




                       6
RDBMS Data Model




             7
Easier to... develop
 updated_bug = {
     _id:         "3004",
     desc:        "web page wrong color",
     status:      "resolved",
     reported_by: "michael",
     assigned_to: "ben",
     verified_by: "amelia",
     product:     "website",
     tags:       ["web", "ux", "css"]
 }
 db.bugs.save(updated_bug)

                   8
Development concepts
• JSON-like
• Flexible data model
• Data control at app layer
  • Write Concern




                      9
Typical development model
              app           Single Node




              DB


               10
Easier to... get help
• Open Source
• Rich community, examples
• 10gen offers free community support!
  • http://groups.google.com/group/mongodb-user
  • IRC: #mongodb@freenode.net




                      11
Why MongoDB?
• Easier for operations
  • minimal skill set required
  • scaling within minutes
  • automatic replica failover




                        12
Easier to... operate
•   Packages, init scripts
•   Shell helpers for admin functions
•   Docs: Admin Zone
•   Future: cookbooks and manifests




                       13
Adding fault tolerance
                app             Replica Set




                         db||
       db       DB       arb



                 14
Adding more front-end servers
       app     app    app   Replica Set




       db      DB      db


                15
Easier to... get more help
• 10gen offers:
  • consulting
  • training
  • commercial support
  • pre-production subscription (new!!)




                         16
Why MongoDB?
• Easier for growth
  • grow as you need to
  • plan your capacity
  • open source




                         17
Easier to... scale
• Distribute reads, eventual consistency
• Shard databases across multiple servers
  • Replicate sharded databases for HA
• Automatic (re)balancing of data




                      18
Slave reads, eventual consistency
       app     app     app   Replica Set,
                             slaveOk




       db      DB       db


                19
When should I scale?
• Metrics:
  • Business Performance
  • Page faults?
• More reads or writes? Access patterns?
  • Find the bottleneck!
• Shard when needed
• Do not wait until 75-80% capacity to scale



                           20
Shard the data!
       app        app           app      Sharded Replicas

      mongos      mongos        mongos




         DB       DB            DB
          db      db            db
          db      db            db
                           21
Shards can be in distinct locations
        app     app           app      Sharded Replicas

       mongos   mongos        mongos




     dc1 DB     DB            DB
     dc2 db     db            db
     dc3 db     db            db
                         22
Easier to... plan for resources




  • Database size vs. working set vs. indexes only


                       23
Easier to... see what’s going on
• Operational (or “run”) log
• free, iostat, vmstat, sar, dstat
• mongostat




• plugins for munin, ganglia
• MMS - FREE! https://mms.10gen.com

                  24
Things to consider
•   More RAM & IOPS
•   Write buffering w/o battery backup - bad!
•   Config servers are not a replica set
•   Sharded cluster: use balancer
•   Choose shard key carefully
•   Test your backups




                       25
Online resources
•   http://mongodb.org
•   http://www.10gen.com
•   Bug Tracking: https://jira.mongodb.org
•   Book: MongoDB in Action, Kyle Banker
•   Slides: Deployment Tips, Jared Rosoff
•   Video: Schema Design, Eliot Horowitz
•   Many, many more on 10gen site



                      26
Why MongoDB?
• It’s easier to:
  • develop
  • operate
  • scale
Why MongoDB?
• It’s easier to:
  • develop
  • operate
  • scale


• No, really.
Why MongoDB?
• It’s easier to:
  • develop
  • operate
  • scale


• No, really.

• Try it, I dare you. http://try.mongodb.org/

More Related Content

What's hot

Introduction to MongoDB Enterprise
Introduction to MongoDB EnterpriseIntroduction to MongoDB Enterprise
Introduction to MongoDB EnterpriseMongoDB
 
Securing Your MongoDB Deployment
Securing Your MongoDB DeploymentSecuring Your MongoDB Deployment
Securing Your MongoDB DeploymentMongoDB
 
MongoDB Introduction talk at Dr Dobbs Conference, MongoDB Evenings at Bangalo...
MongoDB Introduction talk at Dr Dobbs Conference, MongoDB Evenings at Bangalo...MongoDB Introduction talk at Dr Dobbs Conference, MongoDB Evenings at Bangalo...
MongoDB Introduction talk at Dr Dobbs Conference, MongoDB Evenings at Bangalo...Prasoon Kumar
 
MongoDB Roadmap
MongoDB RoadmapMongoDB Roadmap
MongoDB RoadmapMongoDB
 
Practical Design Patterns for Building Applications Resilient to Infrastructu...
Practical Design Patterns for Building Applications Resilient to Infrastructu...Practical Design Patterns for Building Applications Resilient to Infrastructu...
Practical Design Patterns for Building Applications Resilient to Infrastructu...MongoDB
 
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMongoDB
 
Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBJustin Smestad
 
MongoDB Internals
MongoDB InternalsMongoDB Internals
MongoDB InternalsSiraj Memon
 
Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise MongoDB
 
Webinar: A Total Cost of Ownership Analysis for MongoDB
Webinar: A Total Cost of Ownership Analysis for MongoDBWebinar: A Total Cost of Ownership Analysis for MongoDB
Webinar: A Total Cost of Ownership Analysis for MongoDBMongoDB
 
Advanced Schema Design Patterns
Advanced Schema Design Patterns Advanced Schema Design Patterns
Advanced Schema Design Patterns MongoDB
 
An Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops ManagerAn Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops ManagerMongoDB
 
Using Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your ClusterUsing Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your ClusterMongoDB
 
MMS - Monitoring, backup and management at a single click
MMS - Monitoring, backup and management at a single clickMMS - Monitoring, backup and management at a single click
MMS - Monitoring, backup and management at a single clickMatias Cascallares
 

What's hot (20)

Introduction to MongoDB Enterprise
Introduction to MongoDB EnterpriseIntroduction to MongoDB Enterprise
Introduction to MongoDB Enterprise
 
Securing Your MongoDB Deployment
Securing Your MongoDB DeploymentSecuring Your MongoDB Deployment
Securing Your MongoDB Deployment
 
NoSQL benchmarking
NoSQL benchmarkingNoSQL benchmarking
NoSQL benchmarking
 
MongoDB Introduction talk at Dr Dobbs Conference, MongoDB Evenings at Bangalo...
MongoDB Introduction talk at Dr Dobbs Conference, MongoDB Evenings at Bangalo...MongoDB Introduction talk at Dr Dobbs Conference, MongoDB Evenings at Bangalo...
MongoDB Introduction talk at Dr Dobbs Conference, MongoDB Evenings at Bangalo...
 
MongoDB Roadmap
MongoDB RoadmapMongoDB Roadmap
MongoDB Roadmap
 
What's new in MongoDB 2.6
What's new in MongoDB 2.6What's new in MongoDB 2.6
What's new in MongoDB 2.6
 
Practical Design Patterns for Building Applications Resilient to Infrastructu...
Practical Design Patterns for Building Applications Resilient to Infrastructu...Practical Design Patterns for Building Applications Resilient to Infrastructu...
Practical Design Patterns for Building Applications Resilient to Infrastructu...
 
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
MongoDB Internals
MongoDB InternalsMongoDB Internals
MongoDB Internals
 
Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise
 
Webinar: A Total Cost of Ownership Analysis for MongoDB
Webinar: A Total Cost of Ownership Analysis for MongoDBWebinar: A Total Cost of Ownership Analysis for MongoDB
Webinar: A Total Cost of Ownership Analysis for MongoDB
 
Advanced Schema Design Patterns
Advanced Schema Design Patterns Advanced Schema Design Patterns
Advanced Schema Design Patterns
 
An Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops ManagerAn Introduction to MongoDB Ops Manager
An Introduction to MongoDB Ops Manager
 
Using Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your ClusterUsing Compass to Diagnose Performance Problems in Your Cluster
Using Compass to Diagnose Performance Problems in Your Cluster
 
Cosmos db
Cosmos dbCosmos db
Cosmos db
 
MMS - Monitoring, backup and management at a single click
MMS - Monitoring, backup and management at a single clickMMS - Monitoring, backup and management at a single click
MMS - Monitoring, backup and management at a single click
 

Viewers also liked

Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDBMongoDB
 
MongoDB Indexing Constraints and Creative Schemas
MongoDB Indexing Constraints and Creative SchemasMongoDB Indexing Constraints and Creative Schemas
MongoDB Indexing Constraints and Creative SchemasMongoDB
 
Webinar: How Partners Can Benefit from our New Program (EMEA)
Webinar: How Partners Can Benefit from our New Program (EMEA)Webinar: How Partners Can Benefit from our New Program (EMEA)
Webinar: How Partners Can Benefit from our New Program (EMEA)MongoDB
 
Breaking the Oracle Tie; High Performance OLTP and Analytics Using MongoDB
Breaking the Oracle Tie; High Performance OLTP and Analytics Using MongoDBBreaking the Oracle Tie; High Performance OLTP and Analytics Using MongoDB
Breaking the Oracle Tie; High Performance OLTP and Analytics Using MongoDBMongoDB
 
Snapkite
SnapkiteSnapkite
SnapkiteMongoDB
 
Thrive With Big Data Webinar Series - Part 4: Save Money
Thrive With Big Data Webinar Series - Part 4: Save MoneyThrive With Big Data Webinar Series - Part 4: Save Money
Thrive With Big Data Webinar Series - Part 4: Save MoneyMongoDB
 

Viewers also liked (6)

Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDB
 
MongoDB Indexing Constraints and Creative Schemas
MongoDB Indexing Constraints and Creative SchemasMongoDB Indexing Constraints and Creative Schemas
MongoDB Indexing Constraints and Creative Schemas
 
Webinar: How Partners Can Benefit from our New Program (EMEA)
Webinar: How Partners Can Benefit from our New Program (EMEA)Webinar: How Partners Can Benefit from our New Program (EMEA)
Webinar: How Partners Can Benefit from our New Program (EMEA)
 
Breaking the Oracle Tie; High Performance OLTP and Analytics Using MongoDB
Breaking the Oracle Tie; High Performance OLTP and Analytics Using MongoDBBreaking the Oracle Tie; High Performance OLTP and Analytics Using MongoDB
Breaking the Oracle Tie; High Performance OLTP and Analytics Using MongoDB
 
Snapkite
SnapkiteSnapkite
Snapkite
 
Thrive With Big Data Webinar Series - Part 4: Save Money
Thrive With Big Data Webinar Series - Part 4: Save MoneyThrive With Big Data Webinar Series - Part 4: Save Money
Thrive With Big Data Webinar Series - Part 4: Save Money
 

Similar to Discover MongoDB - Israel

Introducing MongoDB into your Organization
Introducing MongoDB into your OrganizationIntroducing MongoDB into your Organization
Introducing MongoDB into your OrganizationMongoDB
 
Hybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsSteven Francia
 
Mongo db first steps with csharp
Mongo db first steps with csharpMongo db first steps with csharp
Mongo db first steps with csharpSerdar Buyuktemiz
 
Running MongoDB in the Cloud
Running MongoDB in the CloudRunning MongoDB in the Cloud
Running MongoDB in the CloudTony Tam
 
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewMongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewAntonio Pintus
 
An Evening with MongoDB Detroit 2013
An Evening with MongoDB Detroit 2013An Evening with MongoDB Detroit 2013
An Evening with MongoDB Detroit 2013MongoDB
 
Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)Chris Richardson
 
Getting Started with MongoDB at Oracle Open World 2012
Getting Started with MongoDB at Oracle Open World 2012Getting Started with MongoDB at Oracle Open World 2012
Getting Started with MongoDB at Oracle Open World 2012MongoDB
 
MongoDB in FS
MongoDB in FSMongoDB in FS
MongoDB in FSMongoDB
 
Webinar: How Banks Manage Reference Data with MongoDB
 Webinar: How Banks Manage Reference Data with MongoDB Webinar: How Banks Manage Reference Data with MongoDB
Webinar: How Banks Manage Reference Data with MongoDBMongoDB
 
Scaling MongoDB
Scaling MongoDBScaling MongoDB
Scaling MongoDBMongoDB
 
Mongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongoDB
 
SSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSSSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSEugene Lazutkin
 
NOSQL, CouchDB, and the Cloud
NOSQL, CouchDB, and the CloudNOSQL, CouchDB, and the Cloud
NOSQL, CouchDB, and the Cloudboorad
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community EngineCommunity Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community enginemathraq
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's ArchitectureTony Tam
 
Ops Jumpstart: Admin 101
Ops Jumpstart: Admin 101Ops Jumpstart: Admin 101
Ops Jumpstart: Admin 101MongoDB
 

Similar to Discover MongoDB - Israel (20)

Introducing MongoDB into your Organization
Introducing MongoDB into your OrganizationIntroducing MongoDB into your Organization
Introducing MongoDB into your Organization
 
Hybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS Applications
 
Mongo db first steps with csharp
Mongo db first steps with csharpMongo db first steps with csharp
Mongo db first steps with csharp
 
Running MongoDB in the Cloud
Running MongoDB in the CloudRunning MongoDB in the Cloud
Running MongoDB in the Cloud
 
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewMongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overview
 
Mongodb
MongodbMongodb
Mongodb
 
An Evening with MongoDB Detroit 2013
An Evening with MongoDB Detroit 2013An Evening with MongoDB Detroit 2013
An Evening with MongoDB Detroit 2013
 
Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)
 
Getting Started with MongoDB at Oracle Open World 2012
Getting Started with MongoDB at Oracle Open World 2012Getting Started with MongoDB at Oracle Open World 2012
Getting Started with MongoDB at Oracle Open World 2012
 
MongoDB in FS
MongoDB in FSMongoDB in FS
MongoDB in FS
 
Webinar: How Banks Manage Reference Data with MongoDB
 Webinar: How Banks Manage Reference Data with MongoDB Webinar: How Banks Manage Reference Data with MongoDB
Webinar: How Banks Manage Reference Data with MongoDB
 
Scaling MongoDB
Scaling MongoDBScaling MongoDB
Scaling MongoDB
 
Mongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-final
 
SSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSSSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJS
 
NOSQL, CouchDB, and the Cloud
NOSQL, CouchDB, and the CloudNOSQL, CouchDB, and the Cloud
NOSQL, CouchDB, and the Cloud
 
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
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
MongoDB
MongoDBMongoDB
MongoDB
 
Ops Jumpstart: Admin 101
Ops Jumpstart: Admin 101Ops Jumpstart: Admin 101
Ops Jumpstart: Admin 101
 

Recently uploaded

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Recently uploaded (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Discover MongoDB - Israel

  • 1. Technical Considerations Michael A. Fiedler
  • 3. 3
  • 4. Agenda • Why MongoDB is easier to... • Develop • Operate • Scale 4
  • 5. $ whoami { name: "Michael A. Fiedler", desc: ["Systems Engineer", "SysAdmin", "DevOps", "that guy"], hist: "Building tech platforms 16+ years", twitter: "@mikefiedler", github : "@miketheman", website: "http://www.miketheman.net" } 5
  • 6. Why MongoDB? • Easier for developers • Running within minutes • MANY drivers! 6
  • 7. Why MongoDB? • Easier for developers • Running within minutes • MANY drivers! 6
  • 9. Easier to... develop updated_bug = { _id: "3004", desc: "web page wrong color", status: "resolved", reported_by: "michael", assigned_to: "ben", verified_by: "amelia", product: "website", tags: ["web", "ux", "css"] } db.bugs.save(updated_bug) 8
  • 10. Development concepts • JSON-like • Flexible data model • Data control at app layer • Write Concern 9
  • 11. Typical development model app Single Node DB 10
  • 12. Easier to... get help • Open Source • Rich community, examples • 10gen offers free community support! • http://groups.google.com/group/mongodb-user • IRC: #mongodb@freenode.net 11
  • 13. Why MongoDB? • Easier for operations • minimal skill set required • scaling within minutes • automatic replica failover 12
  • 14. Easier to... operate • Packages, init scripts • Shell helpers for admin functions • Docs: Admin Zone • Future: cookbooks and manifests 13
  • 15. Adding fault tolerance app Replica Set db|| db DB arb 14
  • 16. Adding more front-end servers app app app Replica Set db DB db 15
  • 17. Easier to... get more help • 10gen offers: • consulting • training • commercial support • pre-production subscription (new!!) 16
  • 18. Why MongoDB? • Easier for growth • grow as you need to • plan your capacity • open source 17
  • 19. Easier to... scale • Distribute reads, eventual consistency • Shard databases across multiple servers • Replicate sharded databases for HA • Automatic (re)balancing of data 18
  • 20. Slave reads, eventual consistency app app app Replica Set, slaveOk db DB db 19
  • 21. When should I scale? • Metrics: • Business Performance • Page faults? • More reads or writes? Access patterns? • Find the bottleneck! • Shard when needed • Do not wait until 75-80% capacity to scale 20
  • 22. Shard the data! app app app Sharded Replicas mongos mongos mongos DB DB DB db db db db db db 21
  • 23. Shards can be in distinct locations app app app Sharded Replicas mongos mongos mongos dc1 DB DB DB dc2 db db db dc3 db db db 22
  • 24. Easier to... plan for resources • Database size vs. working set vs. indexes only 23
  • 25. Easier to... see what’s going on • Operational (or “run”) log • free, iostat, vmstat, sar, dstat • mongostat • plugins for munin, ganglia • MMS - FREE! https://mms.10gen.com 24
  • 26. Things to consider • More RAM & IOPS • Write buffering w/o battery backup - bad! • Config servers are not a replica set • Sharded cluster: use balancer • Choose shard key carefully • Test your backups 25
  • 27. Online resources • http://mongodb.org • http://www.10gen.com • Bug Tracking: https://jira.mongodb.org • Book: MongoDB in Action, Kyle Banker • Slides: Deployment Tips, Jared Rosoff • Video: Schema Design, Eliot Horowitz • Many, many more on 10gen site 26
  • 28. Why MongoDB? • It’s easier to: • develop • operate • scale
  • 29. Why MongoDB? • It’s easier to: • develop • operate • scale • No, really.
  • 30. Why MongoDB? • It’s easier to: • develop • operate • scale • No, really. • Try it, I dare you. http://try.mongodb.org/

Editor's Notes

  1. “Who here runs an application using databases in production?\n“Who has ever had an application or service outage due to database problems?”\n\n
  2. \n
  3. “I know I have.”\nBeen up late at night, wondering why replication doesn’t work, manually failing over to a slave\n
  4. Since today is about “Discover MongoDB”, some of the parts I talk about may not be relevant to you, and others may.\nFor the next 30 minutes or so, I will show you some examples of how using Mongo is easier to implement than many other data storage products.\n
  5. Worked with companies from startup to enterprise, banking to web tech, and everything in between.\nFrom SQL server, mysql to hadoop & vertica\n
  6. Agility:\nFor Developers:\nReally easy to get started. Download, run, use driver, show examples, and it “just works”\n
  7. How many people have seen something like this before?\nThis is a data model diagram of ....\nThe amount of tables and joins are carefully calculated and modeled, and changing that once in production is not an easy task.\n
  8. JSON-style objects, BSON data format. Almost every modern language speaks JSON, as well as many web APIs.\n\n"all bugs reported by michael"\n"all bugs with project website and status open"\n
  9. Write concern:\nFire and forget\nWait for error \nWait for journal sync \nWait for fsync\nWait for replication\n\nEventual consistency\nIn reality, many applications are very useful with eventual consistency\n
  10. Components:\n application/driver\n mongod\n database\n
  11. mongod - primary mongo application, storage system\n\nconfig - a mongod process used to synchronously replicate the state information of a sharded environment. In a sharded environment, config servers store the metadata of the cluster. Although config server can run standalone, any production deployment should have exactly three config servers that have copies of the same metadata (for data safety and high availability).\n\nmongos - routing & coordination process that makes the mongod nodes in the cluster look like a single system. \nMongos processes have no persistent state; rather, they keep a cached copy of config server data in memory. \nAny changes that occur on the config servers are propagated to each mongos process. Mongos processes may be run on the shard servers themselves, but they are lightweight enough to exist on each application server. Many mongos processes can be run simultaneously since these processes do not coordinate between one another.\n
  12. \n
  13. For Operations:\nreplica set auto failover with reelection\npackages for deb, rpm maintained by 10gen, distros like freebsd maintain their own ports\nthe mongo shell has many admin-style helpers for setting up replica set and sharding configuration\nin progress: working on chef cookbooks, puppet manifests, ec2 cloudformation, ubuntu juju charms, etc\n
  14. \n
  15. Components:\n application/driver\n mongod\n database\n arbiter\n
  16. mongod - primary mongo application, storage system\n\nconfig - a mongod process used to synchronously replicate the state information of a sharded environment. In a sharded environment, config servers store the metadata of the cluster. Although config server can run standalone, any production deployment should have exactly three config servers that have copies of the same metadata (for data safety and high availability).\n\nmongos - routing & coordination process that makes the mongod nodes in the cluster look like a single system. \nMongos processes have no persistent state; rather, they keep a cached copy of config server data in memory. \nAny changes that occur on the config servers are propagated to each mongos process. Mongos processes may be run on the shard servers themselves, but they are lightweight enough to exist on each application server. Many mongos processes can be run simultaneously since these processes do not coordinate between one another.\n
  17. mongos \n
  18. Pre-production:\n6 month period\nunlimited servers\nengineer support & health check\n
  19. Scalability:\nAny good data storage mechanism today has scalability, one way or another.\nNote: ReplSets max at 7 members\n
  20. \n
  21. mongos \n
  22. In virtualization:\ndon’t scale up as far as you can you before you hit max\n
  23. application/driver\nmongod\n database*\n arbiter \n config\nmongos router\n
  24. mongod - primary mongo application, storage system\n\nconfig - a mongod process used to synchronously replicate the state information of a sharded environment. In a sharded environment, config servers store the metadata of the cluster. Although config server can run standalone, any production deployment should have exactly three config servers that have copies of the same metadata (for data safety and high availability).\n\nmongos - routing & coordination process that makes the mongod nodes in the cluster look like a single system. \nMongos processes have no persistent state; rather, they keep a cached copy of config server data in memory. \nAny changes that occur on the config servers are propagated to each mongos process. Mongos processes may be run on the shard servers themselves, but they are lightweight enough to exist on each application server. Many mongos processes can be run simultaneously since these processes do not coordinate between one another.\n
  25. mongos \n
  26. L1 cache: sandwich in front of you\nL2 cache: Walk to kitchen and make a sandwich\nRAM: Go to the store and get ingredients, go home and make a sandwich\nDisk: Start a farm, and grow the wheat and vegetables to make a sandwich\n\nmongod database, config:\nRAM, Disk, CPU\nmongod arbiter:\nnetwork\nmongos router:\nnetwork, CPU\n\n
  27. Logs:\nTalk about the different types of logs\n
  28. RAID!!!!\nMore personal experiences\n
  29. \n
  30. \n
  31. \n
  32. \n