Bird
Raised Fist0
GCPcloud~5 mins

Terraform vs Deployment Manager decision in GCP - Quick Revision & Key Differences

Choose your learning style10 modes available
Recall & Review
beginner
What is Terraform in the context of cloud infrastructure?
Terraform is an open-source tool that lets you define and manage cloud infrastructure using code. It works across many cloud providers, including Google Cloud, allowing you to create, change, and improve infrastructure safely and predictably.
Click to reveal answer
beginner
What is Google Cloud Deployment Manager?
Deployment Manager is Google Cloud's native infrastructure management service. It lets you create and manage Google Cloud resources using configuration files written in YAML or Python.
Click to reveal answer
intermediate
Name one key advantage of using Terraform over Deployment Manager.
Terraform supports multiple cloud providers, so you can manage resources across different clouds with one tool. Deployment Manager only works with Google Cloud.
Click to reveal answer
intermediate
When might Deployment Manager be a better choice than Terraform?
If you only use Google Cloud and want a tool fully integrated with Google Cloud services and APIs, Deployment Manager might be simpler and more straightforward.
Click to reveal answer
intermediate
What is a common factor to consider when choosing between Terraform and Deployment Manager?
Consider your team's familiarity with the tools, the need for multi-cloud support, and how complex your infrastructure is. Also, think about community support and available modules or templates.
Click to reveal answer
Which tool supports managing infrastructure across multiple cloud providers?
ANeither
BDeployment Manager
CTerraform
DBoth
What language is primarily used to write Deployment Manager configurations?
AYAML or Python
BHCL (HashiCorp Configuration Language)
CJSON
DJavaScript
Which tool is open-source and widely used outside Google Cloud?
ADeployment Manager
BGoogle Cloud Console
CCloud Shell
DTerraform
If your team only uses Google Cloud and wants tight integration, which tool might be simpler?
ADeployment Manager
BTerraform
CAWS CloudFormation
DAnsible
Which factor is NOT important when choosing between Terraform and Deployment Manager?
AMulti-cloud support
BColor of the tool's logo
CTeam familiarity
DCommunity support
Explain the main differences between Terraform and Deployment Manager and when you might choose one over the other.
Think about cloud support, languages used, and integration.
You got /4 concepts.
    List key factors to consider when deciding between Terraform and Deployment Manager for managing Google Cloud infrastructure.
    Focus on practical decision points for teams.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which tool is best described as Google Cloud's native infrastructure management service?
      easy
      A. Deployment Manager
      B. Terraform
      C. Ansible
      D. Chef

      Solution

      1. Step 1: Understand native tools in GCP

        Deployment Manager is built by Google specifically for managing GCP resources.
      2. Step 2: Compare with other tools

        Terraform is multi-cloud and not native to GCP, while Ansible and Chef are configuration management tools, not native GCP infrastructure managers.
      3. Final Answer:

        Deployment Manager -> Option A
      4. Quick Check:

        Native GCP tool = Deployment Manager [OK]
      Hint: Native GCP tool means Deployment Manager [OK]
      Common Mistakes:
      • Confusing Terraform as native to GCP
      • Mixing configuration tools with infrastructure tools
      • Assuming multi-cloud tools are native
      2. Which syntax snippet correctly initializes a Terraform configuration for Google Cloud?
      easy
      A. resource "gcp_project" { name = "my-project" }
      B. provider "google" { project = "my-project" region = "us-central1" }
      C. deployment "my-deployment" { config: "config.yaml" }
      D. service "google" { project = "my-project" }

      Solution

      1. Step 1: Identify Terraform provider syntax

        Terraform uses the keyword 'provider' with the provider name and configuration inside curly braces.
      2. Step 2: Check other options

        resource "gcp_project" { name = "my-project" } uses incorrect resource type, C is Deployment Manager style, D uses invalid keyword 'service'.
      3. Final Answer:

        provider "google" { project = "my-project" region = "us-central1" } -> Option B
      4. Quick Check:

        Terraform provider block = provider "google" { project = "my-project" region = "us-central1" } [OK]
      Hint: Terraform uses 'provider' block for cloud setup [OK]
      Common Mistakes:
      • Confusing Deployment Manager syntax with Terraform
      • Using wrong keywords like 'service' instead of 'provider'
      • Incorrect resource types for Terraform
      3. Given this Terraform snippet:
      resource "google_compute_instance" "vm" {
      name = "test-vm"
      machine_type = "e2-medium"
      zone = "us-central1-a"
      boot_disk {
      initialize_params {
      image = "debian-cloud/debian-10"
      }
      }
      network_interface {
      network = "default"
      }
      }

      What will happen when you run terraform apply?
      medium
      A. A new VM instance named 'test-vm' will be created in us-central1-a zone.
      B. Terraform will throw a syntax error due to missing provider block.
      C. The VM will be created but without a boot disk.
      D. Terraform will delete all existing instances in the default network.

      Solution

      1. Step 1: Analyze resource block

        The resource defines a Google Compute VM named 'test-vm' with specified machine type, zone, boot disk image, and network interface.
      2. Step 2: Understand Terraform apply behavior

        Terraform will create the VM as described if the provider is configured elsewhere; missing provider block causes error only if not configured.
      3. Final Answer:

        A new VM instance named 'test-vm' will be created in us-central1-a zone. -> Option A
      4. Quick Check:

        Terraform creates resources as defined [OK]
      Hint: Terraform creates resources exactly as defined [OK]
      Common Mistakes:
      • Assuming missing provider block always causes error
      • Thinking boot disk is optional and missing
      • Believing Terraform deletes unrelated resources
      4. You wrote a Deployment Manager config but get an error: Invalid resource type. What is the most likely cause?
      medium
      A. Missing project ID in the config file
      B. Not enabling the Compute Engine API
      C. Incorrect indentation in YAML file
      D. Using a Terraform resource type in Deployment Manager config

      Solution

      1. Step 1: Understand resource types in Deployment Manager

        Deployment Manager requires resource types specific to GCP and its own syntax, not Terraform resource types.
      2. Step 2: Identify error cause

        Using Terraform resource types in Deployment Manager config causes 'Invalid resource type' error.
      3. Final Answer:

        Using a Terraform resource type in Deployment Manager config -> Option D
      4. Quick Check:

        Resource types must match tool syntax [OK]
      Hint: Use correct resource types per tool [OK]
      Common Mistakes:
      • Confusing Terraform and Deployment Manager resource types
      • Ignoring API enablement errors
      • Assuming YAML indentation causes resource type errors
      5. Your team needs to manage infrastructure across multiple clouds with a single tool and prefers simple, readable syntax. Which tool should you choose?
      hard
      A. Deployment Manager because it is native to GCP
      B. Use Deployment Manager with custom scripts for multi-cloud
      C. Terraform because it supports multiple clouds and has simple syntax
      D. Manual scripting with gcloud CLI for flexibility

      Solution

      1. Step 1: Analyze multi-cloud support

        Deployment Manager only supports GCP, so it cannot manage multiple clouds.
      2. Step 2: Consider syntax and team preference

        Terraform supports multiple clouds and uses simple, readable syntax, fitting team needs.
      3. Step 3: Evaluate other options

        Manual scripting is error-prone and less maintainable; Deployment Manager with scripts is complex and limited to GCP.
      4. Final Answer:

        Terraform because it supports multiple clouds and has simple syntax -> Option C
      5. Quick Check:

        Multi-cloud + simple syntax = Terraform [OK]
      Hint: Multi-cloud needs point to Terraform [OK]
      Common Mistakes:
      • Choosing Deployment Manager for multi-cloud
      • Thinking manual scripts are simpler
      • Assuming Deployment Manager can be extended easily for other clouds
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard