Content Management Systems and MongoDB

6,895
-1

Published on

This is the deck from MongoNY in New York City, May 2010. The talk focused on how CMS platforms could take advantage of MongoDB.

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,895
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide







































































  • Content Management Systems and MongoDB

    1. 1. Content Management Systems and MongoDB Mitch Pirtle MongoNY - May 21 2010 New York, NY
    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, coach
    5. 5. Familiar with CMS?
    6. 6. In the beginning...
    7. 7. Purpose of a CMS
    8. 8. Purpose of a CMS Manage content
    9. 9. Purpose of a CMS Manage content Organize navigation
    10. 10. Purpose of a CMS Manage content Organize navigation Dynamic search
    11. 11. Purpose of a CMS Manage content Organize navigation Dynamic search Self-service management of content
    12. 12. The result?
    13. 13. LAMP Linux, Apache, MySQL, PHP
    14. 14. Challenges of a CMS
    15. 15. Challenges of a CMS One size fits all
    16. 16. Challenges of a CMS One size fits all Based on ubiquitous platforms
    17. 17. Challenges of a CMS One size fits all Based on ubiquitous platforms Lowest common denominator
    18. 18. Nothing against MySQL, but...
    19. 19. Nothing against MySQL, but... Brittle, inflexible
    20. 20. Nothing against MySQL, but... Brittle, inflexible Difficult for scale
    21. 21. Nothing against MySQL, but... Brittle, inflexible Difficult for scale Difficult for speed
    22. 22. Nothing against MySQL, but... Brittle, inflexible Difficult for scale Difficult for speed Difficult to code with
    23. 23. 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
    24. 24. 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
    25. 25. Where that leaves us
    26. 26. Where that leaves us Everybody ran out and installed without asking
    27. 27. Where that leaves us Everybody ran out and installed without asking ISPs happily limited choice
    28. 28. 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™
    29. 29. 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
    30. 30. 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!
    31. 31. 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
    32. 32. Then the trouble starts “Hey, can we add social media to our website?”
    33. 33. Websites aren’t just content
    34. 34. Websites aren’t just content Interactivity
    35. 35. Websites aren’t just content Interactivity Rich media
    36. 36. Websites aren’t just content Interactivity Rich media Social media
    37. 37. Websites aren’t just content Interactivity Rich media Social media Web services integration
    38. 38. Websites aren’t just content Interactivity Rich media Social media Web services integration Crazy, whack-daddy scale
    39. 39. Why develop in an object language, just to stuff mismatched chunks of your objects in a non- object data store?
    40. 40. “How long can this go on?”
    41. 41. Introducing:
    42. 42. Where that leaves us now
    43. 43. 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
    44. 44. Article with comments, tags, categories id Articles title slug excerpt author_id date_created Atomic date_published date_modified content comments -- comment1 -- comment2 -- comment3 tags -- tag1 -- tag2 -- tag3 categories -- category1 -- category2 -- category3
    45. 45. Article with comments, tags, categories id Articles title slug excerpt author_id date_created Atomic date_published date_modified content Simple comments -- comment1 -- comment2 -- comment3 tags -- tag1 -- tag2 -- tag3 categories -- category1 -- category2 -- category3
    46. 46. Article with comments, tags, categories id Articles title slug excerpt author_id date_created Atomic date_published date_modified content Simple comments -- comment1 -- comment2 Fast -- comment3 tags -- tag1 -- tag2 -- tag3 categories -- category1 -- category2 -- category3
    47. 47. Article with comments, tags, categories id Articles title slug excerpt author_id date_created Atomic date_published date_modified content Simple comments -- comment1 -- comment2 Fast -- comment3 tags -- tag1 Complete -- tag2 -- tag3 categories -- category1 -- category2 -- category3
    48. 48. MySQL
    49. 49. MongoDB
    50. 50. MySQL
    51. 51. MongoDB
    52. 52. MySQL
    53. 53. MongoDB
    54. 54. What I’ve learned implementing CMS platforms with MongoDB under the hood
    55. 55. Lessons learned
    56. 56. Lessons learned Simplicity of code
    57. 57. Lessons learned Simplicity of code Performance
    58. 58. Lessons learned Simplicity of code Performance Simplicity of scale
    59. 59. Lessons learned Simplicity of code Performance Simplicity of scale Rich media storage
    60. 60. Lessons learned Simplicity of code Performance Simplicity of scale Rich media storage Amazing concurrency
    61. 61. Coming to a CMS near you
    62. 62. 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
    63. 63. 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/
    64. 64. 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
    65. 65. Not CMS, but still cool.
    66. 66. Ruby & Rails MongoMapper http://github.com/jnunemaker/mongomapper/ Brings MongoDB to many RoR platforms RadiantCMS Typo Mephisto
    67. 67. 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
    68. 68. CakePHP framework MongoDB datasource http://github.com/ichikaway/mongoDB-Datasource Example article http://mark-story.com/posts/view/using-mongodb- with-cakephp
    69. 69. PHP framework http://kohanaframework.org/ MangoDB http://github.com/Wouterrr/MangoDB
    70. 70. MongoDB Language Center http://www.mongodb.org/display/DOCS/Drivers
    71. 71. Community Resources http://www.mongodb.org/display/DOCS/ Community
    72. 72. Development Tracker http://jira.mongodb.org
    73. 73. MongoDB Cookbook http://cookbook.mongodb.org/
    74. 74. Explore MongoDB @Github http://github.com/search?q=mongo
    75. 75. Thanks! Email: spacemonkey@mongodb.org Skype: mitch.pirtle Web: http://www.spacemonkeylabs.com Slides: http://www.slideshare.net/ spacemonkeylabs

    ×