SlideShare a Scribd company logo
1 of 81
Download to read offline
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 great that
people are hard at work on faster
implementations of the language,
but right now, it’s tough.”


             Alex Payne, Twitter
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
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
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     (eaccelerator)
raw PHP:
        331 rps
       cake PHP:
  3.6 rps / 8 rps (eaccelerator)



      code igniter:
21.5 rps / 98.2 rps     (eaccelerator)



        Rails:
        88 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;; ?>


            merb router:
   match(quot;/hello worldquot;)
Merb Router             Static HTML         raw php




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


                  http://merbist.com
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
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 departmental problem)
           and often written using
   an Enterprise Software Architecture.”
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 departmental problem)
           and often written using
   an Enterprise Software Architecture.”
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 organizations
     attempt to build such software that
 models the entire business enterprise [...]”
Enterprise




             Elite
Enterprise




   what about the not so large companies?
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.”
Enterprise



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




     Business Software Solutions
      Applications and Services
Enterprise
        SAP system

             CRM           ERP



                   NetWeaver

                         ABAP
             SRM
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, :path => quot;wikiquot;)
  slice(:public_calendar, :path => quot;calendarquot;)
end
cost
                 smooth transition



     access your Java code directly from Merb




deploy your merb app like you deploy your java apps
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/
                        testing                              template
ORM   JS lib
                      framework                               engine
$ 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
$ merb-gen app app-name

    merb stack
      MVC architecture
     asset management
           caching
        view helpers
            mailer
       authentication
     exceptions handler
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 will give users
      more freedom in a Ruby-ish
         way of programming.



matz likes merb
Conclusion

merb meets the Enterprise needs


        ✓Cost
        ✓Adaptability
        ✓Scalability
questions?

More Related Content

What's hot

Myphp-busters: symfony framework
Myphp-busters: symfony frameworkMyphp-busters: symfony framework
Myphp-busters: symfony frameworkStefan Koopmanschap
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Railsmithunsasidharan
 
Ruby On Rails Basics
Ruby On Rails BasicsRuby On Rails Basics
Ruby On Rails BasicsAmit Solanki
 
Rails, ExtJs, and Netzke
Rails, ExtJs, and NetzkeRails, ExtJs, and Netzke
Rails, ExtJs, and Netzkenetzke
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...IncQuery Labs
 
Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Rubydeimos
 
Ruby an overall approach
Ruby an overall approachRuby an overall approach
Ruby an overall approachFelipe Schmitt
 
Ro R(2)
Ro R(2)Ro R(2)
Ro R(2)tomcoh
 
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)Gabriel Walt
 
Practical Intro Merb
Practical Intro MerbPractical Intro Merb
Practical Intro MerbPaul Pajo
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Ivano Malavolta
 
Re-imaginging CakePHP
Re-imaginging CakePHPRe-imaginging CakePHP
Re-imaginging CakePHPGraham Weldon
 
Javascript as a Platform
Javascript as a PlatformJavascript as a Platform
Javascript as a PlatformVlad Mysla
 
Ruby formatters
Ruby formattersRuby formatters
Ruby formattersVisuality
 

What's hot (20)

Myphp-busters: symfony framework
Myphp-busters: symfony frameworkMyphp-busters: symfony framework
Myphp-busters: symfony framework
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
 
Ruby On Rails Basics
Ruby On Rails BasicsRuby On Rails Basics
Ruby On Rails Basics
 
Rails, ExtJs, and Netzke
Rails, ExtJs, and NetzkeRails, ExtJs, and Netzke
Rails, ExtJs, and Netzke
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
 
Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Ruby
 
Ruby an overall approach
Ruby an overall approachRuby an overall approach
Ruby an overall approach
 
Project Zero JavaOne 2008
Project Zero JavaOne 2008Project Zero JavaOne 2008
Project Zero JavaOne 2008
 
Ro R(2)
Ro R(2)Ro R(2)
Ro R(2)
 
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
 
Practical Intro Merb
Practical Intro MerbPractical Intro Merb
Practical Intro Merb
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 
Re-imaginging CakePHP
Re-imaginging CakePHPRe-imaginging CakePHP
Re-imaginging CakePHP
 
