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.
HOWTO SNEAK CLOJUREINTOYOUR RAILS SHOP...and ImproveYour Rails Hosting Along the Way
ABOUT ME• Joshua Ballanco• Live in Ankara,Turkey• Chief Scientist at Burnside Digital• We do Clojure
IFTHIS WAS 2006...HOWTO SNEAK RAILS INTOYOUR JAVA 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!
STEP 1: JRUBY• Convince your Rails guys to use JRuby:• Better tooling• Better performance (in many cases)• Java ecosystem• Lots of hosting options
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• Inﬁnispan for shared memory cache• Quartz for scheduling
STEP 3: IMMUTANT OVERLAY• Immutant isTorqueBox’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
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
STEP 5: MAKE CLOJURE ANDRUBYTALK• HornetQ +TorqueBox/Immutant messaging libraries• Inﬁnispan +TorqueBox/Immutant caching libraries• Higher-level abstractions(keep an eye on http://blogs.burnsidedigital.com)
STEP 6: SHOW OFF• Once it’s working, tell everyone why its so great!• Sends alerts and receives conﬁrmation when an alert is read• Manage users, groups, organizations, permissions, etc.• Separation of concerns improves stability and scale