📖 Scenario: You are working as a cloud engineer for a small company. Your task is to deploy a simple web application workload on Google Cloud Platform (GCP) using Compute Engine virtual machines.This project will guide you step-by-step to create the necessary resources and configurations to deploy your workload successfully.
🎯 Goal: By the end of this project, you will have created a Compute Engine instance with a startup script that deploys a simple web server. You will configure the instance to allow HTTP traffic and verify the deployment setup.
📋 What You'll Learn
Create a Compute Engine instance with a specific name and machine type
Add a startup script to install and start a web server
Configure the instance to allow HTTP traffic
Verify the instance configuration for deployment readiness
💡 Why This Matters
🌍 Real World
Deploying workloads on cloud virtual machines is a common task for running web applications, databases, and other services.
💼 Career
Cloud engineers and DevOps professionals regularly create and configure compute instances to deploy and manage workloads in production environments.
Progress0 / 4 steps
1
Create a Compute Engine instance resource
Create a variable called instance_config that is a dictionary with these exact keys and values: "name": "web-server-1", "machine_type": "e2-micro", and "zone": "us-central1-a".
GCP
Hint
Use a Python dictionary with keys exactly as name, machine_type, and zone.
2
Add a startup script to install a web server
Add a key "startup_script" to the instance_config dictionary with the value set to the string "#!/bin/bash\nsudo apt-get update && sudo apt-get install -y apache2 && sudo systemctl start apache2".
GCP
Hint
The startup script runs commands to update packages, install Apache2, and start the service.
3
Configure the instance to allow HTTP traffic
Add a key "allow_http" to the instance_config dictionary and set its value to True.
GCP
Hint
Setting allow_http to True enables HTTP traffic to the instance.
4
Complete the deployment configuration
Create a variable called deployment_config that is a dictionary with a single key "compute_instance" whose value is the instance_config dictionary.
GCP
Hint
This final dictionary groups the instance configuration under the key compute_instance.
Practice
(1/5)
1. What does deploying a workload on Google Cloud Run primarily do?
easy
A. Stores your application code without running it
B. Creates a virtual machine that you must manage manually
C. Runs your application in a managed environment that scales automatically
D. Only backs up your application data
Solution
Step 1: Understand Cloud Run's purpose
Cloud Run runs your app in a managed environment that automatically scales based on traffic.
Step 2: Compare options
Options B, C, and D describe other services or actions, not workload deployment on Cloud Run.
Final Answer:
Runs your application in a managed environment that scales automatically -> Option C
Quick Check:
Cloud Run = managed auto-scaling app hosting [OK]
Hint: Cloud Run runs and scales apps automatically [OK]
Common Mistakes:
Confusing Cloud Run with virtual machines
Thinking Cloud Run only stores code
Assuming manual scaling is needed
2. Which of the following is the correct gcloud command to deploy a container image to Cloud Run in region us-central1 with service name my-service?
easy
A. gcloud run deploy my-service --image=gcr.io/my-project/my-image --region=us-central1
B. gcloud deploy run --service=my-service --image=my-image --region=us-central1
C. gcloud run create --name my-service --image gcr.io/my-project/my-image --zone us-central1
D. gcloud container deploy my-service --image=gcr.io/my-project/my-image --region=us-central1
Solution
Step 1: Recall correct gcloud run deploy syntax
The correct command uses 'gcloud run deploy SERVICE_NAME --image=IMAGE --region=REGION'.
Step 2: Match options to syntax
gcloud run deploy my-service --image=gcr.io/my-project/my-image --region=us-central1 matches the correct syntax exactly. Others have wrong commands or flags.
Final Answer:
gcloud run deploy my-service --image=gcr.io/my-project/my-image --region=us-central1 -> Option A
Quick Check:
Correct gcloud run deploy syntax = gcloud run deploy my-service --image=gcr.io/my-project/my-image --region=us-central1 [OK]
Hint: Use 'gcloud run deploy SERVICE --image=IMAGE --region=REGION' [OK]
Common Mistakes:
Using 'gcloud deploy run' instead of 'gcloud run deploy'
Confusing --zone with --region
Using 'gcloud container deploy' which is invalid
3. Given this command: gcloud run deploy my-app --image=gcr.io/project/app:v1 --region=us-east1, what happens after deployment?
medium
A. The app is uploaded but does not run until manually started
B. The app runs on Cloud Run and scales automatically with traffic
C. A virtual machine is created but the app is not deployed
D. The app runs only on your local machine
Solution
Step 1: Understand Cloud Run deployment behavior
Deploying with gcloud run deploy starts the app on Cloud Run immediately with auto-scaling.
Step 2: Eliminate incorrect options
Options B, C, and D describe behaviors not matching Cloud Run's managed service.
Final Answer:
The app runs on Cloud Run and scales automatically with traffic -> Option B
Quick Check:
Cloud Run deploy = app runs and scales automatically [OK]
Hint: Deploy starts app running with auto-scaling on Cloud Run [OK]
Common Mistakes:
Thinking deployment only uploads code
Assuming manual start is needed
Confusing Cloud Run with VM creation
4. You run gcloud run deploy my-service --image=gcr.io/my-project/my-image but get an error about missing region. What is the fix?
medium
A. Remove the --image flag and try again
B. Deploy to Cloud Storage instead
C. Use --zone instead of --region
D. Add the flag --region=REGION with a valid region like us-central1
Solution
Step 1: Identify missing required flag
The error indicates the region flag is missing, which is required for Cloud Run deployment.
Step 2: Correct the command by adding --region
Adding --region=us-central1 (or another valid region) fixes the error.
Final Answer:
Add the flag --region=REGION with a valid region like us-central1 -> Option D
Quick Check:
Missing region error = add --region flag [OK]
Hint: Always specify --region when deploying to Cloud Run [OK]
Common Mistakes:
Using --zone instead of --region
Removing --image flag which is required
Trying to deploy to wrong service like Cloud Storage
5. You want to deploy a new version of your app to Cloud Run but keep the old version running for testing. How can you achieve this?
hard
A. Deploy the new version with the same service name and region
B. Deploy to a different Google Cloud project
C. Use gcloud run update to replace the old version
D. Deploy the new version with a different service name
Solution
Step 1: Understand Cloud Run revisions
Cloud Run automatically creates a new revision when deploying to an existing service, keeping previous revisions available for testing via revision-specific invocations or traffic splitting.
Step 2: Deploy new version with the same service name and region
This leverages Cloud Run's built-in revision management to keep both versions accessible.
Final Answer:
Deploy the new version with the same service name and region -> Option A
Quick Check:
Same service = new revision, old available for testing [OK]
Hint: Deploy to same service name to use revisions for multi-version testing [OK]
Common Mistakes:
Deploying to a different Google Cloud project unnecessarily
Using 'gcloud run update' incorrectly for image changes
Deploying with a different service name when revisions suffice
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.