什么是 DevOps,先决条件,DevOps 与 AI

发布: (2026年1月6日 GMT+8 15:58)
13 min read
原文: Dev.to

Source: Dev.to

请提供您希望翻译的具体文本内容,我将为您翻译成简体中文。

DevOps概述

DevOps是一套实践、工具和文化理念,自动化并整合软件开发(Dev)与IT运维(Ops)之间的流程。
其主要目标是缩短系统开发生命周期,并提供高质量软件的持续交付。两支团队不再各自为政(孤岛),而是在整个服务生命周期中协作。

DevOps 阶段

DevOps 生命周期通常用无限循环来表示,象征持续改进。

阶段描述常用工具
计划定义业务价值和需求。Jira, Trello
编码编写代码并使用版本控制系统管理变更。Git
构建将代码编译并打包成可执行格式。Maven, Gradle
测试运行自动化测试(单元、集成、性能),及早捕获缺陷(“Fail Fast”)。JUnit, Selenium, Gatling
发布为部署准备构建;安排并管理版本。Azure DevOps、GitLab 中的发布流水线
部署使用基础设施即代码将软件推送到生产服务器,确保环境一致。Terraform, Ansible
运维管理实时应用的配置和性能。Docker, Kubernetes
监控持续跟踪系统健康和用户行为。Nagios, Splunk, Prometheus

如何采用 DevOps 模式

采用 DevOps 与其说是工具的事,不如说是 文化 的事。下面是一份逐步实施的路线图。

  1. 改变文化 – 将“归咎”转变为“共同责任”。开发人员和运维必须在共同目标上保持一致(例如,系统正常运行是每个人的职责)。
  2. 采用敏捷方法论 – 将冗长、僵化的计划周期转为短小、迭代的冲刺(Scrum/Kanban),以小块交付工作。
  3. 实施 CI/CD
    • CI – 自动化代码合并和测试。
    • CD – 自动化发布到预发布/生产环境。
  4. 自动化基础设施 (IaC) – 停止手动配置服务器。使用代码脚本(例如 Terraform)来 provision 环境,消除 “在我的机器上可以运行” 的错误。
  5. 自动化测试 – 用自动化测试脚本取代手动 QA,使其在每次代码变更时运行。
  6. 建立持续监控 – 搭建实时仪表盘,随时查看系统健康状态,立即对崩溃作出响应。

DevOps 如何节约成本(真实案例)

好处为什么能省钱
更少停机时间自动监控在系统崩溃前捕获错误;停机时间等于失去的销售额。
更快的上市时间将功能在数周而非数月内发布,意味着收入更早到来。
降低人员成本自动化处理重复任务(如服务器更新),让高级工程师专注创新。

实时案例

示例 1 – Network Rail(英国)
问题:传统测试环境速度慢;发布需要人工干预,导致数天停机。
DevOps 方案:采用基础设施即代码和自动化测试。
成本影响:配置时间从 5.5 天 降至几分钟,节省了大量运营工时并避免了罚款。

示例 2 – Target(零售巨头)
问题:2013 年数据泄露后,Target 的单体更新流程使安全补丁困难。
DevOps 方案:实施 DevSecOps 模型,将安全集成到 CI/CD 流水线;发布频率从每季度一次提升到每天数千次。
成本影响:自动化安全检查帮助避免可能高达 十亿美元 的泄露成本,并降低变更失败率,节省了数百万的修复费用。

DevOps 与 瀑布模型

特性瀑布模型DevOps模型
过程类型线性且顺序(步骤 A 必须完成后才能进行步骤 B)。循环且迭代(规划、编码、测试的持续循环)。
协作各自为政——开发人员将代码交给测试人员,再交给运维。协同——开发、QA 和运维从一开始就共同工作。
反馈循环缓慢——只能在最后才发现问题。快速——每次提交后立即获得反馈。
发布周期长(数月/数年)——“一次性”发布。短(每日、每周或每两周)——持续的微发布。
风险高——在最后修复缺陷成本高且会延迟上线。低——缺陷在小批量中被立即发现并修复。
关注点过程遵循和严格规划。交付速度和业务价值。

Source:

学习 DevOps 前的先决条件

DevOps 不是入门级的 IT 技能;它位于开发(Development)和运维(Operations)的交叉点。要想成功,需要在 DevOps 工具所依赖的技术上打下坚实的基础。

1. Linux 操作系统(基础)

  • 为什么? 大约 90 % 的 DevOps 基础设施运行在 Linux 上;几乎不使用图形界面(GUI)。
  • 需要学习的内容:
    • CLI 基础: cd, ls, pwd, cp, mv, rm
    • 权限管理: chmod, chown, sudo
    • 文本编辑: vim, nano
    • 软件包管理: apt‑get, yum, dnf

2. 网络基础(管道)

  • 了解应用程序如何在服务器之间通信(TCP/UDP、DNS、负载均衡、防火墙、VPN 等)。

3. 脚本编写与自动化(粘合剂)

  • 使用 Bash、Python 或 PowerShell 编写可复用的自动化脚本。

4. 版本控制(支柱)

  • Git 基础:分支、合并、变基、拉取请求(pull request)和标签(tag)。

当你对这四大支柱熟练掌握后,就可以开始深入学习 Docker、Kubernetes、Jenkins 等现代 DevOps 工具箱中的组件了。

1. 网络基础

如果你不了解网络,就无法排查部署失败的问题。

