Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Content Management
Systems and MongoDB
Mitch Pirtle
MongoSF - April 30 2010
San Francisco, CA
One thing real quick, before
we get started.
About this presentation

 Databases from a CMS perspective
 How we got to where we are now
 What MongoDB brings to the equ...
About me
Nothing but web since 1995
Contributor to many FOSS projects (Joomla founder)
Budding author
  MongoDB for Web De...
Familiar with CMS?
In the beginning...
Purpose of a CMS

Manage content
Organize navigation
Dynamic search
Self-service management of content
Challenges of a CMS


One size fits all
Based on ubiquitous platforms
Lowest common denominator
The result?
(HINT: MySQL was the
default.)
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Difficult for speed
Difficult to code with
Lack of relat...
Where that leaves us
Everybody ran out and installed without asking
ISPs happily limited choice
End users and developers o...
Article with comments &
tags

         Tags          Articles       Comments
   id              id               id
   tag...
Websites aren’t just content

 Interactivity
 Rich media
 Social media
 Web services integration
 Crazy, whack-daddy scale
“How long can this go on?”
Introducing:
Where that leaves us now
Article with comments, tags,
categories       id
                     Articles

                 title
                 sl...
What I’ve learned
implementing CMS
platforms with MongoDB
under the hood
Lessons learned

Simplicity of code
Performance
Simplicity of scale
Rich media storage
Amazing concurrency
Coming to a CMS near you
Drupal for MongoDB
http://drupal.org/project/mongodb

D7: mongodb_cache: Store cache items in mongodb

D7: mongodb_field_st...
Even MORE Drupal

Work to get listing API into core:
http://drupal.org/node/780154
Experimental goodies to play with:
http...
Joomla!


MongoDB helper library for Joomla!
(come see me after the talk for access)
Branch of 1.6 development for alterna...
Not CMS, but still relevant
Ruby & Rails

MongoMapper
http://github.com/jnunemaker/mongomapper/
Brings MongoDB to many RoR platforms
  RadiantCMS
  Ty...
Lithium PHP framework

http://rad-dev.org/lithium/wiki
MongoDB native support
Projects demonstrating MongoDB support:
  ht...
CakePHP framework

MongoDB datasource
http://github.com/ichikaway/mongoDB-Datasource
Example article
http://mark-story.com...
PHP framework


http://kohanaframework.org/
MangoDB
http://github.com/Wouterrr/MangoDB
MongoDB Language Center
http://www.mongodb.org/display/DOCS/Drivers
Community Resources
http://www.mongodb.org/display/DOCS/
Community
Development Tracker
http://jira.mongodb.org
MongoDB Cookbook
http://cookbook.mongodb.org/
Explore MongoDB @Github
http://github.com/search?q=mongo
Thanks!
Email: mitch@spacemonkeylabs.com
Skype: mitch.pirtle
Web: http://www.spacemonkeylabs.com
Slides: http://www.slides...
Content Mangement Systems and MongoDB
Content Mangement Systems and MongoDB
Content Mangement Systems and MongoDB
Upcoming SlideShare
Loading in …5
×

Content Mangement Systems and MongoDB

17,932 views

Published on

Quick 30 minute session on MongoDB and Content Management Systems. Primarily covers PHP based platforms as they are the most common, however also references RoR and others.

Published in: Technology

