-
Recent Posts
Tags
app engines attributes cgi database DBI Debian frameworks full screen terminal GWT hacks hardware hobbit howto html inheritance javascript jQuery libraries Linux mac oracle OSX parallels Perl photoshop pixels PostgreSQL programming qa regression testing screen size Software Development style template toolkit term Theory translation type cast User Interface virtual machine virtual machines visual studio vmware web design web programming
The Promise of App. Engines
I often use the metaphor ‘build’ for software development, and have considered that directly in a separate article. One place that that metaphor breaks down is with all the work that must go into maintaining an app once it is deployed. You might have built the darn thing, but if you don’t maintain the server and backup the database, it’s not going to be useful for very long.
The promise of software like Google’s Application Engine is that it fulfills a lot of non-functional requirements that would ordinarily be the domain of entire IT departments. For example: the app is hosted on Google’s servers, so there is no hardware to maintain. The app’s data is stored in the GAE data store, so there is no database to backup, update, secure and maintain.
Furthermore, if one buys the marketing, these ‘hosted’ apps also scale a lot better than say something written for mod-perl running out of a Debian box in a data center. I’m not exactly clear how this works — I mean from a web server perspective, it’s fairly pat: on some level the GAE adds web servers to scale with increasing numbers of requests. My question is how does the data store scale? I have found it quite challenging to conceptualize how to partition a database so that servers can be added and an app can scale. Does the GAE data store take care of this for you?
In any case, as the proud owner of one circa 2003 beige box grinding away somewhere in a datacenter in Delaware, the Google App Engine (And Amazon’s offering, which I know less about) promises a great deal in terms of aleviating headaches, and promoting the creative craftsmanship side of web app development.