Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Play's deployment process is more or less:

$ play dist

$ unzip app-name.zip

$ cd app-name

$ ./bin/start

Can dist on build server and copy archive to prod if that option is available (or upload from local dev machine).

It's ridiculously simple, and all generated at compile time.

I don't understand hand wringing deployments, is Rails _that_ good?

I mean, outside of MVC, RESTful routing, form validation, AR, migrations, etc. functionality that exists in other frameworks/libraries, what does Rails actually bring to the table that is unique?

Is it the gem ecosystem, where you can find x,y,z functionality that exists nowhere else, or some cutting edge Rails feature? I don't know, just asking, spent a year on a Rails clone, Grails, and was not really taken, tracking runtime MOP errors is no joy, give me a static compiler any day over that.



I live Play, but that deployment only works for the simplest solutions.

Need versioned assets? Need multiple versions of assets in prod? Play doesn't do it out of the box.

Need a specific version of the JVM? Play can't help you there.

Need to change your start script to do something different (ports, SSL, JVM config). Play can't do it.

Play is very far from deploy script.


> Need versioned assets? Need multiple versions of assets in prod? Play doesn't do it out of the box.

Just turn off assets entirely as the Capistrano author does with Rails. Running Bower + GruntJS here, snappy fast, well happy working with tools designed for the job.

Not sure about multiple asset versions, I just have front end web server handle inbound /assets/img/foo.timestamp.png request as /assets/img/foo.png. It's not too difficult to create an asset helper trait to append timestamp at container start up to asset paths.

> Need a specific version of the JVM? Play can't help you there.

This is hardly a strike against Play, installing Java is not exactly an overwhelming task ;-)

> Need to change your start script to do something different (ports, SSL, JVM config). Play can't do it.

Excuse me?

./bin/start -server -Xms128m -Xmx512m -Dhttp.port=9001 -Dhttp.address=172.16.53.1 -Dlogger.file=${HOME}/logger.xml -Dconfig.file=conf/prod.conf




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: