Your SlideShare is downloading. ×
Joomla and MongoDB
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Joomla and MongoDB

11,445

Published on

This is the deck from the Joomla!Day NYC in 2010. There's also a video online, URL to be added when it is available.

This is the deck from the Joomla!Day NYC in 2010. There's also a video online, URL to be added when it is available.

Published in: Technology
1 Comment
13 Likes
Statistics
Notes
No Downloads
Views
Total Views
11,445
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
1
Likes
13
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. Joomla! and MongoDBMitch PirtleJoomla!Day New York CityDecember 4, 2010
    • 2. Before we beginCoffee?Breakfast?
    • 3. NERDS!Are you ready to get your nerd on?
    • 4. 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
    • 5. About me
    • 6. About meNothing but web since 1995
    • 7. About meNothing but web since 1995Joomla founder, MongoDB contributor
    • 8. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.com
    • 9. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web Development
    • 10. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web DevelopmentComing Soon: Extreme Joomla! Performance
    • 11. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web DevelopmentComing Soon: Extreme Joomla! PerformanceHigh-traffic projects (Jetsetter, MTV, Food Networks)
    • 12. About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web DevelopmentComing Soon: Extreme Joomla! PerformanceHigh-traffic projects (Jetsetter, MTV, Food Networks)Husband, dad, skate punk, metalcore bassist
    • 13. How it all started
    • 14. “I need a website, and wantto be able to manage it onmy own.”
    • 15. We got that,we’ll just use a CMS.
    • 16. Purpose of a CMSManage contentOrganize navigationDynamic searchSelf-service management of content
    • 17. The result?
    • 18. LAMPLinux, Apache, MySQL, PHP
    • 19. Challenges of a CMSOne size fits allBased on ubiquitous platformsLowest common denominator
    • 20. Nothing against MySQL,but...
    • 21. Nothing against MySQL,but...Brittle, inflexible
    • 22. Nothing against MySQL,but...Brittle, inflexibleDifficult for scale
    • 23. Nothing against MySQL,but...Brittle, inflexibleDifficult for scaleDifficult for speed
    • 24. Nothing against MySQL,but...Brittle, inflexibleDifficult for scaleDifficult for speedDifficult to code with
    • 25. Nothing against MySQL,but...Brittle, inflexibleDifficult for scaleDifficult for speedDifficult to code withLack of relational features pushed relational logic intoapplications
    • 26. Nothing against MySQL,but...Brittle, inflexibleDifficult for scaleDifficult for speedDifficult to code withLack of relational features pushed relational logic intoapplicationsZero portability as a result
    • 27. Where that leaves us
    • 28. Where that leaves usEverybody ran out and installed without asking
    • 29. Where that leaves usEverybody ran out and installed without askingISPs happily slashed choice
    • 30. Where that leaves usEverybody ran out and installed without askingISPs happily slashed choiceEnd users and developers obsequiously took LAMP forgranted as the Right Tool for the Right Job™
    • 31. Where that leaves usEverybody ran out and installed without askingISPs happily slashed choiceEnd users and developers obsequiously took LAMP forgranted as the Right Tool for the Right Job™Managing content, from a relational databaseperspective, SUCKS
    • 32. Where that leaves usEverybody ran out and installed without askingISPs happily slashed choiceEnd users and developers obsequiously took LAMP forgranted as the Right Tool for the Right Job™Managing content, from a relational databaseperspective, SUCKSBuilding CMS apps is not much better either!
    • 33. Your relational data Whoah Nelly! Good reason for a DBA Many foreign keys Need for triggers, stored procedures, cronjobs...
    • 34. 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
    • 35. Then the trouble starts“Hey, can we add social media to our website?”
    • 36. Websites aren’t just content
    • 37. Websites aren’t just content Interactivity
    • 38. Websites aren’t just content Interactivity Rich media
    • 39. Websites aren’t just content Interactivity Rich media Social media
    • 40. Websites aren’t just content Interactivity Rich media Social media Web services integration
    • 41. Websites aren’t just content Interactivity Rich media Social media Web services integration Crazy, whack-daddy scale
    • 42. “How long can this go on?”
    • 43. Why develop in anobject language, justto stuff mismatchedchunks of yourobjects in a non-object data store?
    • 44. Introducing:
    • 45. What MongoDB can do
    • 46. What MongoDB can doSimplifies development
    • 47. What MongoDB can doSimplifies developmentStores in binary JSON objects
    • 48. What MongoDB can doSimplifies developmentStores in binary JSON objectsReturn data directly to browser in JSON
    • 49. What MongoDB can doSimplifies developmentStores in binary JSON objectsReturn data directly to browser in JSONStore data, binary objects, whatevah!
    • 50. 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
    • 51. 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
    • 52. 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
    • 53. 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
    • 54. 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
    • 55. The Whole ThangK.I.S.S.Simple to manageSimple to accessLittle or no need forforeign constraints
    • 56. What it looks like now 2.5GB data on disk 1.0GB data in memory
    • 57. CODE.Examples of MongoDB on the console, baby.
    • 58. MySQL
    • 59. MongoDB
    • 60. MySQL
    • 61. MongoDB
    • 62. MySQL
    • 63. MongoDB
    • 64. What MongoDB did for mewhile building Totsy.com
    • 65. What MongoDB did for me.Encouraged extremely simple data model, producingtighter, faster, bug-free code.
    • 66. What MongoDB did for me.Eliminated the need for cache.Really. No kidding.
    • 67. What MongoDB did for me.Used GridFS for all file storage. Lithium happilyprovided a media adapter allowing us to create aGridFS plugin to transparently store files in thedatabase.
    • 68. What MongoDB did for me.Removed worries about a complicated hostingenvironment
    • 69. What MongoDB did for me.Bought us a ton of time to carefully deliberate nextsteps, and come out of permanent crisis mode
    • 70. What MongoDB did for me.Allowed us to commit every possible crime required forsurvival in a frantic, frenetic startup environment
    • 71. Coming to a CMS near you
    • 72. Drupal for MongoDBhttp://drupal.org/project/mongodbD7: mongodb_cache: Store cache items in mongodbD7: mongodb_field_storage: Store the fields in mongodbD7: mongodb_session: Store sessions in mongodbD6/D7: mongodb_watchdog: Store the watchdog messages in mongodbD6/D7: mongodb: support library for the other modulesD7: mongodb_block: Store block information in mongodb. Very close to the coreblock APID7: mongodb_queue: DrupalQueueInterface implementation using mongodbhttp://sf2010.drupal.org/conference/sessions/mongodb-humongous-drupal
    • 73. Even MORE DrupalWork to get listing API into core:http://drupal.org/node/780154Experimental goodies to play with:http://drupalcode.org/viewvc/drupal/contributions/sandbox/chx/dbtng_mongo_experimental/
    • 74. Joomla!MongoDB helper library for Joomla!https://github.com/spacemonkey/sml4joomlaBranch of 1.6 development for alternative query builderFull MongoDB support most likely in 2.0
    • 75. No wait, almost forgot.
    • 76. Announcing JMongoAdminJoomla native extensionSimilar in interface to phpMyAdminStatus: currently alpha, beta in January 2011Stable in Q1 2011Funded solely by David Jolyhttp://davidjoly.com/
    • 77. Not CMS, but still relevant
    • 78. Ruby & RailsMongoMapperhttp://github.com/jnunemaker/mongomapper/Brings MongoDB to many RoR platforms RadiantCMS Typo Mephisto
    • 79. Lithium PHP frameworkhttp://rad-dev.org/lithium/wikiMongoDB native supportProjects demonstrating MongoDB support: http://rad-dev.org/lithium_mongo/source http://rad-dev.org/lithium_blog/source
    • 80. CakePHP frameworkMongoDB datasourcehttp://github.com/ichikaway/mongoDB-DatasourceExample articlehttp://mark-story.com/posts/view/using-mongodb-with-cakephp
    • 81. PHP frameworkhttp://kohanaframework.org/MangoDBhttp://github.com/Wouterrr/MangoDB
    • 82. More about MongoDB
    • 83. MongoDB Language Centerhttp://www.mongodb.org/display/DOCS/Drivers
    • 84. Community Resourceshttp://www.mongodb.org/display/DOCS/Community
    • 85. Development Trackerhttp://jira.mongodb.org
    • 86. MongoDB Cookbookhttp://cookbook.mongodb.org/
    • 87. Explore MongoDB @Githubhttp://github.com/search?q=mongo
    • 88. Mongo PHP Languagehttp://us2.php.net/mongo
    • 89. Time for my favorite gameStump the Nerd™
    • 90. Thanks!Email: spacemonkey@mongodb.orgTwitter: @mitchitizedWeb: http://www.spacemonkeylabs.comSlides: http://www.slideshare.net/spacemonkeylabs
    • 91. Photo credits business man 1, by Larissa Kanno A big goose, by Andrea http://www.sxc.hu/photo/877661 Kratzenberg http://www.sxc.hu/photo/1148702 Orient Lamp, by Greg Griffin http://www.sxc.hu/photo/964807 Steppe eagle, by Gabor Szakacs http://www.sxc.hu/photo/1044948 Binary code 1, by Flavio Takemoto http://www.sxc.hu/photo/1159613 Blue sportscar, by Jean Scheijen http://www.sxc.hu/photo/794992 Cats, by (anonymous) http://www.sxc.hu/photo/1273828 EW_PKB, by daniel wildman http://www.sxc.hu/photo/845589 Cougar on the prowl, by (anonymous) http://www.sxc.hu/photo/1253662

    ×