Schema Design at Scale

Slides from July Atlanta MongoDB User Group

[slideshare id=13755693&doc=schemadesignatscale-120725122529-phpapp02]

Want to learn how to design your app to scale? Like, _really_ scale? On a single master database? To a global audience? Come hear Rick Copeland tell the story of the MongoDB Monitoring Service (MMS), a free realtime monitoring platform available for all MongoDB users, worldwide. You’ll learn how 10gen used MongoDB’s document-based storage to open up MMS to any and all of their customers, worldwide, for free, storing minute-by-minute statistics for every server process they run, all on a single-master MongoDB deployment.

MongoDB Books by Rick Copeland

Today I’m happy to make two book-related announcements.

MongoDB with Python and Ming Book

First off, I’ve collected, edited, and expanded upon the the MongoDB and Python series I’ve been working on at Just a Little Python and released it as an eBook. MongoDB with Python and Ming is now available on Lulu as an epub and on Amazon (at MongoDB with Python and Ming). In the book, I cover the following topics:

  • Using PyMongo, from installing & basic queries to the new aggregation framework
  • Overview of tuning your application for the best performance under MongoDB
    including discussions of replication and sharding
  • Using the Ming toolkit to enforce your schema in MongoDB
  • Using Ming’s object-document mapper (ODM) to raise the abstraction level of your
    MongoDB programming
  • Various tips, tricks, and goodies with Ming including Mongo-in-Memory,
    extending the ODM, and schema migrations

MongoDB Applied Design Patterns

The second announcement is that I’ve agreed to write another book for O’Reilly, tentatively titled MongoDB Design Patterns. That one’s not done yet, and it’s still early in the authoring / publication process, but it should be available early 2013. Sadly I don’t have a nice product page link to share with you yet, but I will leave you with a summary of the topics I plan to cover:

  • Part 1: MongoDB Design Patterns
    • Embedding versus referencing documents
    • Using polymorphic schemas
    • Using complex atomic updates
    • Optimistic updates with compensation (in lieu of multi-document transactions)
  • Part 2: Use Cases
    • Operational intelligence / real-time analytics
    • E-Commerce
    • Content management systems
    • Online advertising networks
    • Social Networking
    • Online Gaming

I hope that’s enough to whet your appetite. Of course, the book’s not finished, so if you have any other topics you’d love to see covered in such a book, I’d love to hear about it in the comments!

Python and MongoDB Training Classes

As promised earlier, We have now officially launched Python and MongoDB training
classes. The first batch of classes will be offered between August 7-10, 2012,
with early bird registration closing on July 31. We’d love to have you attend
one or more classes, so read on for more info!

The first two days of training (August 7-8) will be a
developer training class, focused on bringing you from little or no MongoDB
background to a proficient PyMongo developer. This is the class I’d recommend
you take if you’re completely new to MongoDB.

The third day (August 9th) consists of a case study in using
MongoDB for content management systems, from schema and index design to
common operations to scalability and sharding. Students in this class should
already have a basic knowledge and proficiency with MongoDB.

The final day (August 10th) consists of a case study in using
MongoDB for operational intelligence, giving you lots of information on
using MongoDB for various types of analytics. Of all the talks I’ve given on
MongoDB, the most popular by far was the one on “real time analytics,” so I
anticipate this class might sell out quickly.

Each class is limited to 12 participants in order to make sure I can spend a good
bit of time addressing the exact training needs of the attendees. The early bird
price (again, ending July 31st) for the 2-day training is $800, with each of the
one-day classes only $400 each. I’d love to see you there, so please sign up

Oh, and one more thing: You’ll notice that the venue is still “Atlanta Metro
Area, TBD”. I currently have a facility we can use in Roswell, Georgia, just
north of Atlanta, but if it turns out we have a lot of out-of-town attendees,
we’ll end up moving the class to a location that’s closer to the downtown area.

Python and MongoDB Training Classes

At this past PyCon, I had the opportunity to lead a python and mongodb tutorial and had a great time, but realized that the three hour format is just not enough time. So I’m hoping to start some full- or multi-day training classes, but I need your input to know what and
where to offer them.

So with all that said, I would love it — if you’re interested, of course — if you would sign up for updates about the classes as they progress by clicking the signup link. When signing up, please list your zip code so I can determine the best location to offer the classes. I live in Atlanta, so I know some venues here, but I’m more than willing to travel if there’s enough interest.

Even if the classes listed on the signup form don’t interest you and you don’t want updates, I’d love to hear in the comments below what kinds of classes/training you would be interested in. Thanks so much, and I look forward to hearing from you!