Merb + Nanite
Upcoming SlideShare
Loading in...5
×
 

Merb + Nanite

on

  • 14,974 views

This is my keynote from MerbCamp, where I talk about merb past and present as well as introduce nanite a self assembling cluster of ruby processes

This is my keynote from MerbCamp, where I talk about merb past and present as well as introduce nanite a self assembling cluster of ruby processes

Statistics

Views

Total Views
14,974
Views on SlideShare
12,154
Embed Views
2,820

Actions

Likes
16
Downloads
199
Comments
1

40 Embeds 2,820

http://brainspl.at 2586
http://blog.engineyard.com 67
http://www.brainspl.at 38
http://www.engineyard.com 28
http://www.merboverheard.com 20
http://www.slideshare.net 16
http://web.archive.org 8
http://merboverheard.com 8
http://mublag.boinkor.net 5
http://www.soup.io 5
http://0.0.0.0 4
http://www.techgig.com 3
http://antifuchs.soup.io 3
http://www.lotteryresultsbyemail.co.uk 2
https://blog.engineyard.com 2
http://planetrails.digitalcodes.org 1
http://planet.o9y.net 1
http://planetrubyonrails.net 1
http://www.el-gordolottery.com 1
http://www.newsgator.com 1
http://webcache.googleusercontent.com 1
http://fanyi.youdao.com 1
http://bgror.com 1
https://www.engineyard.com 1
http://www.hanrss.com 1
http://www.euromillions2009.com 1
http://www.resultseuromillions.co.uk 1
http://electricsheep.wikispaces.com 1
http://spatialmediagroup.wikispaces.com 1
http://www.lotterydvd.com 1
http://mathias.soup.io 1
http://non_humana.soup.io 1
http://metalab.soup.io 1
http://sofias.soup.io 1
http://www.planetlotto.co.uk 1
http://static.slideshare.net 1
http://www.elotteryforums.com 1
http://www.lotteryresults2009.com 1
http://www.euromillionsresults2009.com 1
http://ec2-174-129-7-73.compute-1.amazonaws.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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

Merb + Nanite Merb + Nanite Presentation Transcript

  • Merb then and now Ezra Zygmuntowicz http://engineyard.com
  • Merb Then Sept 21st 2006 http://pastie.org/14416 AKA Baby Merb
  • Merb Now • merb-core • merb-action-args • merb-haml • merb-assets • merb-helpers • merb-auth • merb-jquery • merb-builder • merb-mailer • merb-cache • merb-parts • merb-gen • merb-slices
  • Core Tenets of Merb
  • Merb should be fast (no code is faster then no code)
  • Merb should be memory efficient
  • Merb code should be as simple as possible
  • Merb should be modular
  • Merb should be easy to grok and extend (by hackers for hackers)
  • Merb should focus on the application server as well as the web framework
  • Merb should get out of your way and be *flexible*
  • Most Importantly Merb should be an experimentation ground
  • Why not just work on rails?
  • Monoculture is bad
  • Everyone wins when there is competition
  • Lot’s of merb’s lessons can be applied back to rails
  • Merb-1.0RC drops tomorrow! Huge thanks to the community and all contributors
  • merb-stack: training wheels included
  • Now with that out of the way...
  • Introducing Nanite
  • Nanite is a new way of building scalable backends for web apps
  • Built around RabbitMQ • Written in erlang, clusterable, highly scalable, fast as hell. • AMQP protocol provides many nice features • Transient, Persistent and Transactional semantics
  • <3 RabbitMQ
  • Nanite agents consist of multiple Actors
  • Nanite agents advertise their services and status Feeds#crawl advertises: /feeds/crawl Load average is advertised as default status
  • Nanite Mappers Track nanites and their advertised services and status Can do dispatch based on a number of factors Run inside your Merb or Rails app State of all nanites is replicated across all mappers
  • Multiple Dispatch Styles
  • Least loaded dispatch and the fitness function
  • Agents ping the mapper exchange every @ping_time seconds. Mappers track the state of all nanites and remove them from mapping if they haven’t reported in within a timeout
  • Nanite gives us: • Presence, we know when nanites are ready for requests or not. • Self assembly, nanites can come and go and can run anywhere with zero configuration in the mappers. • Dispatch based on load or any fitness function that suits your app • Easily take advantage of cloud
  • File Streaming
  • Nanite makes it easy to scale web app backends Git it on GitHub: http://github.com/ezmobius/nanite
  • Questions?