« A Quick Redis Key-Value Example for the Holidays | Main | NoSQL on the Cloud: Our First Application »
Monday
Aug162010

Why Our Little NoSQL App Matters

So let's sum up -- after a handful of posts and a small but still sorrowful amount of command-line and rails code, we've managed to accomplish the following "Hello World" tasks in NoSQL on the cloud:

  1. Created a cloud account
  2. Got our first app created, and saw it in a browser on the web
  3. Loaded up real development environments (Ruby/Rails we added, Java we got for free)
  4. Added a stronger app server (thin >> webrick) and a stronger web server (nginx >> almost anything)
  5. Added our first NoSQL data store (MongoDB) and mapping software to simulate ActiveRecord in NoSQL
  6. Created a little NoSQL app to show all this, and made it visible though a dynamic DNS address:  Rails Mongo Notes Example

Just to wrap the little app up:  I updated John Nunemaker's Mongomapper demo app to work with Rails3 and the cloud, and if you like you can take a look at the code for it here:

 Rails Mongo Code.  

The main files you'll want to look at are the Gemfile, the model file note.rb, the controller notes_controller.rb, the views (basic Rails here), and the initializer mongo_config.rb.



But why are these little code bits even worth looking at at all?   There are some obvious drawbacks to the approach I've presented here:

  • Macs and Linux machines may not be common development environments in your shop
  • Amazon may be a cloud-leader, but wouldn't Azure make more sense?
  • Rails is nice, but doesn't Java rule our world?

Any of these things may well be true, but I think our curious platform is worth a look anyway, for one principal reason:  the software development "rules" coming out of the Rails / cloud worlds are becoming predominant in the broader programming discipline as well.   Rails and cloud developers originally arose from the Java and open-source camps, looking for the freedom and richness of web Javaland while avoiding its brittleness, such as Java's Kingdom of Nouns.

By some accounts they've achieved success -- as Tim O'Reilly has noted:



"Ruby on Rails is a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days."



With the Amazon cloud we've created a base environment image-file that we can launch in any quantity, inexpensively, in seconds, with all the basic tools we'll need to write and delivery rich applications that experiment with and (hopefully) advance the emerging tools in the "big data" and "cloud" worlds of computing.   There are a LOT of tools emerging in these worlds, and if we want to get familiar with them we'll need a sandbox to play with them in -- something rich, powerful, fast and cheap.   With our core image we now have that, and in coming posts we'll hopefully head out to some of the frontiers of this new world of computing.  We have LOTS to look at!

"Nothing is so dangerous to the progress of the human mind than to assume that our views of science are ultimate, that there are no mysteries in nature, that our triumphs are complete and that there are no new worlds to conquer." 
~ Sir Humphry Davy