Ben Point

 

The Anthropology of Software

Ben Point RSS feed   

Southwestern Uganda
Flying over northern Arizona
Santa Barbara

Software Related

Joel on Software

JoS: General

JoS: Business

JoS: Design

The Old New Thing

Sorting It All Out

Dare Obasanjo

ongoing

firstobject news

cmarkup

xmljungle

 

Startup/µISV

MicroISV

CodeSnipers

Planet MicroISV

My Micro-ISV

Keith Casey (KC)

Gavin Bowman

Ben/BRKStudio

Paul Dix

Ian Landsman

Bobby Strickland

Neville Franks

Phil

Mike

Ben McGaughey

Serge Wautier

Bob Walsh

Carmen Ferrara

Christopher Hawkins

Nick Bradbury

Dharmesh Shah

Philipp Schumann

NGEDIT guy (J)

Gurock Brothers

 

Me at CodeSnipers.com

Glossary of Text Encoding

Splitting Surrogate Pairs

The Enigma of Encoding Versions

How I Invented Base64

EBCDIC to ASCII (and SBCS) Conversion

That Ol' OEM Code Page

Phantom Currency Signs in Japan and Korea

The Euro Sign Predicament

Oh No! Mojibake!

How to Determine Text File Encoding

The secret family split in Windows code page functions

Whether Double-Byte Is ANSI

Strange case of two system locale ANSI charsets

 

 

« Anonymous Posting is the Backbone of the JOS Forums

 | Main | 

 

Google App Engine is a Micro ISV Dream

Rukungiri panorama

A key to Microsoft's success in the 80s and 90s was that software enterpreneurs could easily develop for MS-DOS and Windows and get in front of their customers, and that in turn strengthened Microsoft. Allowing entrepreneurs to make money by building on top of your platform cements your platform's place in computing. Google has released a few small APIs and Google Gadgets, but never attempted to introduce a major platform.

Since the days when GMail alerted everyone that Google was more than just Internet search, Google seems to have branched into a dizzying array of software niches, rarely throwing a knockout punch though. Google Docs is still a very weak product and Froogle was dropped in favor of Product Search, but in general their products are fast and have a lot of potential.

BigTable

When Google started talking to techies about BigTable some 2.5 years ago, my mind registered the first faint murmurs of something revolutionary, actually something long overdue. While other companies focused on the same difficult problems with the same old legacy based database infrastructures, Google quietly went and applied its search engine know-how to the problem of productizing a fast, scalable and reliable storage technology on its signature clusters of cheap Linux boxes.

No doubt there is a lot of money for Oracle, Microsoft and their partners in putting developers through the same old paces with databases, configuration, clustering, load balancing, expensive RAID systems, yada yada yada. It seems like their solutions are always a matter of trying harder at the same old techniques rather than developing a technology that is better suited to the problem. But the revolution is fast approaching, and BigTable has the necessary ingredients.

Every database these days touts itself as scalable, but the fact is that every large web site whether on Unix or Windows has jerry-rigged its data infrastructure in many stressful iterations during periods of exponential growth. That kind of growth is a nice problem to have, but do we really have to believe it must come with huge technical growing pains in scalability and availability?

Along comes Google App Engine. Google realized that truly solving the pain involved a compromise which makes the Google App Engine datastore different from normal databases and inappropriate for some kinds of applications. But actually it is likely to be great wherever there are potentially huge data needs. The Google App Engine datastore is based on BigTable and has 2 chief advantages over traditional database technologies like Oracle and SQL Server:

  • its schemaless design makes it easier to develop and evolve your application
  • its transaction limitations enforce a scalable design in your application from the start
  • It is unavoidable that the transition from traditional databases will slow adoption of Google App Engine, even though its better-suited features are sure to eventually replace those of traditional databases in web development.

    Inside Google

    One of the barriers faced by a web-based micro ISV or startup is getting customers to create yet another account.

    Microsoft tried valiantly with its "passport" technology (now Live ID) to get web sites to re-use a Microsoft managed account, but there are inherent challenges in the external integration. Google offers a refreshingly simple answer through Google App Engine that needs no explanation: have all the apps that use Google accounts run inside Google! Why not?

    Actually, except for the Orwellian connotations, running your application from inside Google offers a lot of benefits to small entrepreneurs who through economies of scale can cheaply have as good an infrastructure as the big leaguers (maybe better):

  • Google App Engine keeps your application on multiple servers in different locations for high availablility.
  • It even keeps revisions of your application so you can rollback to a previous safer copy when a problem is discovered.
  • They take care of load balancing, adjusting for hot spots and sudden increases in traffic.

    That means no scrambling to amp up your servers the day you make the front page of the journal all your customers read.

    They just need good execution...

    This is all very promising but of course Google can still mess it up if it does not focus on maturing its app engine platform so developers can build complex applications. This doesn't mean babying customers with all the languages and frameworks they are requesting, but rather exposing all of the capabilities of a web server within the necessary confines of the sandbox and keeping it secure and reliable. Currently their Python SDK works very well, however it remains to be seen how development of complex applications goes and when the first large scale GAE apps come out.

    I started this blog 2.5 years ago in the wake of Hurricane Katrina with an article about Google Earth which is a product that remains singularly amazing. Now, Google App Engine is positioned to change web development and the Internet. Good going google!

    The breath-taking simplicity of this new paradigm makes current web platform and database options look antiquated. I predict that in five years Google will be dominant in web application hosting and in just 10 short years their BigTable based datastore will eclipse the Oracles and SQL Servers.

     

    Amazon's Elastic Compute Cloud (EC2) and Simple Storage Solution (S3) are still firmly planted in current web development technologies. In the Amazon case, web apps use current databases and development technologies while shoring this up with keyed storage via the S3 webservice and hosting apps on EC2 virtual server clouds. It is a sign of the revolution, and its strength is in leveraging current technologies, but it is not a new answer to the problem like Google App Engine is.

    note by original poster Ben Bryant, 15 Apr 2008 08:40:00 -0500

    Post a comment

    « Anonymous Posting is the Backbone of the JOS Forums

     | Main | 

     

  •  

    Ben Bryant
    Software Developer
    Anthropologist

    View Ben Bryant's profile on LinkedIn
     

    The Market Software Development Paradigm

    Death March in an Information Technology Project

    Building the Machine That Will Build the Machine

    I See Markup

    Anthropologists In Software Design