How to sneak clojure into your rails shop

11
HOW TO SNEAK CLOJURE INTO YOUR RAILS SHOP ...and Improve Your Rails Hosting Along the Way

description

This is the lightning talk I presented at Clojure/West 2013. In it, I cover how to utilize JRuby, Torquebox, and the Immutant Overlay project to introduce Clojure, gradually, into an environment where Rails is the norm.

Transcript of How to sneak clojure into your rails shop

Page 1: How to sneak clojure into your rails shop

HOW TO SNEAK CLOJURE INTO YOUR RAILS SHOP

...and Improve Your Rails Hosting Along the Way

Page 2: How to sneak clojure into your rails shop

ABOUT ME

• Joshua Ballanco

• Live in Ankara, Turkey

• Chief Scientist at Burnside Digital

• We do Clojure

Page 3: How to sneak clojure into your rails shop

IF THIS WAS 2006...

HOW TO SNEAK RAILS INTO YOUR JAVA SHOP

Page 4: How to sneak clojure into your rails shop

LEARN FROM RAILS

• Better to ask forgiveness than permission

• Use Clojure whenever it’s the best tool for the job

• ...and even when it’s just the right tool for the job

• Don’t be afraid to show off!

Page 5: How to sneak clojure into your rails shop

STEP 1: JRUBY

• Convince your Rails guys to use JRuby:

• Better tooling

• Better performance (in many cases)

• Java ecosystem

• Lots of hosting options

Page 6: How to sneak clojure into your rails shop

STEP 2: TORQUEBOX

• Stupid Simple Deployment: torquebox deploy && torquebox run

• JBoss strength and stability

• All the bells and whistles baked right in

• HornetQ for queueing, workers

• Infinispan for shared memory cache

• Quartz for scheduling

Page 7: How to sneak clojure into your rails shop

STEP 3: IMMUTANT OVERLAY

• Immutant is TorqueBox’s Clojure Counterpart (and so much more!)

• lein immutant install && lein immutant overlay

• Comes with: JBoss, Immutant, TorqueBox, and JRuby

• set some environment variables, then...

• torquebox deploy

• lein immutant run – Runs deployed Clojure and Ruby apps

Page 8: How to sneak clojure into your rails shop

STEP 4: OPENSHIFT

• From Red Hat

• Like Heroku, but open source (and you have ssh access)

• Deploy with a git push

• Use the ployglot-openshift-quickstart (http://github.com/)

• Deploy Ruby and Clojure based applications to the same instance

Page 9: How to sneak clojure into your rails shop

STEP 5: MAKE CLOJURE AND RUBY TALK

• HornetQ + TorqueBox/Immutant messaging libraries

• Infinispan + TorqueBox/Immutant caching libraries

• Higher-level abstractions

(keep an eye on http://blogs.burnsidedigital.com)

Page 10: How to sneak clojure into your rails shop

STEP 6: SHOW OFF

• Once it’s working, tell everyone why its so great!

• Sends alerts and receives confirmation when an alert is read

• Manage users, groups, organizations, permissions, etc.

• Separation of concerns improves stability and scale

Page 11: How to sneak clojure into your rails shop

THANK YOU!

Joshua Ballanco

Burnside Digitalhttp://www.burnsidedigital.com