Gearman
GearmanGearman
Gearman
 
Javascript as a Platform
Javascript as a PlatformJavascript as a Platform
Javascript as a Platform
 
Ruby formatters
Ruby formattersRuby formatters
Ruby formatters
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
 
pearls of Perl
pearls of Perlpearls of Perl
pearls of Perl
 
Merb tutorial
Merb tutorialMerb tutorial
Merb tutorial
 

Similar to Merb For The Enterprise

Merb presentation at ORUG
Merb presentation at ORUGMerb presentation at ORUG
Merb presentation at ORUGMatt Aimonetti
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on RailsViridians
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010arif44
 
Introducing Merb
Introducing MerbIntroducing Merb
Introducing MerbBalint Erdi
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First MileGourab Mitra
 
General Assembly Workshop: Advanced JavaScript
General Assembly Workshop: Advanced JavaScriptGeneral Assembly Workshop: Advanced JavaScript
General Assembly Workshop: Advanced JavaScriptSpike Brehm
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails FinalRobert Postill
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHPGautam Rege
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassSpike Brehm
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails PresentationPaul Pajo
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Coursepeter_marklund
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLBarry Jones
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsSpike Brehm
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on railspmashchak
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for RubyistsDoug Goldie
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationAndolasoft Inc
 

Similar to Merb For The Enterprise (20)

Merb presentation at ORUG
Merb presentation at ORUGMerb presentation at ORUG
Merb presentation at ORUG
 
Ruby On Rails Introduction
Ruby On Rails IntroductionRuby On Rails Introduction
Ruby On Rails Introduction
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
 
Introducing Merb
Introducing MerbIntroducing Merb
Introducing Merb
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
General Assembly Workshop: Advanced JavaScript
General Assembly Workshop: Advanced JavaScriptGeneral Assembly Workshop: Advanced JavaScript
General Assembly Workshop: Advanced JavaScript
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
 
Rails Concept
Rails ConceptRails Concept
Rails Concept
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHP
 
Dev streams2
Dev streams2Dev streams2
Dev streams2
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master Class
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for Rubyists
 
Things you must know on ruby on rails single page application
Things you must know on ruby on rails single page applicationThings you must know on ruby on rails single page application
Things you must know on ruby on rails single page application
 
Merb + Nanite
Merb + NaniteMerb + Nanite
Merb + Nanite
 

More from Matt Aimonetti

Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Matt Aimonetti
 
2D Video Games with MacRuby
2D Video Games with MacRuby2D Video Games with MacRuby
2D Video Games with MacRubyMatt Aimonetti
 
Future Of Ruby And Rails
Future Of Ruby And RailsFuture Of Ruby And Rails
Future Of Ruby And RailsMatt Aimonetti
 
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden pathRails3: Stepping off of the golden path
Rails3: Stepping off of the golden pathMatt Aimonetti
 
Macruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich KilmerMacruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich KilmerMatt Aimonetti
 
MacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meetMacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meetMatt Aimonetti
 

More from Matt Aimonetti (8)

Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
 
2D Video Games with MacRuby
2D Video Games with MacRuby2D Video Games with MacRuby
2D Video Games with MacRuby
 
Future Of Ruby And Rails
Future Of Ruby And RailsFuture Of Ruby And Rails
Future Of Ruby And Rails
 
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden pathRails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
 
Macruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich KilmerMacruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich Kilmer
 
MacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meetMacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meet
 
Merb Plugins 101
Merb Plugins 101Merb Plugins 101
Merb Plugins 101
 
Lazy Indexing
Lazy IndexingLazy Indexing
Lazy Indexing
 

