[MUSIC PLAYING]
ROBERT KUBIS: Hi.
I'm Robert Kubis.
And I'd like to introduce you to Google Cloud
Spanner, a fully managed relational database service.
Cloud Spanner functions just like a traditional database,
except that it's horizontal scalable,
while still providing ACID transactions and SQL semantics.
And we don't give any performance up for that.
Now, this is important because if you have ever
deployed a global multi-regional database,
you know that there are certain steps from configuring
machines, setting up replication, and failover,
and design your sharding.
And keeping all of that running can be a challenge, too.
While you may not encounter all these challenges today,
knowing that you don't have to worry about them while you
cross various scalability boundaries in the future
will give you a great deal of peace of mind.
To give you a picture of just how amazing Cloud Spanner is,
let me start by showing you how easy it is to get started.
With Cloud Spanner, we turn all that chaos
that I just talked about into one screen.
You just name the instance, choose single or multi-region--
we pick Europe West here--
and how many nodes you want.
I pick 42, because that is always the right answer.
We click Create, and in seconds we
have a distributed database at our disposal.
But let's talk about a more practical example.
Imagine you are a ticket seller selling tickets
to events worldwide.
It's pretty important that you only sell each ticket once,
that buyers experience a high-performance website,
and that everyone sees the same ticket inventory.
For this example, we have deployed
Cloud Spanner in three Google regions, US, Europe, and Asia,
all connected by our really high-performant
private global network.
We are running workloads that emulate
customers buying billions of tickets for one million events.
Here's the schema of our application.
You see tables with columns that can be joined together,
just like in any other relational database.
There are significant numbers of rows for some of those tables,
so this is a really large relational database.
In our demo app, each purchase transaction
involves a complex mix of reads of multiple rows
from and writes to many of these tables.
We are checking the availability of tickets,
fetching account information, and update ticket owners
and calendars.
We can even run SQL queries against this database
while it's handling all that load.
In the Google Cloud Developer Console,
you can find the query entry under your database.
In our case here, we are looking at a query that
checks the availability of tickets on May 12th at 7:00
PM in Germany, all without blocking those critical buy
transactions that are happening all around the world.
What's important here is what you don't see
and how unremarkable this SQL looks like.
There's no additional complexity in the query from a sharding
system.
There's no need to join across multiple shards
of your database or anything you like.
With Spanner, you can just simply undust your SQL skills
and put them to work again on a massive, scalable,
horizontally-distributed database.
And to help you optimize your queries,
you have the possibility to inspect the query plan
before or after running your query,
right in the Developer Console.
Now real world applications and workloads change over time,
and your database needs to adjust while your business
keeps running.
Cloud Spanner lets you make transactional consistent schema
updates with no downtime at all.
You can simply add or change columns
while your workload is running.
And what happens if your app grows
and you need to add capacity?
With traditional systems, you have
to figure out how to scale up, get
an even more powerful server, and upgrade the hardware.
Or you can try to scale out, but that
involves lots of complexity, middleware,
and adds operational risk, and takes time.
In Cloud Spanner, I go to the Developer Console,
edit my instance, add more nodes, and click Save.
That's it.
That's the power of a fully-managed, horizontally
scalable SQL database.
And of course, since we designed Spanner at Google
to scale with our business, we made
sure it can handle very large databases.
Let's switch over to our monitoring tool, Stackdriver.
The graphs show the history of our demo database.
And there are a couple of things to point out here.
First, in the upper right, you will
see that when we set up the database,
we were able to load data at over 800 megabytes
per second sustainable.
That even peaked at around 1 gigabyte per second.
That's just crazy fast, right?
Second, you can see, on the lower left,
we run the whole demo against a database
that is over 80 terabyte of logical data.
Let's recap.
You can create a highly reliable, performant,
fully-managed, multi-regional database in seconds.
Cloud Spanner is a relational database
with the power of SQL and ACID transactions
plus advanced features like versioning, strong consistency
and online schema changes.
You can scale out and in as needed, fully managed,
and you don't have to worry about replication.
Your system even automatically tunes itself for performance.
And last, but not least, Cloud Spanner is built for scale.
Google has been running the largest operational dataset
on it globally for years.
Check out Cloud Spanner today and find more information,
like best practices and case studies of Spanner,
on cloud.google.com/spanner.
[MUSIC PLAYING]