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)
- 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.