Merb + Nanite

  • 11,873 views
Uploaded on

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

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
11,873
On Slideshare
0
From Embeds
0
Number of Embeds
7

Actions

Shares
Downloads
199
Comments
1
Likes
16

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

Transcript

  • 1. Merb then and now Ezra Zygmuntowicz http://engineyard.com
  • 2. Merb Then Sept 21st 2006 http://pastie.org/14416 AKA Baby Merb
  • 3. 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
  • 4. Core Tenets of Merb
  • 5. Merb should be fast (no code is faster then no code)
  • 6. Merb should be memory efficient
  • 7. Merb code should be as simple as possible
  • 8. Merb should be modular
  • 9. Merb should be easy to grok and extend (by hackers for hackers)
  • 10. Merb should focus on the application server as well as the web framework
  • 11. Merb should get out of your way and be *flexible*
  • 12. Most Importantly Merb should be an experimentation ground
  • 13. Why not just work on rails?
  • 14. Monoculture is bad
  • 15. Everyone wins when there is competition
  • 16. Lot’s of merb’s lessons can be applied back to rails
  • 17. Merb-1.0RC drops tomorrow! Huge thanks to the community and all contributors
  • 18. merb-stack: training wheels included
  • 19. Now with that out of the way...
  • 20. Introducing Nanite
  • 21. Nanite is a new way of building scalable backends for web apps
  • 22. Built around RabbitMQ • Written in erlang, clusterable, highly scalable, fast as hell. • AMQP protocol provides many nice features • Transient, Persistent and Transactional semantics
  • 23. <3 RabbitMQ
  • 24. Nanite agents consist of multiple Actors
  • 25. Nanite agents advertise their services and status Feeds#crawl advertises: /feeds/crawl Load average is advertised as default status
  • 26. 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
  • 27. Multiple Dispatch Styles
  • 28. Least loaded dispatch and the fitness function
  • 29. 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
  • 30. 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
  • 31. File Streaming
  • 32. Nanite makes it easy to scale web app backends Git it on GitHub: http://github.com/ezmobius/nanite
  • 33. Questions?