-
Compute Engine
- Secure and customizable compute service that lets you create and run virtual machines on Google’s infrastructure.
-
When to use it
- Use Compute Engine when you need control over operating systems or lift and shift situations
- Licensing requirements
-
Model
- IaaS
-
Options
-
Preemptible VM
- A highly discounted VM compared to the price of standard VMs
- Discount of 60-91% discount
- VM might be terminated at any time (24 hours max)
-
Spot VMs
- Are the latest version of Preemptible VMs
- No minimum or maximum runtime
-
Sole-Tenant nodes
- Physical Compute Engine server that is dedicated to hosting VM instances only for your specific proyect
- For workloads that requires physical isolations from other workloads or virtual machines to meet compliance requirements
-
Shielded VMs
- Offers verifiable integrity
- Secure Boot
- vTPM
- Integrity monitoring
-
Confidential VMs
- Allow you to encrypt data in use
-
Scaling
- Server autoscaling
-
App Engine
- A fully managed serverless platform for complete web applications. App Engine handles the networking, application scaling, and database scaling. You write a web application in one of the supported languages, deploy to App Engine, and it handles scaling, updating versions, and so on.
-
When to use it
- When you just want to code up your HTTP-based application and leave the scalability and deployment of the app to Google Cloud
-
Model
- PaaS
-
Environments
-
App Engine Standard
- Runs your code in containers provided by Google.
- Container instances can start in milliseconds.
- Supports many languages including Python, Java, PHP, Go, and JavaScript.
- Free tier of 28 instance hours per day
-
App Engine Flex
- Is open and flexible and supports custom runtimes because the application instances run within Docker containers on Compute Engine.
- Supports many languages including C#, Go, Java, Node.js, PHP, Python, and Ruby
- Does not scale to zero - no free tier
-
Scaling
- Autoscaling managed servers
-
Google Kubernetes Engine
- Managed Kubernetes clusters. Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
-
When to use it
- When your application needs a specific OS or network protocols beyond HTTP/s
- Hybrid and MultiCloud deployments
- Strong CI/CD pipelines
-
Model
- Iaas
- PaaS
-
Scaling
- Cluster
-
Cloud Run
- A fully managed serverless platform that runs individual containers.
-
When to use it
- Fully-managed infrastructure
- Rapid auto-scaling from, and to 0
- HTTP/Websockets/gRPC/Events
- No fixed infrastructure footprint
-
Model
- PaaS
-
Deployment methods
-
Fully Managed
- Use when want Google Cloud to manage autoscaling, connectivity, high availability, etc.
-
Cloud Run for Anthos
- Knative running on a GKE cluster
-
Use when need to
- Access VPC network
- Tune size of compute engine instance, use GPUs, etc.
- Are running knative containers on-premise or in other clouds and want a single pane of
glass (Anthos) to manage them
-
Scaling
- Serverless
-
Cloud Functions
- Event-driven serverless functions. You write individual function code and Cloud Functions calls your function when events happen (for example, HTTP, Pub/Sub, and Cloud Storage changes, among others).
-
When to use it
- When your code is a function and just performs an action based on an event/trigger from Pu/Sub or Cloud Storage.
-
Model
- Microservices architecture
-
Scaling
- Serverless