Sauer: Hi. I'm Fred Sauer.
I'm a Developer Advocate for Google.
I'm here today with Paul Hammant.
Paul's a big Open Source Advocate
at, uh, Thoughtworks and Dependency Injection pioneer.
Uh, Thoughtworks is an Agile preaching consultancy.
And I'd like to ask Paul some questions today.
Uh, he's had a chance to test-drive, uh,
our recent, uh, launch of--of App Engine
and support for the-- the Java language.
I wonder, Paul, if you could, uh,
share some of your initial observations with us.
Hammant: Yeah, so I'm--I'm pretty pleased with App Engine.
It's a very nice environment to work with.
And, uh, the feature set that you've shipped with it
is quite compelling too.
Sauer: Uh, what are some of the--the most important aspects
of what you--what we've just launched in--in your opinion?
Hammant: Um, in terms of the experiments
that I've done, I've been very pleased to find out
that existing Web frameworks for Java are working quite well
and they're almost unchanged.
Um, and--and there's integration into Google Accounts.
And that's taken away a huge problem
that's always part of any Web application development
in that you don't have to write a login system.
You don't have to write a password recovery system.
You don't even have to cater for, um, hackers
or phishing attacks because the whole Google capture stuff
is all done very well.
Um, the other-- the main observation--
the other main observation that I've, um, seen
with this stack is that their persistence side
is different to other applications
that Java developers may have made in the past.
Specifically, this is not a relational model.
It's gonna require some thinking from the outside
about how you're gonna organize your data
inside App Engine.
Sauer: Sure.
Uh, so App Engine, uh, is built on top of a fairly scalable
distributed datastore.
And I imagine you probably have some advice
for developers building very scalable applications
perhaps for the-- for the first time.
What are some recommendations or tips you might give them?
Hammant: Yeah, so the-- the obvious things
that--to think about are, um,
the fact that you're being billed for every CPU second
that you're using and you're going to try and reduce
that footprint as much as you can--
shift as many resources to static as you can.
And then for the-- for any items,
you're going to want to try and see if you can leverage
memcached for, um, you know, just shortcutting
the whole request cycle.
Um, and then the other big piece--
and this is common with LAMP stack people--
is you're going to want to use state list
if you can as a-- as a metaphor
for the application rather than leveraging
the session for storage of stuff.
Sauer: Sure. State list gives you scalability.
Hammant: Yes. Very much so.
Sauer: Um... Hammant: Well, actually, no.
Google gives you scalability in this case.
But state list is gonna give you cheap scalability.
Sauer: Okay.
Uh, so one of the-- the big features of this, uh,
new version of App Engine is the support
for the Java Runtime.
And I wonder what you think the--the biggest impact is
of the Java language support for, uh, some of your customers.
Some of Thoughtworks' customers.
Hammant: Yeah, um, I thi-- I think there's a huge
cost reduction piece here.
Um, currently, uh, you know,
it's common for many Fortune 500 enterprises
to want to build out their own infrastructure,
not to trust things out in the clouds.
So they're going to build that stack.
And they're going to have support and infrastructure
and electricity and personnel all assigned to this thing.
And whole work flows around releases
that are problematic for them.
Sauer: Sure.
Hammant: So one of the things
we think or one of the things I think could happen here
is we might see 90% of all the costs
for deployment and infrastructure just disappear.
And that actually, deployment to production
will be a turnkey event.
Um, quite easy to do and very, um,
pleasing for the, uh, customer in question
to experiment with.
So we might see some of those customers
just commission and experiment with App Engine
before committing larger sets of their infrastructure
towards it to see what the experience was like for them.
Sauer: That makes sense.
What, um, sort of applications do you think would be
the--the best initial candidates for--for such a--an attempt?
Hammant: Um, it's gonna be Web applications.
And Web applications that are data-centric.
So if you've got a large data set
that's being read a lot,
then it's suitable for the App Engine.
But similarly, if you have an application
that's going to be receiving data from some other source,
um, App Engine will scale quite well to receive that data
and then to store it in BigTable.
But things without doing the processes perhaps.
Sauer: Until, uh, we launch support.
Hammant: Yes. Sauer: Or, uh, schedule tasks.
Which is--which is coming-- forthcoming.
Uh, and maybe, finally, what do you see
for the--the future of cloud computing
or what would you like to see in--in the future
of, uh, App Engine?
Hammant: Okay, so, um, my wish list would include
mostly additional services,
which is, I think, the big value add that you guys
have done here.
So stuff around geolocation.
An API that I as a developer could call
to say where is my end user?
Um, and how I use that is my business.
But you might attach terms and conditions to it
to prevent the loss of the entire, um, Google IP database
to, um, you know, off-site.
Um, I might also think that this stack
could be well suited for the streaming of content
in the future.
I have no knowledge of what you're actually
going to be putting in it later.
But to me, um, I see, uh, CMSs and Wiki systems
being based on this, um, that might be richer media
and streaming of their content
directly from the actual application
rather than handing off a URL to something like YouTube.
To that end, I think, um, you could do well
to support DAV as like a lower level service on--
you know, if Web requests come in, and they're ordinarily
served by get or by post,
I think it's quite possible here that you might be supporting
put and delete in highly sophisticated ways
that would directly pipe data to, um, it's place in BigTable.
Um, and to support that,
I kinda think that maybe some of the magic
that Google Code has done to sit Subversion
on top of BigTable could be reused by yourselves
to massively enrich the experience of, um,
users of the App Engine experience.
Um, and then some other obvious pieces as well
like integration into Google Checkout
would provide a payment system for people--
again built quite cheaply and scalable,
you know, there's no fixed fees in here--
um, in such a way that people wanting to mount,
um, a modest, um, shopping portal
could choose now the Google application--
the, um, App Engine stack and feel fairly pleased
with that choice rather than traditionally trying
to build out some PHP solution
and then leveraging some third party
to handle the payments and things like that.
It's like a one-- one-stop shop now
for that entire experience.
Sauer: Okay. Those are great ideas.
Well, thank you for joining us today.
Hammant: Thank you for having me.
Sauer: It was a pleasure.