• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Joomla and MongoDB
 

Joomla and MongoDB

on

  • 10,956 views

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.

Statistics

Views

Total Views
10,956
Views on SlideShare
10,449
Embed Views
507

Actions

Likes
13
Downloads
0
Comments
1

10 Embeds 507

http://zerothezero.wordpress.com 460
http://www.mefeedia.com 22
http://www.twylah.com 10
http://paper.li 6
http://twimblr.appspot.com 2
http://us-w1.rockmelt.com 2
https://twitter.com 2
http://a0.twimg.com 1
http://www.mitchitized.com 1
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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

Joomla and MongoDB Joomla and MongoDB Presentation Transcript

  • Joomla! and MongoDBMitch PirtleJoomla!Day New York CityDecember 4, 2010
  • Before we beginCoffee?Breakfast?
  • NERDS!Are you ready to get your nerd on?
  • 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
  • About me
  • About meNothing but web since 1995
  • About meNothing but web since 1995Joomla founder, MongoDB contributor
  • About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.com
  • About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web Development
  • About meNothing but web since 1995Joomla founder, MongoDB contributorCTO at Totsy.comComing Soon: MongoDB for Web DevelopmentComing Soon: Extreme Joomla! Performance
  • 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)
  • 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
  • How it all started
  • “I need a website, and wantto be able to manage it onmy own.”
  • We got that,we’ll just use a CMS.
  • Purpose of a CMSManage contentOrganize navigationDynamic searchSelf-service management of content
  • The result?
  • LAMPLinux, Apache, MySQL, PHP
  • Challenges of a CMSOne size fits allBased on ubiquitous platformsLowest common denominator
  • Nothing against MySQL,but...
  • Nothing against MySQL,but...Brittle, inflexible
  • Nothing against MySQL,but...Brittle, inflexibleDifficult for scale
  • Nothing against MySQL,but...Brittle, inflexibleDifficult for scaleDifficult for speed
  • Nothing against MySQL,but...Brittle, inflexibleDifficult for scaleDifficult for speedDifficult to code with
  • Nothing against MySQL,but...Brittle, inflexibleDifficult for scaleDifficult for speedDifficult to code withLack of relational features pushed relational logic intoapplications
  • Nothing against MySQL,but...Brittle, inflexibleDifficult for scaleDifficult for speedDifficult to code withLack of relational features pushed relational logic intoapplicationsZero portability as a result
  • Where that leaves us
  • Where that leaves usEverybody ran out and installed without asking
  • Where that leaves usEverybody ran out and installed without askingISPs happily slashed choice
  • 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™
  • 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
  • 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!
  • Your relational data Whoah Nelly! Good reason for a DBA Many foreign keys Need for triggers, stored procedures, cronjobs...
  • 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
  • Then the trouble starts“Hey, can we add social media to our website?”
  • Websites aren’t just content
  • Websites aren’t just content Interactivity
  • Websites aren’t just content Interactivity Rich media
  • Websites aren’t just content Interactivity Rich media Social media
  • Websites aren’t just content Interactivity Rich media Social media Web services integration
  • Websites aren’t just content Interactivity Rich media Social media Web services integration Crazy, whack-daddy scale
  • “How long can this go on?”
  • Why develop in anobject language, justto stuff mismatchedchunks of yourobjects in a non-object data store?
  • Introducing:
  • What MongoDB can do
  • What MongoDB can doSimplifies development
  • What MongoDB can doSimplifies developmentStores in binary JSON objects
  • What MongoDB can doSimplifies developmentStores in binary JSON objectsReturn data directly to browser in JSON
  • What MongoDB can doSimplifies developmentStores in binary JSON objectsReturn data directly to browser in JSONStore data, binary objects, whatevah!
  • 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
  • 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
  • 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
  • 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
  • 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
  • The Whole ThangK.I.S.S.Simple to manageSimple to accessLittle or no need forforeign constraints
  • What it looks like now 2.5GB data on disk 1.0GB data in memory
  • CODE.Examples of MongoDB on the console, baby.
  • MySQL
  • MongoDB
  • MySQL
  • MongoDB
  • MySQL
  • MongoDB
  • What MongoDB did for mewhile building Totsy.com
  • What MongoDB did for me.Encouraged extremely simple data model, producingtighter, faster, bug-free code.
  • What MongoDB did for me.Eliminated the need for cache.Really. No kidding.
  • 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.
  • What MongoDB did for me.Removed worries about a complicated hostingenvironment
  • What MongoDB did for me.Bought us a ton of time to carefully deliberate nextsteps, and come out of permanent crisis mode
  • What MongoDB did for me.Allowed us to commit every possible crime required forsurvival in a frantic, frenetic startup environment
  • Coming to a CMS near you
  • 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
  • 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/
  • 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
  • No wait, almost forgot.
  • Announcing JMongoAdminJoomla native extensionSimilar in interface to phpMyAdminStatus: currently alpha, beta in January 2011Stable in Q1 2011Funded solely by David Jolyhttp://davidjoly.com/
  • Not CMS, but still relevant
  • Ruby & RailsMongoMapperhttp://github.com/jnunemaker/mongomapper/Brings MongoDB to many RoR platforms RadiantCMS Typo Mephisto
  • 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
  • CakePHP frameworkMongoDB datasourcehttp://github.com/ichikaway/mongoDB-DatasourceExample articlehttp://mark-story.com/posts/view/using-mongodb-with-cakephp
  • PHP frameworkhttp://kohanaframework.org/MangoDBhttp://github.com/Wouterrr/MangoDB
  • More about MongoDB
  • MongoDB Language Centerhttp://www.mongodb.org/display/DOCS/Drivers
  • Community Resourceshttp://www.mongodb.org/display/DOCS/Community
  • Development Trackerhttp://jira.mongodb.org
  • MongoDB Cookbookhttp://cookbook.mongodb.org/
  • Explore MongoDB @Githubhttp://github.com/search?q=mongo
  • Mongo PHP Languagehttp://us2.php.net/mongo
  • Time for my favorite gameStump the Nerd™
  • Thanks!Email: spacemonkey@mongodb.orgTwitter: @mitchitizedWeb: http://www.spacemonkeylabs.comSlides: http://www.slideshare.net/spacemonkeylabs
  • 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