Recently uploaded

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Recently uploaded (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

Merb For The Enterprise

  • 1. merb & f l e x i b i l t y p e r f o r m a n c e
  • 2. Me
  • 3. Matt Aimonetti Me irc: m a t t e t t i http://github.com/mattetti
  • 4. core team member & Matt evangelist
  • 5. don’t work at Engine Yard Matt http://engineyard.com
  • 6. don’t work at Engine Yard Matt http://engineyard.com
  • 7. Consultant Matt based in San Diego, CA
  • 9. Blogs: http://merbist.com http://railsontherun.com
  • 10.
  • 11.
  • 12. Conclusion merb meets the Enterprise needs ✓Cost ✓Adaptability ✓Scalablility
  • 13.
  • 14. “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
  • 15. 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
  • 16. 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
  • 19. “The slowest programming language in the world”
  • 21.
  • 23. raw PHP: 331 rps cake PHP: 3.6 rps / 8 rps(eaccelerator)
  • 24. raw PHP: 331 rps cake PHP: 3.6 rps / 8 rps (eaccelerator) code igniter: 21.5 rps / 98.2 rps (eaccelerator)
  • 25. raw PHP: 331 rps cake PHP: 3.6 rps / 8 rps (eaccelerator) code igniter: 21.5 rps / 98.2 rps (eaccelerator) Rails: 88 rps
  • 26. Rails is pretty close to the fastest PHP framework.
  • 28. hello world benchmarks baseline results
  • 29. apache serving static html: hello.html raw PHP: <?php echo quot;Hello worldquot;; ?> merb router: match(quot;/hello worldquot;)
  • 30. Merb Router Static HTML raw php 3783 req/s 2898 req/s 1995 req/s http://merbist.com
  • 31. 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
  • 32. Ruby might be slow at fibonacci benchmarks who cares?
  • 33. Ruby is fast at real life web benchmarks that’s what matters!
  • 34. Ruby for the web is NOT slow
  • 35.
  • 37. Enterprise Enterprise needs enterprise software
  • 38. Enterprise “Enterprise software is software intended to solve an enterprise problem (rather than a departmental problem) and often written using an Enterprise Software Architecture.”
  • 39. Enterprise enterprise problem != departmental problem
  • 40. Enterprise an enterprise problem covers problems from many different departments
  • 41. Enterprise many different departments means different needs/challenges
  • 42. Enterprise “Enterprise software is software intended to solve an enterprise problem (rather than a departmental problem) and often written using an Enterprise Software Architecture.”
  • 44. Enterprise http://en.wikipedia.org/wiki/Enterprise_architecture
  • 46. 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 [...]”
  • 47. Enterprise Elite
  • 48. Enterprise what about the not so large companies?
  • 49. 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.”
  • 50. Enterprise “complex development programming tools that require specialist capabilities”.
  • 51. Enterprise Business Software Solutions Applications and Services
  • 52. Enterprise SAP system CRM ERP NetWeaver ABAP SRM
  • 53. Enterprise Concerns: cost adaptability
  • 54. Enterprise Concerns: Does it scale?
  • 55. Enterprise scalability loads of req/s easily extendable swap/extract parts
  • 56. what about merb? because that’s why I’m here
  • 57. cost open source free as in free speech
  • 58. cost ruby Great language - widely adopted - enjoyable momentum
  • 59. bet on Ruby MacRuby Rubinius
  • 60. bet on Ruby MacRuby Rubinius
  • 61. cost reusable merb slices - mountable mini applications
  • 62. 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
  • 63. cost smooth transition access your Java code directly from Merb deploy your merb app like you deploy your java apps
  • 64. cost choose model the entire business enterprise build common tools for common use
  • 66. adaptability merb is truly modular http://flickr.com/photos/ testing template ORM JS lib framework engine
  • 67. $ 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
  • 68. $ merb-gen app app-name merb stack MVC architecture asset management caching view helpers mailer authentication exceptions handler
  • 69. adaptability pick and choose add/remove dependencies
  • 70. adaptability pick and choose extend plugins - slices - API
  • 71. adaptability pick and choose extend replace build around merb core
  • 72. scalability see benchmarks modularity small memory footprint
  • 76. http://flickr.com/photos/ezzyponchi/283381271/ http://bonluxat.com merb is modular
  • 77. merb can be opinionated
  • 78. merb recycling
  • 79. 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
  • 80. Conclusion merb meets the Enterprise needs ✓Cost ✓Adaptability ✓Scalability