STEPHANIE WONG: One
of the first problems you have to tackle when building
a cloud-based application, whether it handles
HR or e-commerce, is where to run your code. And since each
cloud-based application has needs specific
to its environment, Google Cloud Platform offers
a diverse set of options to run your code on. But then there's a new
problem, figuring out what option is right for
your specific use case. So join us as we explore
some of the options that Google offers for compute. Let's work through this from
the most abstracted options to the least. First, if you're a
mobile developer, then you might not be
looking for the full suite of configurable compute options. Most of the time
you want something that does storage,
notifications, and syncing, but with the least amount of
server-side code possible. For that, you should
check out Firebase. It offers a plethora of options,
including Firebase functions as a service, database
hosting, and storage, all built with mobile
developers in mind, so you get a lot of power
for a little bit of code. And that's why Firebase base
is a common first choice for mobile and HTML developers. But if your application
is more complex, and you do need
compute, then there are other options available. Let's say your application
scales beyond mobile, and you still want to minimize
the amount of server-side code. Cloud Functions might
be the right choice. Applications that are
mainly event-driven, say, your accounting department,
getting an email, every time your
customer uploads a PDF can fit into Cloud Functions
and run just the event logic you need without having
to maintain the structure that hosts and scales them. A second clue to understanding
whether Cloud Functions will meet your needs is
in the name itself. Picture your code for a second. Does it make sense
to talk about it as a bunch of fairly
independent functions? Think of Cloud Functions as
a glue connecting your APIs together. With Cloud Functions, you
get full access to our APIs and only pay for the time
your functions are running. Now, having your
application split up between independent functions
may not always be a great idea. Like, maybe your application is
too intertwined to spool apart, or it's filled with legacy
code and too large to refactor. Either way, you're still
covered thanks to App Engine. App Engine lets you
run your application without having to make
each part available as an independent function. It also supports a
wide range of run times and long running
processes, making App Engine a flexible fit to
host your complex applications. When you think of App Engine,
think fast auto scaling. Let's say you're
running a brand new app, and you don't know how demand
is going to fluctuate over the long term, or maybe you have
a spikey load where usage jumps up really high for
short periods of time, like an advertising
landing page. For you, having consistent
access to a fixed capacity doesn't really make sense. With App Engine, you
pay for the cycle so you don't have to guess. And no matter how
quickly users adopt, App Engine always keeps up. So if you want to get your idea
to market fast and be totally ready when you're app becomes
a crowd favorite overnight, App Engine is your best bet. Now, until recently, if
you wanted the advantages of running your
app in containers, you had to bid farewell to
some of App Engine's most beloved features, like
[INAUDIBLE] auto scaling. But thanks to a fourth
option, Cloud Run, you don't have to anymore. Cloud Run brings server-less
principles and containers together. With our fully
hosted back end, it supports the
server-less principles of pay for what you
use and quick scaling and adds the flexibility
of running anything you can run in a container. Another factor
that can and should influence which compute
option you choose is, of course, the size
of your operations team. All of the options
we've discussed so far are designed to work
well without one. With Cloud Run,
it really depends on how you plan to use it. You can think of Cloud
Run as a platform for running your
opt containers that can be as managed as you want. You can let it handle tasks like
monitoring application health and automatically
troubleshooting, but you don't have to. Now, if you do already have
some designated team members who can oversee tasks like
provisioning, compute, and monitoring health,
but you're still running your applications
in containers, Google Kubernetes Engine
might be a better fit. For those who are new
or need a refresher, GKE groups containers that
make up an application into logical units for easy
management and discovery. For a little more
context, almost everybody who decides to use GKE has
already settled on Kubernetes as their orchestration system,
and there's just deciding how and where to run it. Maybe you want to run a
single kind of container, but on a bunch of VMs and have
it scale up and down as quickly as possible, or
you've got a bunch of microservices in containers
that all need to work together. Sometimes you may
also be looking to offload parts of the
management to a provider, too. Remember that
Kubernetes Engine can be configured to spin up
new containers automatically to grow and shrink
with user demand, so you're still going
to get scalability. Where an important point of
difference comes into play, though, is pricing model. With Google Kubernetes Engine as
well as Google Compute Engine, which we'll talk about in
just a second, you pay per VM. You decide the shape of the VM,
how much CPU, memory, and disk it has and pay for the
time it's reserved for you, unlike the previous option,
which are based on usage. This can end up being
an economical option if your compute usage
is a little more on the consistent side. The same is true
of Google Compute Engine, our final and most
flexible computing product. Why go with Google
Compute Engine instead? Because sometimes you just
want a computer, whether that's because you have existing
software or licensing reasons or you need a specific
kernel, Compute Engine gives you the VM to run
what you need to run there, all the way to a
custom OS image. This means that you can use
Compute Engine to run existing applications in the
cloud without having to make virtually any changes
to the software itself. So when you think of Compute
Engine, think high flexibility. With these quick
overviews, hopefully you're feeling better about choosing
the right compute option for your application. Remember that Google's
compute options are designed to cover a range of use
cases and team structures, so understanding exactly what
you need from Google Cloud Platform is just as
important as understanding what each of our compute
products does best. Check out our compute
options decision tree at the Google Cloud
blog for more help. Thanks for watching,
and as always, subscribe for more great Google
Cloud Platform video content. [MUSIC PLAYING]