GCP compute options
Nguyễn Long
Posted on September 30, 2024
Table of Contents
Introduction:
💡 So, you’re building something cool on GCP, and now you need to pick the right compute option. It's like standing in front of a vending machine of cloud services: “Do I want a classic virtual machine? Or should I get some fancy containers? Maybe I'll go serverless and just have it magically work.”
In Google Cloud Platform, you’ve got choices—and lots of them. But don’t worry, it’s not as confusing as picking the perfect avocado. Let’s break it down, step by step, with a little fun along the way. Think of each compute option like different modes of transportation:
- 💻 Virtual Machines (VMs): You’re driving your own car. Full control, but hey, you’ve got to maintain it
- ☸️/🐳 Containers (GKE/Cloud Run): Hop on a public bus. You are sharing, but it's efficent and flexible.
- 🌍 Serverless (App Engine/Cloud Funcion): Teleportation... You dont know how, but you're there when you need to be.
Deep Dive into GCP Compute Options
1. Google Compute Engine (GCE) – Virtual Machines
VMs💻 are called instance andd need to choose region and zone to deploy.
You choose the OS and specify the application you put on it.
GCE provides traditional virtual machines that give you complete control over the operating system and infrastructure. You manage everything: scaling, patching, and maintaining the VMs. This is ideal for legacy applications, specialized workloads that need specific OS configurations, or high-compute tasks that demand fine-grained control.
Features:
- Full control over OS
- Custom VM type ot predefined ones
- Suitable for workloads that require specific lib or frameworks
- Manging multiple instances using instance groups
- Add/remove capacity using autoscaling with instance groups
- Attach/detach disks as needed.
- Can SSH directly
Use Cases:
- Hosting legacy applications that aren’t easily containerized.
- Running high-performance computing (HPC) tasks or workloads that need fine-tuning
- Applications that require stateful operations
Let’s say you’re running a finance application that needs specific security patches and configurations to meet regulatory compliance. VMs are perfect because you control every layer, including the OS.
2. ☸ Google Kubernetes Engine (GKE) – Container Orchestration
- Is container-oschestration system for automating deploying,scaling and managing containers
- Built in* open-source Kubernetes*
- Flexibility to inegrate with on-premise Kubernetes.
- Uses compute engine instances as nodes in a clusters ☸
- Cluster is group of nodes or compute engine instances.
Features:
- Automatic scaling and self-healing containers.
- Runs across multiple zones for redundancy.
- Integrates with Google’s stack, like Cloud Monitoring and Logging.
Use Cases:
- Running microservices architectures, where each service can scale independently.
- Applications that need high availability across zones.
- Workloads requiring container orchestration with easy management.
🧠 Think of an ecommerce app that needs independent scaling for different services (checkout, inventory, recommendations). With GKE, you deploy each service in a container, ensuring that traffic spikes on one service don’t affect the others.
3.🚀 App Engine – Platform-as-a-Service (PaaS)
- Fuly managed, serverless platform for developing and hosting web applications at scale (PaaS)
Features:
- Provisions servers and scales your app instances based on demand
- Build your app by favourite lanaguage
- Connect with GG services seamlessly like Firestore, Cloud SQL, and Pub/Sub.
- Integrates with Web sec scanner to identify threats.
👉 App Engine is a fully managed platform that abstracts away infrastructure management. You focus on writing your code while App Engine handles everything from scaling to monitoring. It’s great for developers who want to focus on code, not infrastructure.
4. Cloud Function (λ)
Serverless Execution env for building & connecting cloud service
Features:
- Simple, single-purpose functions that are attached to events
- Triggerd when an event being watched is fired
- Your code executes in a fully managed env
- No need to provision any infrastructure
- Event-driven: Automatically executes in response to triggers.
- Scales automatically with traffic.
- Perfect for lightweight, short-duration tasks.
Use case:
- ETC
- hook
- APIs
- Mobile backend functions
- FaaS
Comparison Table:
Service | Type | Management Level | Scaling | Cost Model | Best For |
---|---|---|---|---|---|
Compute Engine | VMs | Full control | Manual or autoscaling | Pay for uptime | Legacy apps, specialized OS control |
Kubernetes Engine (GKE) | Container orchestration | Managed | Automatic, multi-zone availability | Pay for instance uptime | Microservices, high availability |
Cloud Run | Serverless containers | Fully managed | Scales to zero | Pay per request | Stateless apps, event-driven microservices |
App Engine | PaaS | Fully managed | Automatic, scales based on traffic | Pay per instance uptime | Web apps, mobile backends |
Cloud Functions | Serverless functions | Fully managed | Automatic, scales to zero | Pay per execution | Event-driven, lightweight tasks |
Posted on September 30, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.