Enterprise Open SourceJason DewBudget and Control Board
Office of Research and Statistics
Health and Demographics
Situation
ORS is a service agency -- mostly we serve other state agencies
very limited in our web development staff resources
fortunate enough to have management that allows us some freedom in selecting our tools
The Solution
Ruby on Rails - web framework
mySQL - database server
Nginx - web server
Thin - application server
Git - source control
Capistrano - automated deployment
Free and Open Sourcealso known as F/OSS
Rails
Rapid prototyping
MVC architecture
Easy code reuse
Contains an ORMActiveRecord
Rapidly evolving through the community
Prominent Rails Deployments
Twitter.com
YellowPages.com
GitHub.com
Shopify.com
many more
Ruby
Ruby is powerful
3.days.ago
account.paid_up?
client.age = 42
Ruby makes nice DSLs(Domain Specific Languages)
class Account
belongs_to :client has_many :purchases
end
Business Natural Languagehttp://bnl.jayfields.com/
employee John Jones
compensate $2500 for each deal closed in the past 30 days
compensate $500 for each active deal that closed more than 365 days ago
compensate 5% of gross profits if gross profits are greater than $1,000,000
Ruby Implementations
MRI (Matz Ruby Interpreter), written in C
JRuby, written in Java
Rubinius, written in Ruby (mostly)
IronRuby (aka Ruby.NET), written in C#
Ruby in Industry
Sun Microsystems has two engineers dedicated to JRuby
Sun also sponsors most Ruby Conferences
Sun sponsoring Rubinius support as well
Engine Yard has 6 dedicated engineers on Rubinius
Microsoft supporting IronRuby
Google beginning to support Ruby in App Engine
The Ruby/Rails Community
Ruby-Talk has over 2,000 members, averaging about 3,000 posts per month
Rails-Talk has over 15,000 members, averaging about 4,000 posts per month
Very helpful folks in IRC on #rubyonrails, #jruby, #rubinius, etc
mySQL
Robust relational database
Supports multiple storage engines
Recently acquired by Sun Microsystems
Nginx
3rd most popular web server†
lighter and faster than Apache
used by Hulu.com, WordPress.com, etc
†http://survey.netcraft.com/Reports/200806/
Thin
Very thin proxy for Rails process
Fast for many short requests
Mongrel for loads that contain long-running processes
Git
Distributed version control system
Created by Linus Torvalds (who also created Linux)
Used on one of the largest F/OSS projects
GitHub.com for free hosting
Capistrano
Automated deployment
Interfaces with Git, Subversion, etc
Easily deploy to many servers
Questions?