merb & f l e x i b i l t y p e r f o r m a n c e Me Matt - - PowerPoint PPT Presentation

merb
SMART_READER_LITE
LIVE PREVIEW

merb & f l e x i b i l t y p e r f o r m a n c e Me Matt - - PowerPoint PPT Presentation

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 d o n t w o r k at Engine Yard Matt http://engineyard.com d o n


slide-1
SLIDE 1

&

merb

f l e x i b i l t y p e r f o r m a n c e

slide-2
SLIDE 2

Me

slide-3
SLIDE 3

Me Matt Aimonetti irc: m a t t e t t i

http://github.com/mattetti

slide-4
SLIDE 4

core team member & evangelist

Matt

slide-5
SLIDE 5

d o n ’ t w o r k

at Engine Yard

Matt

http://engineyard.com
slide-6
SLIDE 6

d o n ’ t w o r k

at Engine Yard

Matt

http://engineyard.com
slide-7
SLIDE 7

Matt C o n s u l t a n t

based in San Diego, CA

slide-8
SLIDE 8

http://ma-agile.com/training

slide-9
SLIDE 9

Blogs:

http://merbist.com http://railsontherun.com

slide-10
SLIDE 10
slide-11
SLIDE 11
slide-12
SLIDE 12

C o n c l u s i o n

✓Cost ✓Adaptability ✓Scalablility

merb meets the Enterprise needs

slide-13
SLIDE 13
slide-14
SLIDE 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

slide-15
SLIDE 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

slide-16
SLIDE 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

slide-17
SLIDE 17

Rails is slow

slide-18
SLIDE 18

Ruby is slow

slide-19
SLIDE 19

“The slowest programming language in the world”

slide-20
SLIDE 20

benchmarks someone?

slide-21
SLIDE 21
slide-22
SLIDE 22

raw PHP: 331 rps

slide-23
SLIDE 23

raw PHP: 331 rps cake PHP: 3.6 rps / 8 rps (eaccelerator)

slide-24
SLIDE 24

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

slide-25
SLIDE 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

slide-26
SLIDE 26

Rails is pretty close to the fastest PHP framework.

slide-27
SLIDE 27

what about merb?

slide-28
SLIDE 28

hello world benchmarks

baseline results

slide-29
SLIDE 29

apache serving static html:

hello.html

raw PHP:

<?php echo "Hello world"; ?>

merb router:

match("/hello world")

slide-30
SLIDE 30 Merb Router Static HTML raw php 1995 req/s 2898 req/s 3783 req/s http://merbist.com
slide-31
SLIDE 31 $ ab test: ab -c 10 -n 5000 http://0.0.0.0/benchmark Merb 1.0 Django 1.0.1 Rails 2.2.1 Code Igniter 1.6.3 Symfony Cake PHP http://merbist.com
slide-32
SLIDE 32

Ruby might be slow at fibonacci benchmarks

who cares?

slide-33
SLIDE 33

Ruby is fast at real life web benchmarks

that’s what matters!

slide-34
SLIDE 34

Ruby for the web is NOT slow

slide-35
SLIDE 35
slide-36
SLIDE 36

Enterprise

slide-37
SLIDE 37

Enterprise Enterprise needs enterprise software

slide-38
SLIDE 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.”

slide-39
SLIDE 39

Enterprise

enterprise problem != departmental problem

slide-40
SLIDE 40

Enterprise

an enterprise problem covers problems from many different departments

slide-41
SLIDE 41

Enterprise

many different departments means different needs/challenges

slide-42
SLIDE 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.”

slide-43
SLIDE 43

Enterprise

Enterprise Software Architecture

slide-44
SLIDE 44

Enterprise

http://en.wikipedia.org/wiki/Enterprise_architecture
slide-45
SLIDE 45

Enterprise

  • rganization-specific software architecture
slide-46
SLIDE 46

Enterprise

“Due to the cost

  • f building what is often proprietary software,
  • nly large organizations

attempt to build such software that models the entire business enterprise [...]”

slide-47
SLIDE 47

Enterprise

Elite

slide-48
SLIDE 48

Enterprise

what about the not so large companies?

slide-49
SLIDE 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.”

slide-50
SLIDE 50

Enterprise

“complex development programming tools that require specialist capabilities”.

slide-51
SLIDE 51

Enterprise

Business Software Solutions Applications and Services

slide-52
SLIDE 52

Enterprise

ABAP

NetWeaver SAP system

ERP CRM SRM

slide-53
SLIDE 53

Enterprise cost adaptability Concerns:

slide-54
SLIDE 54

Enterprise Does it scale? Concerns:

slide-55
SLIDE 55

Enterprise loads of req/s scalability easily extendable swap/extract parts

slide-56
SLIDE 56

what about merb?

because that’s why I’m here

slide-57
SLIDE 57

cost

  • pen source

free as in free speech

slide-58
SLIDE 58

cost

ruby

Great language - widely adopted - enjoyable momentum

slide-59
SLIDE 59

Ruby bet on

MacRuby Rubinius

slide-60
SLIDE 60

Ruby bet on

MacRuby Rubinius

slide-61
SLIDE 61

cost

reusable

merb slices - mountable mini applications

slide-62
SLIDE 62

cost

reusable merb slices

Merb::Router.prepare do slice(:blog, :path => "blog") slice(:wiki, :path => "wiki") slice(:public_calendar, :path => "calendar") end

slide-63
SLIDE 63

cost

smooth transition

access your Java code directly from Merb deploy your merb app like you deploy your java apps

slide-64
SLIDE 64

cost

model the entire business enterprise build common tools for common use choose

slide-65
SLIDE 65

adaptability

because needs differ and change

slide-66
SLIDE 66

adaptability

merb is truly modular

ORM JS lib testing framework template engine

http://flickr.com/photos/
slide-67
SLIDE 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 "Hi, I am 'very flat' Merb application. I have everything in one single file and well suited for dynamic stub pages." end end
slide-68
SLIDE 68

$ merb-gen app app-name

merb stack

MVC architecture asset management caching view helpers mailer authentication exceptions handler

slide-69
SLIDE 69

pick and choose

adaptability

add/remove dependencies

slide-70
SLIDE 70

pick and choose

adaptability

extend

plugins - slices - API

slide-71
SLIDE 71

pick and choose

adaptability

extend replace

build around merb core

slide-72
SLIDE 72

scalability

see benchmarks modularity small memory footprint

slide-73
SLIDE 73

sum up

slide-74
SLIDE 74

merb is fast

slide-75
SLIDE 75

merb is flexible

slide-76
SLIDE 76

merb is modular

http://flickr.com/photos/ezzyponchi/283381271/ http://bonluxat.com
slide-77
SLIDE 77

merb can be opinionated

slide-78
SLIDE 78

merb ♥ recycling

slide-79
SLIDE 79

matz likes merb

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.

slide-80
SLIDE 80

C o n c l u s i o n

✓Cost ✓Adaptability ✓Scalability

merb meets the Enterprise needs

slide-81
SLIDE 81

questions?