StackSense ← 回到地图
工程实践 / OPS

工程与可观测

写完代码只是上半场,让它在生产环境稳定跑才是下半场:容器、K8s、Prometheus、OpenTelemetry、SLO。这个模块的目标是让你能独立把一个服务部署到集群、能定义合理的 SLI / SLO、能在凌晨三点根据四个黄金信号和调用链定位到出问题的那一行代码。

写完代码只是上半场,让它在生产环境稳定跑才是下半场:容器、K8s、Prometheus、OpenTelemetry、SLO。这个模块的目标是让你能独立把一个服务部署到集群、能定义合理的 SLI / SLO、能在凌晨三点根据四个黄金信号和调用链定位到出问题的那一行代码。

学完后你应该能回答

容器 / K8s 基础

  1. 镜像里的一层和容器运行时的可写层分别存在哪里?为什么 docker commit 出的镜像通常比 Dockerfile 构建的大?
  2. Pod 的 requests 和 limits 分别影响调度器的什么决策?设 limit 不设 request 会怎样?反过来呢?
  3. 同一个 Service 后面 10 个 Pod,kube-proxy iptables 模式和 IPVS 模式在连接分布上有什么区别?
  4. Deployment 的滚动更新在什么情况下会卡住?kubectl rollout status 看到 stuck,你会依次检查哪些资源?
  5. Helm values 覆盖优先级是怎样的?chart 里 {{- if .Values.x -}}- 去掉会怎样?
  6. Init container、sidecar、ephemeral container 各适合什么场景?在 Pod 生命周期里分别什么时候起来?

K8s 高级模式

  1. kube-scheduler 的 plugin 化架构(filter / score)怎么扩展?自定义调度器的典型落地路径是什么?
  2. Pod 的 priority / preemption 机制怎么工作?大规模集群里经常踩什么坑?
  3. StatefulSet 和 Deployment 的核心差异在哪?为什么有状态服务一般还要配套 Operator?
  4. Operator 模式的 reconcile loop 怎么写才幂等?level-triggered vs edge-triggered 的取舍?
  5. CRD + admission webhook 的典型扩展路径?mutating 和 validating 两类 webhook 各在哪个阶段介入?

发布 & GitOps

  1. GitOps(ArgoCD / Flux)怎么处理”集群和 Git 发散”?auto-sync 和 manual sync 分别适合什么团队?
  2. 金丝雀、蓝绿、滚动发布的差异?Istio 做流量切分相比 Service + Deployment 多出什么能力?
  3. Progressive delivery(Flagger / Argo Rollouts)里 metric-driven rollback 的闭环是怎么跑的?
  4. 多集群、多区域部署时 ArgoCD ApplicationSet 和 Flux Kustomization 各自的工程模型差异?

SLO / 错误预算

  1. 你要给一个延迟敏感的 API 定义 SLO,选 p99 还是 p999?错误预算(error budget)用完后团队应该做什么?
  2. 四个黄金信号(latency / traffic / errors / saturation)对应到 Prometheus,你会用哪些 metric 类型(counter / gauge / histogram)去表达?
  3. Multi-window multi-burn-rate SLO 告警是怎么组合的?为什么单 burn rate 会出现假警报?
  4. Error budget 用完后”冻结功能开发”在工程文化上怎么落地?什么情况下可以例外?
  5. histogram_quantile 在 Prometheus 里什么时候会骗你?和 summary 各适合什么场景?

Observability / Tracing

  1. OpenTelemetry 里 trace、metric、log 的 context 是怎么关联的?看到一条错误日志,如何跳到对应的 trace?
  2. OpenTelemetry Collector 的 receiver / processor / exporter 管道,典型生产部署长什么样?
  3. 分布式追踪的采样策略(head-based vs tail-based)如何选?尾采样的工程复杂度主要在哪?
  4. 日志走 Loki、追踪走 Tempo、指标走 Prometheus,在”一个 trace id 跳到日志和指标”时用的是哪些 label / attribute 约定?
  5. Continuous profiling(pprof / Parca / Pyroscope)作为第四根支柱,和传统 metric/log/trace 互补在哪?

核心概念

Lab

资料

工具