Get startedGet started for free

Comparisons

1. Comparisons

MIKE DUNKER: Now we compare the platforms to understand the relative strengths. After we've talked about those platforms, the question remains-- where should I run my applications? And the answer is still, it depends. The first question that you might ask is, how much infrastructure control do I need? If you want to lift and shift legacy systems to the cloud or you have specific licensing requirements that depend on specific hardware, you might need to use Compute Engine. If you can run containers and have hybrid systems on multiple clouds or data centers, or if you have applications that are not HTTP based, Google Kubernetes Engine might be the right choice. If you want to run stateless containers but not manage the infrastructure at all or you just need to write event-driven functions to connect cloud services, Cloud Run is probably the best choice. Gaining more control of infrastructure requires more operational effort. When you create a Compute Engine virtual machine, you control the updates for the operating system and software. With GKE, Google manages the virtual machine nodes for your cluster, but you still manage the size of the cluster and decide how to scale each application within the cluster. Cloud Run is serverless. For Cloud Run, you just need to deploy your application, and Google manages the infrastructure and auto-scaling. Another question is, how are my teams structured? If your teams are mostly developer focused, Cloud Run is probably best for you. If you have both developers and operations teams, you might still use Cloud Run services and functions when appropriate. You might also decide to use Google Kubernetes Engine to integrate with your hybrid systems and have more control over your workloads. Stateful applications and non HTTP network protocols can also be used with GKE but not with Cloud Run. If you're modernizing your applications over time, you might need to manage Compute Engine VMs that have been migrated from on-premises data centers. Your operations team must be able to manage the health and security of these virtual machines. Pricing for the platforms is different, which might affect your choice as well. Compute Engine and Google Kubernetes Engine charges are based on the usage of dedicated VMs. Charges are predictable, and these platforms can be ideal when you require consistent capacity for your applications. Cloud Run services and functions are pay per use, which can result in significant savings, especially when your traffic patterns are inconsistent. App Engine is a fully-managed, serverless compute environment. App Engine supports two environments, standard and flexible. Cloud Run is the latest evolution of Google Cloud Serverless, building on the experience of running App Engine for more than a decade. Cloud Run services can handle the same workloads as App Engine services, but Cloud Run offers customers much more flexibility in implementing these services. This flexibility, along with improved integrations with Google Cloud and third-party services, also enables Cloud Run to handle workloads that cannot run on App Engine. Unlike App Engine, Cloud Run can scale up and down almost immediately in response to traffic spikes. And by default, you pay for Cloud Run services only when requests are being processed. If you are creating a new service, you should use Cloud Run instead of App Engine. Returning to the question, Where should I run my applications? the best answer is that you should run each workload on the platform that best fits its requirements. You don't need to standardize on a single platform, even within a single application. Larger applications might benefit from using multiple platforms that allow them to solve each problem with the correct tool. In general, as you move toward the left, you have more control over your application and infrastructure, but managing that infrastructure requires more operational cost and effort. Most applications written with the cloud client libraries can be easily moved from platform to platform, so you can change your decision later. If you do not have complex infrastructure requirements, start with a serverless platform that lets you focus on the application instead of the infrastructure. If you later want more control over the infrastructure, you can move your application to a platform that requires more operational effort but provides the needed control or flexibility.

2. Let's practice!

Create Your Free Account

or

By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.