merb
       &
  f l e x i b i l t y
p e r f o r m a n c e
Me
Matt
   Aimonetti                 Me

irc:   m a t t e t t i
http://github.com/mattetti
core team member
        &          Matt
     evangelist
don’t work
  at Engine Yard

                           Matt



   http://engineyard.com
don’t work
  at Engine Yard

                           Matt



   http://engineyard.com
Consultant               Matt
based in San Diego, CA
http://ma-agile.com/training
Blogs:
   http://merbist.com

   http://railsontherun.com
Conclusion

merb meets the Enterprise needs


        ✓Cost
        ✓Adaptability
        ✓Scalablility
“It’s also worth mentioning that
there shouldn’t be doubt in
anybody’s mind at this point that
Ruby itself is slow. It’s g...
I for one am scared of Ruby
because ... it's known to be
slow, so if you become The Next
MySpace, you'll be buying 5
times...
Rails is for the vast majority of
web applications Fast Enough... I
just happen to care much more
about free developer cyc...
Rails is slow
Ruby is slow
“The slowest programming
  language in the world”
benchmarks someone?
raw PHP:
 331 rps
raw PHP:
     331 rps
     cake PHP:
3.6 rps / 8 rps(eaccelerator)
raw PHP:
        331 rps
       cake PHP:
  3.6 rps / 8 rps (eaccelerator)



      code igniter:
21.5 rps / 98.2 rps     ...
raw PHP:
        331 rps
       cake PHP:
  3.6 rps / 8 rps (eaccelerator)



      code igniter:
21.5 rps / 98.2 rps     ...
Rails
              is
       pretty close to
the fastest PHP framework.
what about merb?
hello world benchmarks
      baseline results
apache serving static html:
        hello.html

             raw PHP:
<?php echo quot;Hello worldquot;; ?>


            m...
Merb Router             Static HTML         raw php




3783 req/s            2898 req/s          1995 req/s


           ...
Merb 1.0   Django 1.0.1     Rails 2.2.1   Code Igniter 1.6.3
    Symfony    Cake PHP




$ ab test: ab -c 10 -n 5000 http:...
Ruby might be slow at
fibonacci benchmarks
       who cares?
Ruby is fast at
real life web benchmarks
      that’s what matters!
Ruby for the web
  is NOT slow
Enterprise
Enterprise


      Enterprise needs
     enterprise software