Content Mangement Systems and MongoDB

  1. 1. Content Management Systems and MongoDB Mitch Pirtle MongoSF - April 30 2010 San Francisco, CA
  2. 2. One thing real quick, before we get started.
  3. 3. About this presentation Databases from a CMS perspective How we got to where we are now What MongoDB brings to the equation Where we are going
  4. 4. About me Nothing but web since 1995 Contributor to many FOSS projects (Joomla founder) Budding author MongoDB for Web Development Extreme Joomla! Performance High-traffic projects (Jetsetter, MTV, Food Networks) Husband, dad, skate punk, metalcore bassist
  5. 5. Familiar with CMS?
  6. 6. In the beginning...
  7. 7. Purpose of a CMS Manage content Organize navigation Dynamic search Self-service management of content
  8. 8. Challenges of a CMS One size fits all Based on ubiquitous platforms Lowest common denominator
  9. 9. The result?
  10. 10. (HINT: MySQL was the default.)
  11. 11. Nothing against MySQL, but... Brittle, inflexible Difficult for scale Difficult for speed Difficult to code with Lack of relational features pushed relational logic into applications Zero portability as a result
  12. 12. Where that leaves us Everybody ran out and installed without asking ISPs happily limited choice End users and developers obsequiously took LAMP for granted as the Right Tool for the Right Job™ Managing content, from a relational database perspective, SUCKS Building CMS apps is not much better either!
  13. 13. Article with comments & tags Tags Articles Comments id id id tag title date_created slug author_id excerpt parent_id author_id subject ArticleTags date_created content id date_published article_id date_modified tag_id content
  14. 14. Websites aren’t just content Interactivity Rich media Social media Web services integration Crazy, whack-daddy scale
  15. 15. “How long can this go on?”
  16. 16. Introducing:
  17. 17. Where that leaves us now
  18. 18. Article with comments, tags, categories id Articles title slug excerpt author_id date_created date_published date_modified content comments -- comment1 -- comment2 -- comment3 tags -- tag1 -- tag2 -- tag3 categories -- category1 -- category2 -- category3
  19. 19. What I’ve learned implementing CMS platforms with MongoDB under the hood
  20. 20. Lessons learned Simplicity of code Performance Simplicity of scale Rich media storage Amazing concurrency
  21. 21. Coming to a CMS near you
  22. 22. Drupal for MongoDB http://drupal.org/project/mongodb D7: mongodb_cache: Store cache items in mongodb D7: mongodb_field_storage: Store the fields in mongodb D7: mongodb_session: Store sessions in mongodb D6/D7: mongodb_watchdog: Store the watchdog messages in mongodb D6/D7: mongodb: support library for the other modules D7: mongodb_block: Store block information in mongodb. Very close to the core block API D7: mongodb_queue: DrupalQueueInterface implementation using mongodb http://sf2010.drupal.org/conference/sessions/mongodb-humongous-drupal
  23. 23. Even MORE Drupal Work to get listing API into core: http://drupal.org/node/780154 Experimental goodies to play with: http://drupalcode.org/viewvc/drupal/contributions/ sandbox/chx/dbtng_mongo_experimental/
  24. 24. Joomla! MongoDB helper library for Joomla! (come see me after the talk for access) Branch of 1.6 development for alternative query builder Full MongoDB support most likely in 2.0
  25. 25. Not CMS, but still relevant
  26. 26. Ruby & Rails MongoMapper http://github.com/jnunemaker/mongomapper/ Brings MongoDB to many RoR platforms RadiantCMS Typo Mephisto
  27. 27. Lithium PHP framework http://rad-dev.org/lithium/wiki MongoDB native support Projects demonstrating MongoDB support: http://rad-dev.org/lithium_mongo/source http://rad-dev.org/lithium_blog/source
  28. 28. CakePHP framework MongoDB datasource http://github.com/ichikaway/mongoDB-Datasource Example article http://mark-story.com/posts/view/using-mongodb- with-cakephp
  29. 29. PHP framework http://kohanaframework.org/ MangoDB http://github.com/Wouterrr/MangoDB
  30. 30. MongoDB Language Center http://www.mongodb.org/display/DOCS/Drivers
  31. 31. Community Resources http://www.mongodb.org/display/DOCS/ Community
  32. 32. Development Tracker http://jira.mongodb.org
  33. 33. MongoDB Cookbook http://cookbook.mongodb.org/
  34. 34. Explore MongoDB @Github http://github.com/search?q=mongo
  35. 35. Thanks! Email: mitch@spacemonkeylabs.com Skype: mitch.pirtle Web: http://www.spacemonkeylabs.com Slides: http://www.slideshare.net/ spacemonkeylabs

×