Lesson 0001:到底什么是 DevOps?

这是你 DevOps 学习之旅的第一课。学完这一课,你就能回答面试中最常见的问题:「什么是 DevOps?」

先讲一个故事

假设你是一个前端开发者。你写了一个很棒的 React 应用,在本地 localhost:3000 跑得完美。现在你把它推给「运维」去上线。

运维说:「你用的 Node 版本是多少?环境变量有哪些?数据库连哪?nginx 配置谁写?这个端口跟现有服务冲突了…」

三天过去了,你的代码还躺在 Git 仓库里,没上线。

这就是经典问题:开发(Dev)和运维(Ops)之间有一堵墙。Dev 只管写代码,Ops 只管跑服务。双方用不同的语言、不同的工具、不同的优先级。代码在 Dev 的机器上能跑,但在 Ops 的服务器上跑不了——「在我机器上没问题」成了行业梗。

DevOps = 拆掉这堵墙

DevOps 的核心主张就一句话:

让写代码的人(Dev)和跑代码的人(Ops)用同一套工具、同一种语言、同一条流水线协作,从而更快、更可靠地交付软件

它不是一个职位,不是一组工具,而是一种文化和方法论。工具是实现这种文化的载体。

DevOps 的无限循环:Plan → Code → Build → Test → Release → Deploy → Operate → Monitor → Plan

DevOps 通常用一个「无限循环」(infinity loop)来表示软件从想法到上线、再到反馈的完整生命周期:

   Plan ──→ Code ──→ Build ──→ Test
    ↑                            ↓
 Monitor                      Release
    ↑                            ↓
 Operate ←── Deploy ←───────────┘

每个阶段解释一下(你现在不用深究,后面每课深入一个):

阶段做什么你认识的工具
Plan(规划)需求拆分、任务管理Jira, GitHub Issues
Code(编码)写代码、代码审查VS Code, Git, GitHub
Build(构建)编译、打包npm build, webpack, Docker
Test(测试)自动化测试Jest, Playwright, CI 流水线
Release(发布)版本管理、发布准备Git tags, GitHub Releases
Deploy(部署)把代码推到服务器Docker, Kubernetes, 云服务
Operate(运维)保持服务运行Linux, systemd, 负载均衡
Monitor(监控)观测系统状态Prometheus, Grafana, 告警

注意:这 8 个阶段大多数已经在你的日常工作中出现了!你作为前端/后端开发者,已经在做 Plan → Code → Build → Test。DevOps 只是把这个循环延伸到右边的部分。

DevOps 的四大支柱

把 DevOps 拆成四个可以独立学习的领域:

  1. CI/CD(持续集成 / 持续交付) — 代码提交后自动构建、测试、部署。你 push 代码,剩下的交给机器。
  2. IaC(基础设施即代码) — 用代码定义服务器、网络、数据库,而不是手动点鼠标。服务器配置可以版本控制、review、回滚。
  3. 容器化 & 编排 — Docker 把你的应用和环境打包成一个「集装箱」;Kubernetes 管理成百上千个这样的集装箱。
  4. 监控 & 可观测性 — 线上出了问题,你能在用户发现之前知道。日志、指标、追踪。

DevOps Engineer 到底做什么?

DevOps 不是一个「纯运维」岗位。一个 DevOps Engineer 的工作大致包括:

你已有的优势

你是前端 + 部分后端开发者。这意味着:

你不是从零开始。你只是需要把已有的开发思维延伸到运维领域。

练习:画出你的第一张 DevOps 地图

目标:用你当前的工作(或一个你熟悉的项目)来映射 DevOps 生命周期。

步骤:

  1. 拿出一张纸(或打开一个空白文档)
  2. 画出 8 个阶段的循环(Plan → Code → … → Monitor → Plan)
  3. 在每个阶段下面写下你目前在用的工具和方法
  4. 标记出哪些阶段你现在不做手动做——这些就是你要学的东西

举个例子,你的图可能长这样:

Plan:    GitHub Issues  ✓
Code:    VS Code, Git   ✓
Build:   npm run build  ✓
Test:    Jest(手写)   ✓ (但是没有自动跑)
Release: npm version    ✓ (手动)
Deploy:  ???            ✗ (不会)
Operate: ???            ✗ (不会)
Monitor: ???            ✗ (不会)

这张图就是你的个人 DevOps 学习路线图。接下来的每一课,都会帮你把其中一个 变成

小测验

问题 1:DevOps 解决的核心问题是什么?(选一个)
问题 2:以下哪个不是 DevOps 生命周期中的阶段?(选一个)
问题 3:作为前端开发者,你已经有哪个 DevOps 相关技能?(选一个)

推荐阅读

主要推荐资源:找一本《凤凰项目》(The Phoenix Project),花一个周末读完它。它不是技术书,而是一个关于 DevOps 为什么重要的故事。读完你会对整个领域的「为什么」有深刻的理解。

下一步

下一课我们将开始第一个动手环节:Linux 命令行基础——因为不管你以后用 Docker、Kubernetes 还是云服务,你最终都是在跟 Linux 打交道。

有问题?直接在这个对话里问 —— 我是你的 DevOps 老师,可以帮你解释任何不清楚的概念。
Lesson 0001 · What is DevOps? · 术语表 · Mission