Enterprise


      “Enterprise software is software
 intended to solve an enterprise problem
   (rather than a departmenta...
Enterprise



      enterprise problem
               !=
     departmental problem
Enterprise



    an enterprise problem
    covers problems from
  many different departments
Enterprise



  many different departments
             means
  different needs/challenges
Enterprise


      “Enterprise software is software
 intended to solve an enterprise problem
   (rather than a departmenta...
Enterprise



Enterprise Software Architecture
Enterprise




        http://en.wikipedia.org/wiki/Enterprise_architecture
Enterprise



organization-specific software architecture
Enterprise


                “Due to the cost
of building what is often proprietary software,
            only large organ...
Enterprise




             Elite
Enterprise




   what about the not so large companies?
Enterprise

       “As many business enterprises
   have similar departments and systems,
   enterprise software is often ...
Enterprise



“complex development programming tools
                  that
     require specialist capabilities”.
Enterprise




     Business Software Solutions
      Applications and Services
Enterprise
        SAP system

             CRM           ERP



                   NetWeaver

                         AB...
Enterprise

         Concerns:

             cost
         adaptability
Enterprise

         Concerns:

       Does it scale?
Enterprise

         scalability

       loads of req/s
      easily extendable
     swap/extract parts
what about merb?
 because that’s why I’m here
cost
    open source


free as in free speech
cost
                  ruby




Great language - widely adopted - enjoyable
                momentum
bet on
             Ruby

   MacRuby

Rubinius
bet on
             Ruby

   MacRuby

Rubinius
cost
                 reusable


merb slices - mountable mini applications
cost
               reusable merb slices



Merb::Router.prepare do
  slice(:blog, :path => quot;blogquot;)
  slice(:wiki,...
cost
                 smooth transition



     access your Java code directly from Merb




deploy your merb app like you...
cost
               choose

model the entire business enterprise
build common tools for common use
adaptability
because needs differ and change
adaptability
               merb is truly modular




                                  http://flickr.com/photos/
         ...
$ merb-gen very_flat app-name


                                        1 file

Merb::Router.prepare do
  match('/').to(:co...
$ merb-gen app app-name

    merb stack
      MVC architecture
     asset management
           caching
        view helpe...
adaptability
pick and choose
 add/remove dependencies
adaptability
pick and choose

      extend
   plugins - slices - API
adaptability
pick and choose

       extend
      replace
  build around merb core
scalability

  see benchmarks
     modularity
small memory footprint
sum up
merb is fast
merb is flexible
http://flickr.com/photos/ezzyponchi/283381271/   http://bonluxat.com




                     merb is modular
merb can be opinionated
merb   recycling
Merb has a bright future for the
  people who are not satisfied by the
         fixed ways in Rails.

   I think that Merb w...
Conclusion

merb meets the Enterprise needs


        ✓Cost
        ✓Adaptability
        ✓Scalability
questions?
Merb For The Enterprise
Merb For The Enterprise
Merb For The Enterprise
Merb For The Enterprise
Merb For The Enterprise
Upcoming SlideShare
Loading in …5
×

Merb For The Enterprise

6,146 views

Published on

Talk given during QCon 2008 in San Francisco

Published in: Technology
2 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total views
6,146
On SlideShare
0
From Embeds
0
Number of Embeds
2,952
Actions
Shares
0
Downloads
82
Comments
2
Likes
5
Embeds 0
No embeds

No notes for slide

Merb For The Enterprise

  1. 1. merb & f l e x i b i l t y p e r f o r m a n c e
  2. 2. Me
  3. 3. Matt Aimonetti Me irc: m a t t e t t i http://github.com/mattetti
  4. 4. core team member & Matt evangelist
  5. 5. don’t work at Engine Yard Matt http://engineyard.com
  6. 6. don’t work at Engine Yard Matt http://engineyard.com
  7. 7. Consultant Matt based in San Diego, CA
  8. 8. http://ma-agile.com/training
  9. 9. Blogs: http://merbist.com http://railsontherun.com
  10. 10. Conclusion merb meets the Enterprise needs ✓Cost ✓Adaptability ✓Scalablility
  11. 11. “It’s also worth mentioning that there shouldn’t be doubt in anybody’s mind at this point that Ruby itself is slow. It’s great that people are hard at work on faster implementations of the language, but right now, it’s tough.” Alex Payne, Twitter
  12. 12. I for one am scared of Ruby because ... it's known to be slow, so if you become The Next MySpace, you'll be buying 5 times as many boxes as the .NET guy down the hall. Joel Spolsky
  13. 13. Rails is for the vast majority of web applications Fast Enough... I just happen to care much more about free developer cycles and am willing to trade the former for the latter. David Heinemeier Hansson
  14. 14. Rails is slow
  15. 15. Ruby is slow
  16. 16. “The slowest programming language in the world”
  17. 17. benchmarks someone?
  18. 18. raw PHP: 331 rps
  19. 19. raw PHP: 331 rps cake PHP: 3.6 rps / 8 rps(eaccelerator)
  20. 20. raw PHP: 331 rps cake PHP: 3.6 rps / 8 rps (eaccelerator) code igniter: 21.5 rps / 98.2 rps (eaccelerator)
  21. 21. raw PHP: 331 rps cake PHP: 3.6 rps / 8 rps (eaccelerator) code igniter: 21.5 rps / 98.2 rps (eaccelerator) Rails: 88 rps
  22. 22. Rails is pretty close to the fastest PHP framework.
  23. 23. what about merb?
  24. 24. hello world benchmarks baseline results
  25. 25. apache serving static html: hello.html raw PHP: <?php echo quot;Hello worldquot;; ?> merb router: match(quot;/hello worldquot;)
  26. 26. Merb Router Static HTML raw php 3783 req/s 2898 req/s 1995 req/s http://merbist.com
  27. 27. Merb 1.0 Django 1.0.1 Rails 2.2.1 Code Igniter 1.6.3 Symfony Cake PHP $ ab test: ab -c 10 -n 5000 http://0.0.0.0/benchmark http://merbist.com
  28. 28. Ruby might be slow at fibonacci benchmarks who cares?
  29. 29. Ruby is fast at real life web benchmarks that’s what matters!
  30. 30. Ruby for the web is NOT slow
  31. 31. Enterprise
  32. 32. Enterprise Enterprise needs enterprise software
  33. 33. Enterprise “Enterprise software is software intended to solve an enterprise problem (rather than a departmental problem) and often written using an Enterprise Software Architecture.”
  34. 34. Enterprise enterprise problem != departmental problem
  35. 35. Enterprise an enterprise problem covers problems from many different departments
  36. 36. Enterprise many different departments means different needs/challenges
  37. 37. Enterprise “Enterprise software is software intended to solve an enterprise problem (rather than a departmental problem) and often written using an Enterprise Software Architecture.”
  38. 38. Enterprise Enterprise Software Architecture
  39. 39. Enterprise http://en.wikipedia.org/wiki/Enterprise_architecture
  40. 40. Enterprise organization-specific software architecture
  41. 41. Enterprise “Due to the cost of building what is often proprietary software, only large organizations attempt to build such software that models the entire business enterprise [...]”
  42. 42. Enterprise Elite
  43. 43. Enterprise what about the not so large companies?
  44. 44. Enterprise “As many business enterprises have similar departments and systems, enterprise software is often available as a suite of programs that have attached development tools to modify the common programs for the specific enterprise.”
  45. 45. Enterprise “complex development programming tools that require specialist capabilities”.
  46. 46. Enterprise Business Software Solutions Applications and Services
  47. 47. Enterprise SAP system CRM ERP NetWeaver ABAP SRM
  48. 48. Enterprise Concerns: cost adaptability
  49. 49. Enterprise Concerns: Does it scale?
  50. 50. Enterprise scalability loads of req/s easily extendable swap/extract parts
  51. 51. what about merb? because that’s why I’m here
  52. 52. cost open source free as in free speech
  53. 53. cost ruby Great language - widely adopted - enjoyable momentum
  54. 54. bet on Ruby MacRuby Rubinius
  55. 55. bet on Ruby MacRuby Rubinius
  56. 56. cost reusable merb slices - mountable mini applications
  57. 57. cost reusable merb slices Merb::Router.prepare do slice(:blog, :path => quot;blogquot;) slice(:wiki, :path => quot;wikiquot;) slice(:public_calendar, :path => quot;calendarquot;) end
  58. 58. cost smooth transition access your Java code directly from Merb deploy your merb app like you deploy your java apps
  59. 59. cost choose model the entire business enterprise build common tools for common use
  60. 60. adaptability because needs differ and change
  61. 61. adaptability merb is truly modular http://flickr.com/photos/ testing template ORM JS lib framework engine
  62. 62. $ merb-gen very_flat app-name 1 file Merb::Router.prepare do match('/').to(:controller => 'very-flat-app', :action =>'index') end class VeryFlatApp < Merb::Controller def index quot;Hi, I am 'very flat' Merb application. I have everything in one single file and well suited for dynamic stub pages.quot; end end
  63. 63. $ merb-gen app app-name merb stack MVC architecture asset management caching view helpers mailer authentication exceptions handler
  64. 64. adaptability pick and choose add/remove dependencies
  65. 65. adaptability pick and choose extend plugins - slices - API
  66. 66. adaptability pick and choose extend replace build around merb core
  67. 67. scalability see benchmarks modularity small memory footprint
  68. 68. sum up
  69. 69. merb is fast
  70. 70. merb is flexible
  71. 71. http://flickr.com/photos/ezzyponchi/283381271/ http://bonluxat.com merb is modular
  72. 72. merb can be opinionated
  73. 73. merb recycling
  74. 74. Merb has a bright future for the people who are not satisfied by the fixed ways in Rails. I think that Merb will give users more freedom in a Ruby-ish way of programming. matz likes merb
  75. 75. Conclusion merb meets the Enterprise needs ✓Cost ✓Adaptability ✓Scalability
  76. 76. questions?

×