Skip to content

前端部署与运维(SRE)面试题

模拟真实面试场景,训练对部署、发布、可观测性的思考与表达。


一、基础题

1. 前端部署为什么要给 JS/CSS 加 hash?基础
2. 灰度发布和 A/B 测试有什么区别?基础
3. 什么是 CDN?前端如何利用 CDN?基础
4. Docker 多阶段构建在前端部署中有哪些优势?请给出一个 Dockerfile 示例。基础
5. CI/CD 流水线的核心环节有哪些?每个环节的质量门禁如何设定?基础

二、进阶题

6. 如何设计前端错误监控体系?进阶
7. 发布回滚有哪些策略?如何实现快速回滚?进阶
8. 如何用 Kubernetes 管理前端应用?Deployment、Service、Ingress 如何配置?进阶
9. 如何设计前端性能监控与告警策略?进阶
10. 前端多环境配置管理与环境隔离的最佳实践?进阶
11. 多环境晋升(Promotion)策略如何设计?如何保证生产环境零停机?进阶
12. 灰度发布中如何做好指标观测和自动化熔断?进阶
13. 如何将安全扫描集成到前端 CI/CD 流水线中?进阶

三、高级题

14. 如何保障大促期间前端稳定性?深入

参考答案要点

  1. 提前压测和容量评估:使用 Lighthouse 批量跑分,k6 模拟高并发访问静态资源,确定 CDN 和源站的容量瓶颈。
  2. CDN 预热和带宽扩容:提前将大促资源预热到 CDN 全节点,联系 CDN 厂商临时扩容带宽。
  3. 多 CDN 容灾:配置主备 CDN,任一 CDN 故障时自动切换(通过 DNS 权重或 HTTP DNS)。
  4. 限流降级:后端 API 限流降级时前端兜底——展示降级页面、缓存数据、离线容灾。
  5. 静态化:核心页面(如活动页)提前静态化部署到 CDN,不依赖动态 API。
  6. 监控与预案:大促专项监控大盘,预演故障场景,SRE 24 小时值班。

评分维度

  • 预防措施(30%)
  • 容量保障(20%)
  • 容灾降级(25%)
  • 监控响应(15%)
  • 预案完整性(10%)

常见错误

  • 只关注扩容(加机器)而忽略了架构层面的限流降级。
  • 大促前的压测只测了后端,未对前端静态资源做压力测试。
  • 没有降级预案,后端一旦异常前端直接白屏。

扩展追问

  • Q: 大促期间如果 CDN 带宽打满,如何紧急降低带宽占用?
  • Q: 静态页面降级方案如何设计?Service Worker 可以做离线降级吗?
  • Q: 如何提前"模拟"大促流量做全链路压测?

15. 设计一个前端零停机发布方案。深入

参考答案要点

  1. 构建产物版本化:所有静态资源以版本目录组织(/v1.2.3/),保留历史版本。
  2. 入口控制:网关或 Edge Function 根据版本策略分发 index.html,支持灰度。
  3. 缓存的精妙控制:带 hash 的 JS/CSS 使用 immutable 缓存,HTML 使用 no-cache
  4. 滚动发布流程:K8s Deployment RollingUpdate(maxUnavailable: 0),新增 Pod 就绪后再摘除旧 Pod。
  5. 蓝绿部署:切流前保持绿环境运行,蓝环境验证通过后切换流量,异常时立即切回。
  6. PreStop Hook:Nginx 优雅关闭,确保正在处理的请求完成。
  7. 实时验证:切换后自动化冒烟测试 + 监控指标对比。

评分维度

  • 版本管理(25%)
  • 流量控制(25%)
  • 灰度策略(20%)
  • 回滚能力(20%)
  • 用户体验(10%)

常见错误

  • 只关注前端服务零停机,忽略了后端 API 新老版本兼容问题。
  • 切换流量时大规模刷新 CDN 缓存,导致回源风暴压垮源站。
  • 没有自动化验证步骤,全量切完后才发现问题。

扩展追问

  • Q: 蓝绿部署和滚动部署各自适合什么场景?
  • Q: 如果数据库也需要迁移,如何实现前端的零停机?
  • Q: 前端版本与后端 API 版本如何对齐?如何处理 API 兼容性问题?

16. 如何设计前端应用的多集群/多活部署架构?深入
17. 如何为前端应用定义和度量 SLO?如何设计告警预算?深入
18. 什么是前端混沌工程?如何在前端实施混沌实验?深入

基于 MIT 协议发布