Campfire One: App Engine’s 1st Birthday (pt. 1)
Articles,  Blog

Campfire One: App Engine’s 1st Birthday (pt. 1)


man:
Good evening, everybody. Wow, it’s standing room only
back there. I’m going to get started, so everybody take a seat,
if you want. Thanks for coming out
this evening. Today is App Engine’s
first birthday. [cheers and applause] It’s been one year– Thanks. It’s been one year
since we launched App Engine, and so today–tonight
is a perfect time to tell you about a bunch of new features that we’re going to be
launching. But before we do that, I want to take a quick look back at what we’ve done
over the past year. I want to give you
a brief refresher about the design goals
for App Engine, and I want to tell you about the progress that we’ve made
in the past year. So, when we launched
App Engine last year, we made the following
observation. It’s way too hard to build and deploy
web applications. You can see a list of all the stuff you have
to worry about up there, between Apache server configs and database resharding and a bunch of other stuff. There’s just way too much
to worry about. You spend more time
being a sysadmin than actually building
your next great web app, so we wanted to change that
with App Engine. With App Engine, you deploy your app
on Google infrastructure, and that means it’s free
and easy to get started and also to scale, and that means that we
relieve you of the burden of dealing with a lot
of the sysadmin issues. As a developer myself, that’s a really compelling
proposition. I really like the idea
of being able to think about how my app can be better, rather than thinking about
how to keep my app up and running. So developers have been
really enthusiastic about this. Since we launched,
we’ve had 150,000 developers who’ve built more than 50,000
applications on App Engine, including apps like BuddyPoke, which is one of the most popular
open, social apps. App Engine helped BuddyPoke scale to more than
35 million users. That’s really great.
That’s huge. [applause] Congratulations to BuddyPoke. [cheering] [laughs] Brands like Best Buy,
eBay, and Forbes have started to outsource pieces of their computing
infrastructure to App Engine, and also Google has been
adopting App Engine internally. We have migrated– In the past six months alone, we have migrated
more than 50 applications. And I want to talk about one of those applications
in particular, and that’s Google Moderator. Google Moderator is built with App Engine on the back end, and Google Web Toolkit
on the front end. And we originally
built Moderator as a way for Google employees to ask questions
in internal company meetings, but a few weeks ago, WhiteHouse.gov
used Google Moderator to solicit questions
from all around the world for a big town hall. So here’s a graph
of the traffic. You can see we launched
the product here. Watch out for that. Here we started to get
some press coverage, and then here, what happened
with that big spike is that right at the end
of the town hall, people rushed in to get
their questions in at the last minute before
the town hall closed down, so you can see
there’s this big spike right when everybody’s trying
to get their questions in. Now, with a traditional
hosting provider, You would have had to predict the load that you
were going to get, the traffic
that you were going to get, and you would have had to pre-provision
a bunch of machines to take care
of your predicted load, and in fact,
you probably would have added a bunch more machines, because in the happy event that you get
a lot of extra traffic, you don’t want
to have the app crash. So the great thing
about App Engine is that you didn’t
have to do any of that. App Engine automatically
allocates resources on your app’s behalf. It allows WhiteHouse.gov’s
instance of Moderator to automatically
adjust and scale to these swings and surges
and spikes in traffic. I think that’s a really
compelling testament to the power of App Engine, that you can take
an application like Moderator that was originally intended
to answer 20 questions in an internal
company meeting, turn that into an application that took more than
three and a half million votes across a couple of days. That’s really exciting. Okay, so that’s what we’ve been
doing in the past year. I guess the other thing
we’ve been doing in the past year
is soliciting feedback from all of you, from developers out there
who are using App Engine, and so based on that feedback, we have a bunch
of exciting new features to launch tonight. I’m going to give you
a quick overview, and then Kevin’s
going to come up and give you all the details. So one thing that we’re
going to talk about tonight is the ability to buy
additional quota beyond the free quota that all
App Engine applications get. So that means your app can scale
as big as you want it to get. We’re going to talk about
cron support, so that you can schedule tasks at particular intervals, and then
we’ll execute them for you. We’re going to talk about
database import, which lets you take big chunks
of application data outside of App Engine
and push them into App Engine, and we’re going to talk about
access to firewall data, which allows App Engine
and also other Google apps like Google spreadsheets to communicate and cooperate with applications running inside
your corporate network, and then last but not least, last year we promised to support
languages other than Python, and so
I’m really excited tonight to give you guys
an early preview of Java language support
on App Engine. I think this is going to
open App Engine– [audience cheers] …up to…wow. [laughs] Back to the fire. I think
the Java language support is going to open App Engine up to a whole new group
of developers, so I’m really
excited about it. And with that, I want to
hand things over to Kevin Gibbs, who’s the tech lead. He’s going to give you
all the technical details. Thanks. [applause] Gibbs: Thanks, Graham. Well, over the past year, since we’ve launched App Engine, we’ve really been listening
to your feedback. You have guys have called out a number of areas
for improvement in App Engine, and we’ve been listening. So, in response, we’ve added
a lot of features to App Engine which, if you’ve been
watching, you’ve seen. Things like
our system status site, where it shows live,
uptime information; HTTPS support,
our Memcache API, tons of new features
for the admin console, and more. Now, we know we still have
lots left to do, but I want to thank you
for the feedback, both positive and negative
that you’ve given us, because it really lets us know what we’re doing right
and what we’re doing wrong and how we can improve. But one of the biggest
features you asked that we’ve gotten
from you guys over the past year has been that you want
the ability to grow beyond the free quotas
in App Engine. You want to have
the ability to pay us to use more App Engine, to allow your app to continue
to scale out. Well, because of that, I’m happy
that about a month ago we launched the ability to pay for additional
resources on App Engine, our new billing support. Now, with our billing support
for App Engine, it’s very easy. You just sign up, set a budget for each
resource you want to use– like CPU and bandwidth
and so on– and then you can scale
your application out to your heart’s content. You only pay for exactly
the resources you use in serving that request, and even then,
you only pay for the resources beyond our free quotas. Now, anyone can log in and try out
our billing support today. It’s open to everyone. Here, I have
a quick screenshot so you can see how it works if you don’t have a big app
on App Engine. As you can see here, this app’s got billing enabled, and we’ve got different bars that show how much we’re using
of each resource, like CPU and bandwidth
and so on. You can see on the side that we have our budget and how much
the resource costs per unit. And on the graph
you can see there’s a line. That’s our free quota. When you go beyond
the free quota, you just pay
according to the cost you see on the side within the budget
you’ve specified. That’s it. Now, something else
that we’ve heard from a lot of you guys is that you’d really like a way to do some work outside
of the user’s request, outside of the web request that came in
to your application. Now, we’re working on a much larger-scale,
offline system to handle processing
lots and lots of data. We’re not done with that yet, but tonight we want to take
a first step in the right direction
for offline processing, so we’re happy
to announce to you our cron support for App Engine. [light applause] Smaller audience. Our cron support for App Engine makes it easy for you to list
some URLs in your application, and then have those URLs hit according to a schedule
that you specify. When those URLs are hit, we just send a request
to your application, and you can do anything
that you’d like. Now, it’s very flexible. You can ask that URLs are hit
once per minute or hour, or as specific
as every second Tuesday. That makes it easy for you to execute regularly scheduled
tasks in your application, like sending a weekly mailing
or clearing out a summary or stuff like that. So I have a quick example
of the configuration, so you can see how easy it is to use cron in an application. This is a cron.yaml file, and here you can see
I specified two cron jobs. One of them says that I would like to have
a daily summary. That’s going to hit the
tasks/summary URL, and I said that
I want to hit it every day, every 24 hours. You can see
I have another URL. This is the weekly mailout
under mail/weekly, and this will be hit
every Monday at 9:00 a.m. on Australian time. So I’ve also got another
example for you here which is an application running on our cluster
right now, a cron prober application, and you can see
it’s actively being hit by App Engine
in response to your request. You can see we got a minutely
and an hourly probe in there.

Leave a Reply

Your email address will not be published. Required fields are marked *