Saturday 1 June 2013

Let's Deploy!

My partner, Ben, is putting together a series of articles for TechRepublic on choosing between Sinatra, Padrino and Rails.
To help him determine the management pros and cons of each system, I decided to do a series of posts about the end to end processes with each.
I started with a simple application that addresses some of the common issues faced in the real world.
The simple application accepts requests in a RESTful fashion for IPv4 addresses and returns the associated country in JSON or XML format.
To make the decisions more interesting, I have added the following versions of each system:

  • ORMs: DataMapper, ActiveRecord and Sequel.
  • DBs:  Development: Sqlite and MySQL, Production: MySQL and PostgreSQL
  • Deployment Targets: Hosted server, Heroku and EngineYard
  • Deployment Systems: Capistrano and Vlad

Topics covered in development and production include:

  • Access logging (Apache style)
  • Execution logging (Log4j style)
  • Migrations
  • Initial data seeding
  • Simple authorization

Source control will be managed using Git.
All code will use Ruby2.

So over the next few weeks I will be posting these articles with all source code.
All the source code will be made available via my GitHub repo.

After that I will consider doing the same for JRuby, Java, Groovy and Grails onto Jetty, Tomcat and Resin.
If I'm feeling perverse enough, I may do the same for PERL and maybe even PHP5 under Quercus (PHP on the JVM)

It's all a learning experience!


P.S. If anyone has any suggested additions to the above please leave a comment.

No comments:

Post a Comment