Sunday, July 19, 2009

Workshop 7: End of the Line (Part 2)

Well it appears that I was wrong. I have managed to produce an application that integrates booking a cab with an authentication mechanism. However even though I have successfully melded these 2 attributes together the sum of the parts still does not make an appropriate production application.

In order for this application to be production ready a large number of enhancements would need to be developed. This would include the following:

  • save bookings to database
  • allow retrieval of previous bookings so user can review booking history
  • allow for payments
  • have comprehensive test suite
  • etc

Deployment

According to (Hartl, chapter 17) Mongrel is suitable to use as a webserver for Production use with a ROR application. Currently, there are only two things that everyone seems to agree on: Use Mongrel as the Rails application server, and deploy to some flavor of Unix (most commonly Linux). The rest is up to you. One option is to use a shared host. Because of the explosive growth of Rails, there are now many shared host options, and a web search for "Rails shared host" provides a cornucopia of possibilities. If you're deploying to your own server, they recommend running Apache in front of a single Mongrel process to start.

After locating the server, to deploy you need to do the following:
  1. Create the production database
  2. specify the production database details in the database.yml file
  3. migrate the application to production
    rake db:migrate RAILS_ENV=production

(Hartl, ch17) recommends the following to set up a production Rails application:

  • Linux/Apache/Mongrel for deployment
  • Caching mod_proxy_balance and shared nothing and for scaling
  • Subversion or darcs for version control
  • Capistrano for automated deployment and rollback

References
Hartl, M & Prochazka, A (2008). RailsSpace: Building a Social Networking Website with Ruby on Rails, Pearson Education

No comments:

Post a Comment