How to sneak clojure into your rails shop

Post on 10-May-2015

477 views 3 download

Tags:

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

HOW TO SNEAK CLOJURE INTO YOUR RAILS SHOP

...and Improve Your Rails Hosting Along the Way

ABOUT ME

• Joshua Ballanco

• Live in Ankara, Turkey

• Chief Scientist at Burnside Digital

• We do Clojure

IF THIS WAS 2006...

HOW TO SNEAK RAILS INTO YOUR 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

• Infinispan for shared memory cache

• Quartz for scheduling

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

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 AND RUBY TALK

• HornetQ + TorqueBox/Immutant messaging libraries

• Infinispan + 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 confirmation when an alert is read

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

• Separation of concerns improves stability and scale

THANK YOU!

Joshua Ballanco

Burnside Digitalhttp://www.burnsidedigital.com