Filed under: appengine, google
I’ve been developing a small app using Google’s AppEngine. My first impression is that developing in the sandboxed python environment forces you to KISS. The SDK makes things dead simple in terms of templating, data access, and controlling which scripts map to which urls.
The side affect of abstracting the data access layer is that I no longer have to spend much time with database schema. That’s because AppEngine doesn’t run a traditional relational database and doesn’t allow you to run traditional SQL against the data store. I end up writing horribly un-optimized ‘queries’ because I’m not able to write highly optimized SQL queries. The SDK is obviously geared to take full advantage of the instant look up and high throughput that BigTable excels at.
For example, for these 2 objects:
class Attribute(db.Model):
author = db.UserProperty()
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
class UserAttribute(db.Model):
attribute_key = db.ReferenceProperty(Attribute)
user = db.UserProperty()
date = db.DateTimeProperty(auto_now_add=True)
I can access all the Attributes that belong to the User with the following code:
query = db.Query(UserAttribute)
user_attributes = query.filter('user =', \
users.get_current_user())
attributes = [ua.attribute_key for ua in user_attributes]
I’ll keep updating as I dig into the SDK.
Filed under: google
Tonight Google releases Google App Engine and TechCrunch.com has the coverage.
The biggest news is that App Engine is free to use up to a certain amount, like all other Google developer services. (As I previously postulated.) Pricing after the free period has yet to be determined.
Applications cannot use more than 500 MB of total storage, 200 million megacycles/day CPU time, and 10 GB bandwidth (both ways) per day.
The downside is that all the apps have to be written in Python. It’s a language that’s not as popular as PHP or as chic as Ruby but has been proven to scale and seems to be getting traction again as django matures.
I, for one, would love to be getting back into Python but Google App Engine won’t be a home run until they offer it in true services style. Any language and piecemeal. For example, as I read it, I can’t use BigTable and GFS for my self-hosted PHP application. Undoubtedly, this will eventually happen. I can also see Amazon firing back making portions of AWS free for small users.
Update: HighScalability.com has a good technical overview of GAE’s sandboxed python environment.
Filed under: google
Dave Winer offers a compelling reason on why Google would offer it’s Web Services (AWS competitor) for free. (That is if they actually release one like I predicted for this year.)
The basic premise is that if GWS were free, Google could reap the benefits of having a whole heap of developers tied into their platform. After which acquiring a company would be much less cheaper if they’re already tied into the Google cloud. I can see Google making a move like this for the normal user but they would eventually have to charge for larger customers. After all they already provide 6.5 gb of storage space for gmail users but providing unlimited GWS usage is a hit not even the mighty Google can take.