学习内容

  • IP 地址与端口 – 例如,为什么 Web 服务器运行在 80/443 端口。
  • DNS – 域名如何解析为 IP 地址。
  • HTTP/HTTPS – 常见状态码(200 OK,404 Not Found,500 Server Error)。
  • SSH – 如何安全地登录远程服务器。

2. 基础脚本编写(胶水)

你不需要成为全栈开发者,但必须了解如何编写脚本来自动化重复性任务。

学习内容

语言 / 格式为什么重要
Bash / Shell 脚本Linux 的原生语言。
YAML 与 JSON几乎所有 DevOps 工具(Kubernetes、Ansible、Docker Compose)使用的数据序列化格式。
Python(建议掌握)能实现更复杂的自动化逻辑。

3. SDLC 与 Git(流程)

DevOps 的核心是加速软件开发生命周期(SDLC)。

学习内容

  • Git – 了解 git clonegit commitgit push,以及如何解决合并冲突。
  • Agile – 掌握冲刺(sprints)和迭代开发。

4. 谁可以学习 DevOps?

DevOps 是一种方法论,而不是特定的学位。大多数 DevOps 工程师都是从其他角色转型而来。

当前角色转型难易度需要关注的重点
系统管理员(运维)您已经了解 Linux 和网络。重点关注自动化(Python/Bash)和云(AWS/Azure)。
软件开发人员(开发)您已经了解代码和 Git。重点关注 Linux、网络和基础设施管理。
质量保证 / 测试工程师您已经了解发布流程。重点关注自动化测试和 CI/CD 流水线(Jenkins/GitLab)。
应届毕业生(计算机/信息技术)您拥有理论知识。重点大量进行实操实验;大学课程很少涉及真实的 DevOps 工具。
非 IT 背景可以,但道路更长。先花 1‑2 个月专注学习 Linux 和网络。

5. DevOps + AI

DevOps 与 AI 的交叉形成了一个强大的双向关系。由于它涉及两个不同的概念,可能会让人感到困惑:

概念描述
AI for DevOps (AIOps)使用 AI 工具来改进 DevOps 工作流(例如,AI 检测 bug)。
DevOps for AI (MLOps)使用 DevOps 原则来管理 AI 开发(例如,对 AI 模型进行版本控制)。

5.1 AI for DevOps (AIOps)

将人工智能应用于 DevOps 流水线,使其更快、更智能且更自动化。

  • 智能代码审查 – AI 工具(Amazon CodeGuru、DeepCode)实时扫描代码,查找 bug、安全漏洞和逻辑错误。
  • 预测性监控 – AI 驱动的监控(Dynatrace、Datadog)分析历史数据,预测故障发生(例如,“内存使用率上升;服务器将在 2 小时后宕机”)。
  • 自动化事件响应 – 当出现错误时,AI 代理可以自动回滚部署或重启服务。
  • 自愈基础设施 – AI 能根据预测的流量自动扩容或缩容,而不是仅仅对当前负载作出反应。

5.2 DevOps for AI (MLOps)

构建 AI 模型是实验性且混乱的过程。MLOps 将 DevOps 的纪律(CI/CD、版本控制)应用于数据科学。

  • 数据版本控制 – 在 MLOps 中,你对 代码 + 数据 + 模型参数 进行版本管理。如果今天重新训练模型,你必须能够复现六个月前使用的确切数据集。
  • 持续训练 (CT) – 随着真实世界数据的变化,AI 模型会出现“漂移”。MLOps 流水线会在模型准确率下降时自动触发重新训练。
  • 模型注册表 – 正如你将编译好的二进制文件存放在制品库(如 Nexus)中,MLOps 将训练好的模型存入模型注册表,然后再部署到生产环境。

5.3 对比:DevOps vs. MLOps vs. AIOps

特性DevOpsMLOps(DevOps for AI)AIOps(AI for DevOps)
主要目标缩短 SDLC 并交付高质量软件可靠且可扩展的 AI 模型自动化 IT 运维
核心制品软件应用(binary/WAR/JAR)机器学习模型事件/警报报告
关键挑战零缺陷代码模型漂移(准确率下降)噪声削减(警报过多)
新阶段CI / CDCI / CD / CT(持续训练)Observe / Engage / Act
示例工具Jenkins、DockerKubeflow、MLflowSplunk ITSI、BigPanda

6. 实际案例

案例 1 – Netflix (AIOps)

  • 挑战: 成千上万的微服务在服务故障时会产生“风暴”般的警报,使根因分析变得困难。
  • AI 解决方案: Netflix 使用 AIOps 将警报关联为单一事件,定位出问题服务并降低平均修复时间(MTTR)。

案例 2 – Uber (MLOps)

  • 挑战: Uber 的 ETA(预计到达时间)预测依赖于数百个不断更新的模型。
  • DevOps 解决方案: Uber 构建了内部的 MLOps 平台 Michelangelo,让数据科学家只需一次点击即可部署模型——就像软件工程师部署代码一样——确保应用始终使用最准确的 ETA 模型。
Back to Blog

相关文章

阅读更多 »

Rapg:基于 TUI 的密钥管理器

我们都有这种经历。你加入一个新项目,首先听到的就是:“在 Slack 的置顶消息里查找 .env 文件”。或者你有多个 .env …

技术是赋能者,而非救世主

为什么思考的清晰度比你使用的工具更重要。Technology 常被视为一种魔法开关——只要打开,它就能让一切改善。新的 software,...

踏入 agentic coding

使用 Copilot Agent 的经验 我主要使用 GitHub Copilot 进行 inline edits 和 PR reviews,让我的大脑完成大部分思考。最近我决定 t...