Production deployment patterns
Graceful shutdown, prod config, rollouts, readiness probes, and ship-with-confidence checks.
How to Mock a Dockerfile Multi-Stage Build in Python
Simulate a Dockerfile multi-stage build process in Python using dataclasses to validate stage ordering and file availability before you write the real Dockerfile.
from dataclasses import dataclass
from pathlib import Path
@dataclass
class BuildStage:
name: str
base_image: str
files: list[str]
commands: list[str]
def run_build(stage: BuildStage, context_dir: Path):
print(f"=== Stage: {stage.name} (base: {stage.base_image}) ===")
for file in stage.file…
How to Mock a GitHub Actions Workflow in Python
Build a dataclass-based model of a GitHub Actions workflow and simulate its execution to validate steps and outputs before deployment.
import json
from dataclasses import dataclass, asdict
from typing import List, Dict, Any
@dataclass
class Step:
name: str
run: str
@dataclass
class Job:
name: str
steps: List[Step]
runs_on: str = "ubuntu-latest"
@dataclass
class Workflow:
name: str
jobs: List[Job]
def to_github_a…
How to Mock a Kubernetes Rolling Update with maxSurge in Python
Simulate a Kubernetes rolling update with maxSurge policy, tracking peak and final replica counts during roll transitions.
from collections import deque
class RollingUpdateMaxSurge:
def __init__(self, replicas, max_surge):
self.replicas = replicas
self.max_surge = max_surge
self.available = replicas
self.history = deque()
def roll(self, desired_replicas):
"""
Simulate a rolling upd…
How to Mock a Slow Startup Probe for Fast Testing in Python
This code shows how to replace a slow startup probe's initialization with a mock to make tests run fast and reliably.
import time
from unittest.mock import Mock, patch
class StartupProbe:
def __init__(self, init_time):
self.init_time = init_time
self.ready = False
def initialize(self):
time.sleep(self.init_time)
self.ready = True
return self.ready
def run_startup_probe(probe):
…
How to Replace Fields in an Immutable Dataclass in Python
Create a new copy of a frozen dataclass with selected fields changed, leaving the original unchanged.
from dataclasses import dataclass, replace
@dataclass(frozen=True)
class ServerConfig:
name: str
cpu: int = 2
ram: int = 4096
tags: tuple = ()
original = ServerConfig("web-01", cpu=4, tags=("env:prod",))
updated = replace(original, ram=8192, tags=("env:prod", "region:us-east"))
print("Original:", …
How to Roll Back to a Previous Image Tag in Python
A dataclass-based mock registry that tracks image tag history and rolls back to the previous tag, useful for deployment rollback logic.
"""Demonstrates a rollback pattern for a Docker-style image tag registry."""
from dataclasses import dataclass, field
@dataclass
class ImageRegistry:
"""A minimal mock registry tracking current tags per image."""
tags: dict[str, list[str]] = field(default_factory=dict)
def push(self, image: str, tag: …
How to Simulate Blue-Green Deployment Switch in Python
A mock Blue-Green deployment class that deploys new versions to an inactive environment, runs a health check, switches traffic, and supports rollback in Python.
import random
import time
class BlueGreenDeployment:
def __init__(self, initial_env="blue"):
self.environments = {"blue": "v1.0", "green": "v1.0"}
self.active_env = initial_env
self.running = True
def deploy_new_version(self, version, target_env):
if target_env == self.active_…
How to Simulate a Packer AMI Build in Python
A simple Python class that mimics a Packer AMI build lifecycle — creates a build object, transitions its state to completed, and prints a JSON snapshot.
import json
class PackerBuildMock:
def __init__(self, name, ami_id, region="us-east-1", state="pending"):
self.name = name
self.ami_id = ami_id
self.region = region
self.state = state
def build(self):
if self.state == "pending":
self.state = "completed"
…
How to mock Kustomize overlay patches in Python
Simulate Kustomize overlay behavior by deep-merging a base Kubernetes manifest with a patch dictionary in pure Python.
import json
SOURCE = {
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {"name": "app", "namespace": "prod"},
"spec": {
"replicas": 3,
"template": {
"spec": {
"containers": [{"name": "app", "image": "nginx:1.19"}]
}
}
}
}
P…
How to mock resource request limits in Python
A Python class that simulates CPU and memory limit checks for resource requests, returning clear acceptance or rejection messages.
class ResourceLimits:
def __init__(self, cpu_limit, memory_limit):
self.cpu_limit = cpu_limit
self.memory_limit = memory_limit
def check_request(self, cpu, memory):
if cpu > self.cpu_limit:
return "CPU limit exceeded: {cpu} > {limit}".format(cpu=cpu, limit=self.cpu_limit)
…
How to simulate GitLab CI stages in Python
Build a lightweight Python mock of GitLab CI pipeline stages to test job sequencing and output locally.
def mock_gitlab_ci_stages():
stages = ["build", "test", "deploy"]
stage_status = {}
for stage in stages:
jobs = []
if stage == "build":
jobs = ["compile", "package"]
elif stage == "test":
jobs = ["unit", "integration", "e2e"]
elif stage == "deploy":…
How to simulate a Jenkins pipeline in Python
Simulate a Jenkins-style pipeline in Python by running sequential stages and checking aggregate success.
def run_stage(name, duration, fn):
print(f"[Pipeline] Running stage: {name}")
result = fn()
print(f"[Pipeline] Stage '{name}' completed in {duration}s -> {result}")
return result
def build_project():
print(" compiling source...")
return "BUILD_OK"
def run_tests():
print(" executing unit…
How to simulate a database migration init container mock in Python
A mock init container that runs environment checks and a staged database migration job before the main application starts, printing progress to stdout.
```python
class MigrationJob:
def __init__(self, name, steps):
self.name = name
self.steps = steps
self.current_step = 0
self.status = "pending"
def run(self):
print(f"Initializing migration job: {self.name}")
for step in self.steps:
self.current_ste…
Mock Kubernetes HPA CPU Scaling in Python
Python function that simulates CPU utilization and calculates desired replicas using the Kubernetes HPA formula.
import random
import time
def simulate_cpu_utilization(target_utilization=50, samples=10):
"""Simulate CPU utilization readings for HPA mock."""
utilizations = []
for _ in range(samples):
# Simulate fluctuating CPU with random noise around target
current = target_utilization + random.unif…
PodDisruptionBudget minAvailable in Python
Simulate a Kubernetes PodDisruptionBudget check for minAvailable and maxUnavailable constraints with a Python class.
class PodDisruptionBudget:
def __init__(self, name, min_available=None, max_unavailable=None):
self.name = name
self.min_available = min_available
self.max_unavailable = max_unavailable
def check_availability(self, ready_pods):
if self.min_available is not None:
ret…
Zero Downtime Migration with Dual Write Pattern in Python
Implement a dual-write pattern that writes user data to both legacy and new systems simultaneously to enable zero-downtime migration.
from datetime import datetime
import json
class UserService:
def __init__(self):
self.legacy_db = {}
self.new_db = {}
self.migration_log = []
def write_user(self, user_id, name, email):
# Write to new system first
user_record = {
"id": user_id,
…
Browse by section
Each section groups closely related Python snippets.
Production deployment patterns — Python code examples
What you will find here
This page collects production deployment patterns snippets — short, copy-ready Python you can paste into our free online IDE and run without installing anything. Each sample includes a plain-English explanation and the full source code.
Samples vs tutorials and challenges
Samples are quick reference — one concept per page. For step-by-step teaching, use our Python tutorials. To test yourself, try quizzes or coding challenges. Clean up style with the Python formatter.