Hello I am Hernán Liendo, one of the 13 Google Developer Experts in Cloud Platform, I am a College
professor for more than 15 years now, and co founder of Zupcat. As I was telling you before
in Zupcat we publish and develop very high quality games for a large number
of players around the world. Although it is a game, behing it, there are a lot
of frameworks and architectonics that are essential to know in order to achieve succes In this presentation
I will be giving you more details of these frameworks and architectonics, along with the scenarios in which I recommend its
use. We can divide de main infrastructure frameworks in 4 large groups:
for managing data, for object storage, for
managing content, and general porpuse frameworks. The content
frameworks allow to host content with high availabiility and download speed.
Google Cloud Storage is the main content framework and provides a web management interface,
and also a programmatic one. When you host content, this content is automatically
replicated in multiple servers, and when the demand increases, the content replicates
more. In this way you can present information and publish it in the same place that Google uses.
Check out how simple it is. Select the file, upload it
and when it is available
you get the public link. That´s it. By doing this, the content is available in multiple servers.
On the other hand, the first option for data storage is Cloud Data Store, it is ideal for apps
with large number of records that must be constantly consulted,
the downside is that migration of apps is usually expensive, this is why
I recommend to use this when dealing with new apps. Also, the learning curve
might be a bit high, therefore I recommend to use another framework of higher quality, such as
Objetic File o Simple Datastore, which we will explore later. Other framework for data storage
is Memcached, which provides us with an objects cache for storing very fast reading data
In fact, in our measurements we found it is 10 times faster
than a query in Data Store, and regarding its writing
we have found it is 5 times faster. It is ideal to storage data that is constantly read, such as
application parameters or to save data from the user session, while
the user is active in the game. If you need to persist standard data structures, Cloud
Platform present us 2 solutions: Cloud SQL and Bigquery.
Cloud SQL presents one or multiple instances of a database engine MySQL.
The difference is that we don't have to be installing the database, configuring it, maintaining it
or making an upgrade. It is also very intersting that
it provides a very flexible Pricing scheme and we only pay for the time that a query
is being executed. This is ideal for applications that just start, or for QA
The disadvantage is that the cost of use
is a little higher than the Data Store but is ideal for applications that already exist
and that requires a SQL data in the back and can be hosted in the cloud. BigqQuery
is a product that was recently released and we found very useful for the requirements
we have. This allows us to process large amounts of data
very quickly and in parallel. It presents very similar SQL tables, where
ou can only add records and a query interface that has the commands we already know
In our case, we have games that have millions of users and each user
generates thousands of events. In that case we have tables with billions of records
for those events. I'll show you a very common use that we have of this.
For example, For example in this consultation we are watching every movement of economy that made ​​a user
with this ID. I run the query that is going to ride these billions of data
and it will give me the information of each of the registers and each of the changes
that had the economy of this player. The great thing about BigQuery is that the storage cost
of the data, is 10 times lower than Datastore. On the other side
we just pay for the time that a query is being executed. If we need
great flexibility, we can use an existing data base
like Mongo DB or Cassandra inside Compute Engine. An App Engine application can access
Compute Engine and connect to these databases, which is ideal
for applications that exist or have particular requirements. To do this, we simply go to
the management console of Cloud Platform, we select the database we want to
create, we choose how many nodes we will use, in this case in Cassandra
and we deploy it. When we do this, Compute Engine creates new machines based on a template that is already
installed in Cassandra and that is ready to be used.
In the next videos I will tell you about our core structure
that we use in our games and that we've been improving over the years. We've also has released it as open source project.
See you next time!