根据你的基础,真正需要补的只有三块:
❌ FastAPI(Python HTTP 服务开发)— 没写过 ❌ Kubernetes 实操 — 程度未知 ❌ Terraform 系统化 — 看过但没深用
其他的:gRPC 直接跳过,CI/CD 直接跳过,Python 基础直接跳过。
精准两周计划
第一周:Kubernetes 实操(最重要)
你现在 K8s 用过 kubectl 吗?自己部署过服务吗?
这个我需要你先回答,决定第一周从哪里切入。
如果完全没实操过,第一周这样走:
Day 1:装环境 brew install minikube kubectl minikube start kubectl get nodes # 看到 Ready 就成功了 Day 2-3:部署你自己的服务 把之前写过的任何一个程序打成 Docker 镜像 写 Deployment + Service 的 yaml,部署上去 用 kubectl logs / describe / exec 排查问题 Day 4-5:进阶配置 ConfigMap 注入配置 Secret 注入密码 设置 resource limits 和 readinessProbe Day 6-7:故障演练 手动 kill 一个 Pod,看自愈 把 image 改成不存在的,排查 ImagePullBackOff 把内存 limit 设很小,触发 OOMKilled,排查 练到这些故障你看一眼就知道怎么处理
第二周:FastAPI + Terraform
Day 8-10:FastAPI
你会 requests 调 API,现在反过来写 API:
# 目标:三天内能写出这样一个服务
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import uvicorn
app = FastAPI()
# 模拟一个车队状态服务
vehicles = {
"v001": {"battery": 85, "online": True},
"v002": {"battery": 20, "online": False},
}
class StatusUpdate(BaseModel):
battery: int
online: bool
@app.get("/vehicles/{vehicle_id}")
def get_vehicle(vehicle_id: str):
if vehicle_id not in vehicles:
raise HTTPException(status_code=404, detail="Vehicle not found")
return vehicles[vehicle_id]
@app.put("/vehicles/{vehicle_id}")
def update_vehicle(vehicle_id: str, update: StatusUpdate):
vehicles[vehicle_id] = update.dict()
return {"message": "updated"}
@app.get("/health")
def health():
return {"status": "ok"}
Day 8:写完这个服务,本地跑通。
Day 9:打成 Docker 镜像,部署到第一周搭好的 K8s。
Day 10:加上 ConfigMap 注入配置,练习完整的开发到部署链路。
Day 11-13:Terraform
你用过 ARM Template,思维模型是一样的,语法切换两天够了:
# ARM Template 你写过这种:
# "type": "Microsoft.Network/virtualNetworks"
# Terraform 等价写法:
resource "azurerm_virtual_network" "main" {
name = "fleet-vnet"
resource_group_name = azurerm_resource_group.main.name
location = "East Asia"
address_space = ["10.0.0.0/16"]
}
# 核心命令就这四个:
terraform init
terraform plan # 等价于 ARM 的 what-if
terraform apply
terraform destroy
Day 11:把 ARM Template 的概念映射到 Terraform,写一个简单的 Azure 资源。
Day 12:练 state 管理,理解 remote state 为什么要放到 Blob Storage。
Day 13:写一个完整的小模块:VNet + K8s 集群 + 输出 endpoint。
Day 14:串联演练
用 Terraform 建好基础设施 → GitHub Actions 触发构建 → Docker 镜像推到 ACR → 部署到 K8s → kubectl 验证服务正常
走通这条链路一遍,面试里就可以说”我做过完整的端到端部署”。
面试话术准备
这三块学完,面试里这样表达最有力:
Kubernetes:
“我在本地搭过 K8s 环境,部署过自己写的服务,模拟过 OOMKilled、CrashLoopBackOff 等常见故障的排查。在微软做 Azure 服务期间也接触过生产级别的容器编排。”
Terraform:
“我在微软用过 ARM Template 和 Bicep,Terraform 的状态机模型和声明式思路是一样的,语法切换很快。我理解 remote state、state locking 这些生产环境必须处理的问题。”
FastAPI:
“我用 Python 写过 RESTful API 服务,理解 Pydantic 做数据校验、依赖注入、HTTP 异常处理这些实践。也打包成 Docker 部署到 K8s 过。”
你现在告诉我
K8s 你现在实操水平怎么样? 用过 kubectl?还是只停留在概念层面?
这个决定第一周从 Day 1 开始还是从 Day 3 开始。
