Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Blue-green deployment for models
📖 Scenario: You work in a team that manages machine learning models in production. To avoid downtime and risks when updating models, your team uses a blue-green deployment strategy. This means you have two identical environments: blue and green. One environment serves the live traffic, while the other is used to deploy and test the new model version. After testing, you switch traffic to the new environment.In this project, you will simulate a simple blue-green deployment system for ML models using Python dictionaries and variables.
🎯 Goal: You will build a small program that manages two model environments (blue and green) with their versions. You will set the active environment, deploy a new model version to the inactive environment, switch the active environment, and print the current active model version.
📋 What You'll Learn
Create a dictionary to hold model versions for blue and green environments
Create a variable to track the currently active environment
Write code to deploy a new model version to the inactive environment
Write code to switch the active environment to the inactive one
Print the active environment and its model version
💡 Why This Matters
🌍 Real World
Blue-green deployment is a common technique in MLOps to update machine learning models without downtime or risk. It allows teams to test new models in a safe environment before switching live traffic.
💼 Career
Understanding blue-green deployment helps you work with production ML systems, ensuring smooth updates and high availability, which is a key skill for MLOps engineers and DevOps professionals.
Progress0 / 4 steps
1
Create model version dictionary
Create a dictionary called model_versions with keys 'blue' and 'green'. Set the value for 'blue' to 'v1.0' and for 'green' to 'v0.9'.
MLOps
Hint
Use curly braces {} to create a dictionary with keys 'blue' and 'green' and their version strings as values.
2
Set active environment variable
Create a variable called active_env and set it to the string 'blue' to represent the currently active environment.
MLOps
Hint
Just assign the string 'blue' to the variable active_env.
3
Deploy new model version to inactive environment
Create a variable called inactive_env that is the opposite of active_env (if active_env is 'blue', inactive_env should be 'green', and vice versa). Then update the model_versions dictionary for the inactive_env key to the new version string 'v1.1'.
MLOps
Hint
Use a conditional expression to set inactive_env. Then assign 'v1.1' to model_versions[inactive_env].
4
Switch active environment and print status
Switch the active_env to the inactive_env. Then print the string "Active environment: {active_env}, Model version: {version}" where {active_env} is the current active environment and {version} is the model version from model_versions for that environment.
MLOps
Hint
Assign active_env = inactive_env. Use an f-string in print to show the active environment and its model version.
Practice
(1/5)
1. What is the main purpose of blue-green deployment in model updates?
easy
A. To run two models at the same time and combine their outputs
B. To switch traffic to a new model only after it is fully tested and ready
C. To update the model directly in the production environment without backup
D. To deploy models only during off-peak hours
Solution
Step 1: Understand blue-green deployment concept
Blue-green deployment uses two separate environments to avoid downtime and risk during updates.
Step 2: Identify the key purpose
The main goal is to switch traffic to the new model only after it is fully tested and ready, ensuring safety.
Final Answer:
To switch traffic to a new model only after it is fully tested and ready -> Option B
Quick Check:
Safe model update = A [OK]
Hint: Blue-green means switch only after testing new model [OK]
Common Mistakes:
Thinking both models run and combine outputs
Updating production without backup
Deploying only during off-peak hours
2. Which command correctly switches traffic from the blue environment to the green environment in a Kubernetes service?
easy
A. kubectl set image deployment/model-deploy model=green-model:latest
B. kubectl delete deployment model-deploy-blue
C. kubectl rollout restart deployment/model-deploy-green
D. kubectl patch service model-service -p '{"spec":{"selector":{"env":"green"}}}'
Solution
Step 1: Understand traffic switching in Kubernetes
Traffic is routed by the service selector labels pointing to the correct deployment environment.
Step 2: Identify the command that changes service selector to green
The patch command updates the service selector to point to pods labeled with "env=green".
Final Answer:
kubectl patch service model-service -p '{"spec":{"selector":{"env":"green"}}}' -> Option D
Quick Check:
Change service selector = B [OK]
Hint: Patch service selector to green environment label [OK]
Common Mistakes:
Restarting deployment does not switch traffic
Setting image changes deployment but not traffic
Deleting blue deployment before switch causes downtime
3. Given this simplified deployment script snippet, what will be the output after running it?
current_env = "blue"
new_env = "green"
if current_env == "blue":
print(f"Switching traffic to {new_env} environment")
else:
print(f"Switching traffic to {current_env} environment")
medium
A. Switching traffic to green environment
B. Switching traffic to undefined environment
C. Switching traffic to blue environment
D. No output
Solution
Step 1: Analyze the condition in the script
The variable current_env is "blue", so the if condition is true.
Step 2: Determine the printed output
Since current_env is "blue", it prints "Switching traffic to green environment" using new_env.
Final Answer:
Switching traffic to green environment -> Option A
Quick Check:
current_env == "blue" triggers green switch = C [OK]
Hint: Check if current_env is blue, then print green [OK]
Common Mistakes:
Confusing current_env and new_env variables
Assuming else branch runs when condition is true
Ignoring f-string formatting
4. You tried to switch traffic to the green model environment but users still hit the blue model. What is the most likely error?
medium
A. The service selector was not updated to point to the green environment
B. The green model deployment was deleted accidentally
C. The blue environment pods crashed and restarted
D. The model version in green environment is outdated
Solution
Step 1: Understand traffic routing in blue-green deployment
Traffic is controlled by the service selector labels pointing to the active environment.
Step 2: Identify why traffic still hits blue
If users still hit blue, the service selector likely was not updated to green, so traffic stays on blue.
Final Answer:
The service selector was not updated to point to the green environment -> Option A
Quick Check:
Traffic routing depends on service selector = D [OK]
Hint: Check if service selector changed to green environment [OK]
Common Mistakes:
Assuming green deployment deletion causes traffic to blue
Confusing pod crashes with traffic routing
Thinking model version affects routing directly
5. You want to implement blue-green deployment for a machine learning model with minimal downtime. Which sequence of steps is correct?
hard
A. Deploy new model to green, switch traffic immediately, then test and monitor
B. Delete blue environment, deploy new model to green, switch traffic, monitor performance
C. Deploy new model to green environment, test it, switch service selector to green, monitor, then delete blue
D. Deploy new model to blue environment, test it, switch service selector to blue, monitor, then delete green
Solution
Step 1: Deploy and test new model in green environment
Deploying and testing in green ensures the new model works without affecting users.
Step 2: Switch traffic to green, monitor, then clean up blue
Switching traffic only after testing reduces risk. Monitoring ensures stability before deleting blue.
Final Answer:
Deploy new model to green environment, test it, switch service selector to green, monitor, then delete blue -> Option C
Quick Check:
Test before switch, monitor after = A [OK]
Hint: Test green first, then switch traffic, then delete blue [OK]
Common Mistakes:
Deleting blue before green is ready
Switching traffic before testing
Deploying new model to blue environment instead of green