TIMOTHY: Let's now take a quick look at Google Cloud.
There are two things that I want to check out,
and Jen is here to tell us all about them.
Hi, Jen.
JEN: Hi, Timothy.
TIMOTHY: So what's this?
Because I really want to play with it.
JEN: So this is Kubernetes Whack-a-Pod,
and it is a demo in which you battle Kubernetes,
where you are trying to take down a service by being
the cast monkey.
While you're doing that, Kubernetes,
which is a container orchestration
framework and open-source project,
will try and keep your web service up.
TIMOTHY: That sounds like fun.
I'm going to totally try and take it down.
JEN: Yeah.
Give it a spin.
You're gonna hit the button, and you're
going to battle for 30 seconds.
Ready?
Here you go.
So you're doing great.
Kubernetes is bringing those containers right back up.
The yellow mole is special.
It will take out the entire web app in one go.
Oh!
And it's down.
But Kubernetes is already bringing those containers
right back up.
You're doing great.
Four, three, two, one, and you are done.
So during your 30-second battle, you took out 58 pods
and caused nine seconds of downtime.
But it seems Kubernetes is victorious in getting about 70%
up-time.
But that's still a very good attempt.
TIMOTHY: Awesome.
That was a lot of fun.
JEN: Yeah.
I love that demo.
TIMOTHY: All right.
So I'd also like to check out Spanner,
because I think Spanner's, like, one of the coolest things ever
created.
JEN: Spanner is pretty amazing.
TIMOTHY: So I want to check out what this visualization is.
Maybe you can give us a quick rundown
of what Spanner is, and then tell us what's happening here.
JEN: Sure.
So Spanner is a managed SQL database.
What makes it special is, it is massively, horizontally
scalable, and can handle huge amounts of traffic.
And you still have the wonderful features
you would expect from a SQL database
like queries, transactions, and other neat, shiny things
like live migrations.
Yeah, and it's fully managed, which is pretty cool.
Because who likes managing your own database?
This is a view of the schema that
is an example schema on Spanner, which
is the same thing being used to power the demo on the screen
next to us.
TIMOTHY: If I can, I think one of the things that I've always
really liked about Spanner is the fact
that it stays in sync, even though things are happening
in different data centers.
Can you tell me a little more about that?
JEN: Yeah.
That's a great point.
That's one of the special features of Spanner.
In this particular demo, we have Spanner
running on three different data centers,
on three different continents, all over the world.
And yet, due to some magic involving atomic clocks
and very precise time keeping, we
can still serialize all those transactions
and maintain that consistency.
TIMOTHY: That's cool.
So what is actually happening on the screen here?
JEN: So on this screen right here,
we are simulating a pretty amazing ticket sales
event, where apparently, whatever this ticket sales
event is, we are selling 137,000 tickets every minute.
And so far, this demo, which I believe
we started this morning, has sold 238 million tickets
during its run-through.
You can see they're distributed across the world,
and even despite all that really high throughput,
we're still maintaining about a second of latency
on those transactions.
TIMOTHY: That's amazing.
OK.
Is there anything else you want to tell us about what's
happening here at I/O?
JEN: It's a great show.
But other than that, I think you found the fun spots.
TIMOTHY: (LAUGHING) All right, thanks, Jen.
JEN: Thanks so much, Timothy.
See you later.
TIMOTHY: OK, see ya.
I'll be honest.
It's not a party if there's not a photobooth.
So I found the photobooth, and the guy
who built the photobooth, Alex, who's
going to tell us all about it.
ALEX: Hey, guys.
So this is a talking photobooth.
For an operating system, it uses Android Things.
And you talk to it using the Google Assistant,
and it uploads photos to the Cloud using Firebase.
TIMOTHY: Awesome.
Should we try it out?
ALEX: Yeah, let's do this.
TIMOTHY: Where does it talk out of?
There?
ALEX: [INAUDIBLE]
TIMOTHY: What about the speaker?
ALEX: Right here.
TIMOTHY: OK.
OK, Google.
Let me talk to the I/O Photobooth.
WOMAN'S VOICE (ON PHOTOBOOTH): Sure.
Here's I/O Photobooth.
Booth.
MAN'S VOICE (ON PHOTOBOOTH): Hi.
I'm the I/O Photobooth.
OK.
Taking a picture.
Three, two-- don't look so serious.
You're in a talking photobooth--
one.
[SHUTTER SOUND]
Do you like it?
TIMOTHY: Yes.
MAN'S VOICE (ON PHOTOBOOTH): Do you
want to add some style to your photo?
TIMOTHY: Yes.
MAN'S VOICE (ON PHOTOBOOTH): Just a minute.
Downloading styles.
[DIAL-UP SOUND]
[LAUGHTER]
TIMOTHY: That's 56K.
I can tell.
MAN'S VOICE (ON PHOTOBOOTH): Here you go.
I'm uploading your photo now.
Can I show this on my Twitter, too?
TIMOTHY: Yeah.
ALEX: Yeah, yeah.
MAN'S VOICE (ON PHOTOBOOTH): Got it.
Uploading your photo.
Printing a link in the photo now.
Don't forget to share your photo with #io17,
and have a great time at I/O.
TIMOTHY: That was awesome.
ALEX: Thanks.
It was a lot of fun.
TIMOTHY: All right.
Thanks, Alex.
TIMOTHY: All right.
So I'm here with Doug from Firebase,
and there's a lot going on in the Firebase area.
A lot that developers have already
been able to play with and know pretty well,
but there's also some new stuff, and I've
asked Doug to show us some of that new stuff.
DOUG: Yeah.
So announced today-- actually yesterday at the keynote,
we found out that Firebase now has Firebase performance
monitoring, which is a set of tools
you can use to measure and monitor
the performance of your app.
So let's take a look at that.
So this is the dashboard.
What we have here is an overview of the performance
of your apps, so we have traces by frequency.
You could think of a trace like a window of time
that's of interest in your app.
Also, we can look at the latency of your network connections
all over the world.
You can also see the success rate of your app over time,
so it looks like things are getting a little bit worse
for this app as time goes on.
So that may be something to pay attention to.
Now, if we drill into traces a little bit,
we can see that there are a collection of automatic traces.
So we capture these for free, automatically,
and here are some custom traces that
have been defined by the app.
So you have the flexibility to write code
to get some performance, or you can just
let it do things automatically.
Now, if we get a network request,
we can get a breakdown of all the HTTP transactions that
are going in here.
And you'll notice that there are some wild cards,
so we're actually bundling up different kinds of requests
that look the same but actually have different parameters.
And you can see, for this set of APIs,
what's the average response time, what's the success rate,
and the number of requests that have gone to the system.
You can click through this and see how it's going.
So you know, you're probably using a lot of different SDKs,
you'd probably want to know how they perform,
you'd probably want to know how the app is performing
from your user's point of view, and this is a great tool
to get that done.
TIMOTHY: Awesome, Doug.
That's really cool, and it's really neat
to see all the data in this way.
DOUG: Yeah.
It's definitely very helpful.
It's definitely also very interactive.
It's not just a dashboard that you look at.
It's a dashboard that you interact with.
TIMOTHY: That's actually one of the really cool parts
about being at I/O--
that if I were to just set this up on my app right away,
I might not have all this data right away,
but we're showing a demo here where
we've collected a bunch of that data
so you can see what it's like once you've
invested for a while.
DOUG: Yeah, definitely.
There's nothing worse than opening up the dashboard
and having nothing staring you in the face.
Right?
It's nice to be able to see what you're getting into before you
actually get into it.
TIMOTHY: Absolutely.