Monday, September 8, 2008

Working on Cloud Nine

Well, maybe it's just cloud three, but you know what I mean.

I've been involved in Internet-based businesses since 1994, everything from designing and building datacenters to managing servers, to designing, implementing and supporting large database-driven applications.  I've worked in a number of environments and supported clients in a wide range of industries, and every couple of years, I've watched as the barrier to entry for businesses keeps getting lower and lower.  While there are certainly some problems associated with this--a web presence can give a fraudster more apparent credibility--the benefits are outstanding.  Large corporations will always have their place, but if the leader in a market niche does not address the needs of all of their clients, the environment is getting more and more friendly for small, agile companies to meet those needs, either in complement to or competition with the larger corporations.

The latest such democratizing technology that is in my sights is Google AppEngine (GAE).  There are other competing cloud technologies, most notably Amazon Web Services (AWS), which has stand-alone services for bulk data and database storage, process queuing and virtual machine-based processing power.  I spent some time playing with AWS, and it's got a really powerful feature set, but GAE takes a tack that speaks more to my desired approach to cloud computing.

The main thing is simplicity.  AWS seems to be trying to make the old guard more comfortable by simulating datacenters.  If you want to scale your application, you build it to automatically spawn new virtual servers, and build it such that those virtual servers load balance effectively, and drop off appropriately when load requirements are down.  Data and process synchronization is up to you, the developer.

With GAE, it's kind of like they took AWS and applied BestBuy's "easy button" philosophy.  There are some features that may be missing, and some developers feel very strongly about those features, but for me, the fact is, I can write my application, and if it gets hit once, it's available.  If it gets  hit a million times, it's available, and (once GAE is out of beta), I just pay for the added volume of transactions and associated processing/storage as needed.  I don't need to modify my code.  The datastore (BigTable) is part of the same service, so there is no special key management or other hoops to go through in order to get and put your data.  While I would not call AWS byzantine by any stretch, I found that what I was able to accomplish within a few hours of discovering AWS, I was able to do within a few minutes of discovering GAE.

Of course, one key word here is "beta".  GAE is in beta testing, with no road map concerning feature updates or release dates, and so many people are hesitant to commit to it.  I'm keeping my ear to the ground on this one, because without knowing what's coming, it's hard to treat this as more than a hobby.

But that having been said, I'm just thrilled that I don't have to configure Apache, that I don't have to update any kernel.  That I don't have to synch any *SQL databases.  That I don't have to harden my linux boxes.  That I don't have to... you get the picture.

So this blog is about the development of an application I'm working on, currently called SaleRadar, although that name may change.  I'm building it from scratch in the GAE environment, though, so much of the content will be focused on the intricacies of solving problems with that system's restrictions.  Google has, with GAE, reinvented a few wheels, and it's interesting to pick apart what's gained and what's lost with each of these revisions; it forces the developer to think about their application's architecture differently than they might have.

Finally, there will likely be some discussion if the ins and outs of Python in this blog, because I have typically worked in PERL (with some PHP and Java) on the server side, and Javascript on the client side.  Currently, Python is the only language supported by GAE, and while my initial reaction was that they should also support my language of choice (and there were choruses of similar shouts about other laguages), I figured I wouldn't wait around, so I've dived into Python as well, and found myself appreciating the move more than I expected to.

A basic version of SaleRadar is already working.  In my next post, I'll talk about some of the steps I took to get there before I discuss some of the changes I have planned for the near future.

1 comment:

Anonymous said...

We are also providing web hosting and web hosting services.
- We provides Domain Name Registration Solutions to expand your business without breaking your budget.web site hosting