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,869 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
6 Comments
39 Likes
Statistics
Notes
No Downloads
Views
Total views
17,869
On SlideShare
0
From Embeds
0
Number of Embeds
323
Actions
Shares
0
Downloads
0
Comments
6
Likes
39
Embeds 0
No embeds

No notes for slide






































  • 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

    ×