Choosing the right compute option in GCP: a decision tree

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
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]
Info
Channel: Google Cloud Tech
Views: 59,164
Rating: undefined out of 5
Keywords: How to use Google Cloud Platform, Google Cloud Platform tutorial, Google Cloud Platform, Google Kubernetes Engine, Google Google Cloud Developers, Cloud Developers, Google Cloud, docker containers, Cloud computing, Cloud Run, Firebase, containers, microservices, Google, GKE, Stephanie Wong, GDS: Yes;
Id: 2tLXKCgqwLY
Channel Id: undefined
Length: 6min 50sec (410 seconds)
Published: Mon Jan 13 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.