Guido, Google, and App Engine
The internet’s most underappreciated feature is its ability to connect fringe players with Hollywood-sized audiences. This is particularly true in the software world. Among hackers, the names Linus, Richard, Larry, Eric, Tim, and Guido have just the same ring as Madonna or Bono. At the same time, the internet superstars seem somehow more accessible, possibly because they drive cars and work for companies: they are not seen in the media. This preconception did nothing to stifle my surprise upon entering a small lecture room and finding that same Guido hunched over a Macbook. I instinctively surveyed the aisles, looking for handlers and bodyguards. None could be found. This was just a product pitch, after all, not an appearance at Radio City. At the end of the talk, Guido even cast off his own cloak, excusing himself to take his child to a sporting event. The internet, it seemed, had not stripped him of his humanity.
Guido 5 November talk at Stanford described Google App Engine, a service that replaces the middle tier in the canonical three-tier web stack. It handles HTTP requests in an RPC-style: request in, processing, response out. Working from its pedigree, Google has built the service to scale. “Slashdotting” was presented as one of the specific scenarios handled by App Engine. One of the product managers in attendance interjected that a deployed application, if written properly, could scale from several queries-per-second to hundreds of requests, with the framework managing the resource allocation. Google also offers a “not quite relational” data storage API built on the proprietary Big Table platform. The claim was made early and often that App Engine runs low-usage apps, which can run on a single host, and high-usage services, which are spread across nodes, equally well.
The Google team was quick to attack the question that appeared in more than a few minds: we have LAMP, why do we need this? Guido took a moment to expostulate on this subject. “Yeah, LAMP is great, and you can write Python and so on,” he said, “But management is such a hassle.” The point was well-received by the audience, and further annealed by the harrowing mention of “that point” at which a system must be re-designed for multiple databases. By contrast, App Engine “automatically scales to application needs.”
Usage is constrained through an elaborate system of quotas that, according to GUido, manifest themselves as exceptions in the Python runtime. Examples include limits of 10 seconds per request, 1000 files per application, and a 1MB maximum request/response size. As technology, these quotas are like a keyboard that Google can use to tune resource utilization. As an software organization, it is exceptionally gifted at this task. But Google is also a commercial instrument, and these quotas are also the keys to its cash register. One audience member criticized the list of constraints, intejecting: “What if I get slashdotted? How do I ensure that I have enough quota? Isn’t the end result the same: my app goes down?”
“No,” Guido responded tersely, “I suggest that you have an appropriate budget for such instances.”
Unlike other Google products, App Engine does have a published development roadmap, although the timeline remains unspecified. Pending features include:
- File uploads and downloads
- Datastore import and export
- Pay-go billing
- Wider language support (in addition to Python)
A spirited round of questioning erupted at this point in the talk. Many of the inquiries had little to do with App Engine. One person identified himself as a “hardware architect” and asked Guido to elaborate on Google’s “ideal server”. Another man, clad in a standard-issue hacker kit (baseball cap, jeans, and a T-shirt from ThinkGeek) began a question that quickly descended into indecipherable technical marginalia. Still others fished for acknowledgement from the Python god by making conjectures about certain facts. It was like a court of sycophants competing for the king’s favor.
With only a few minutes left in his talk, Guido opened his notebook and started an editor. He wanted to run a demo. In passing, he remarked, “I write code with no comments because its Python.” Spontaneous cheers erupted; this is what the audience had come to hear: something to take home, an anecdote to use later on. The demo demonstrated a simple query/response app that was unremarkable in its own right. The web-based debugger/console, however, was appealing in both its simplicity and usefulness. Guido manually edited a data entry from the console, hit refresh, and immediately the new data appeared. This is why people love Google: their products work. With such figures on their staff, should we expect otherwise?
Leave a Reply
You must be logged in to post a comment.