跳到正文

持续改进与开发、运维的自动化

頻出约 34 分钟6 个术语过去问 6 题

本单元目标

  • 能够说明回顾(ふりかえり)要重新审视什么,并说出它与 Retrospective(回顾)(レトロスペクティブ)的关系
  • 能够按顺序说明在 CI 中,从变更被集成到结果反馈回来的流程
  • 能够根据持续运维的对象不同,区分 DevOps 和 MLOps
术语总表(6 个)
术语一句话主要对象
ふりかえり每次迭代后重新审视团队的工作方式,决定下次要尝试的改进的活动团队的工作方式
レトロスペクティブ回顾的英文名称。在 Scrum 中是冲刺最后举行的活动团队的工作方式
CI频繁集成变更,并在每次集成时自动执行构建和测试的实践源代码的集成与测试
継続的インテグレーションCI 的正式名称,指同一种实践源代码的集成与测试
DevOps开发与运维相互协作,借助自动化快速而稳定地不断交付变更的做法从开发到运维的软件
MLOps把 DevOps 的思路应用到机器学习系统的开发与运维中的做法包括数据和模型在内的机器学习系统

术语

回顾(ふりかえり)是指每完成一段时间的工作,团队就一起重新审视工作方式,并决定下一阶段要尝试的改进措施的活动。

  1. 完成一次迭代
  2. 提出做得好的地方和遇到的困难
  3. 决定下次要尝试的改进措施
  4. 在下一次迭代中实施改进措施

在下一次迭代中试行决定的改进措施,下次回顾时再审视其效果。

4 / 4

审视的对象是工作的安排、团队内部的配合等做事方式。常用的方法之一是 KPT,即从“要继续的事、存在的问题、下次要尝试的事”这三个角度提出意见。每次迭代都这样做,团队的工作方式就会一点点变好。

类比就像每做完一道菜,就把流程中顺利的地方和下次想改的地方记下来,下次做菜时照着笔记试一试。

记法写成汉字是 振り返り,意思是“回头看”。可以想象回头确认走过的路,再转回身决定下一步的动作。

考点

  • 易混回顾(ふりかえり)的目的不是找出犯错的人加以责备,而是在下一次迭代中改善整个团队的做法。

レトロスペクティブRetrospective(回顾)

在术语表中打开 レトロスペクティブ

Retrospective(回顾)(レトロスペクティブ)是回顾的英文名称。在 Scrum 中,它被规定为在冲刺(开发迭代的单位)最后举行的冲刺回顾(スプリントレトロスペクティブ)活动。

其内容与回顾相同,审视上一个冲刺中的人员、做法和工具的使用等,并决定下一个冲刺要着手的改进。在 Scrum 中,它安排在向相关人员展示完成的成果并听取意见的冲刺评审(スプリントレビュー)之后。

记法retro 意为“向后”,spective 意为“看”。retro 就是“复古风”的那个 retro,向后看 = 回顾。

考点

  • 易混冲刺评审(スプリントレビュー)是确认完成成果的场合,Retrospective(回顾)(レトロスペクティブ)是审视团队工作方式的场合,二者关注的对象不同。

CI 是指开发者把源代码的变更以较小的单位频繁地集成到共享代码仓库(团队共用的代码存放处)中,并在每次集成时自动执行构建(把源代码组装成可运行程序的工作)和测试的实践。

  1. 做出小的变更
  2. 集成到共享代码仓库
  3. 自动构建和测试
  4. 立即把结果反馈给开发者

一旦失败就会马上收到通知,原因也被锁定在刚才那个小变更上。

4 / 4

如果到开发后期才把所有人的变更一起集成,矛盾会一下子集中暴露,查找究竟是哪处变更导致问题也要花很大功夫。CI 缩短集成的间隔,每次都立即反馈自动测试的结果,因此发现缺陷时,原因的范围已经很小。

类比就像很多人合写一本文集时,每人每写完一页就马上装订进去从头读一遍,当场修正前后不一致的地方。

记法C = Continuous(不间断地持续),I = Integration(合而为一)。

考点

  • 易混CI 每次自动执行的范围,只到已集成变更的构建和测试为止。把通过测试的变更自动推进到随时可以发布到生产环境的状态,这种思路称为持续交付(継続的デリバリー,CD)。

継続的インテグレーション持续集成

在术语表中打开 継続的インテグレーション

持续集成(継続的インテグレーション)是 CI(Continuous Integration)的正式名称,指的是同一种实践。

“集成”(インテグレーション)就是“整合”的意思,指把各个开发者的变更合并成一个程序。“持续”表示在开发过程中把这种集成作为日常工作反复进行。

记法integrate 与 integer(没有残缺的整数)同源,意思是把零散的部件拼成一个完整无缺的整体。

考点

  • 易混持续集成(継続的インテグレーション)中的“持续”,表示集成不是在开发最后做一次,而是每有小变更就重复进行。

DevOps 是指负责开发(Development)的人员与负责运维(Operations)的人员相互协作,利用自动化机制快速而稳定地不断交付软件变更的做法。

  1. 开发(新功能、修复)
  2. 测试和上线部署自动化
  3. 运维(运行、监控)
  4. 把运维中获得的信息反馈给开发

把运维中发现的问题传达给开发,用于下一次改进,如此不断循环。

4 / 4

过去,想尽快推出新功能的开发方和不想让系统停机的运维方各自为政,每次交接往往都很费时间。DevOps 让双方共享目标,并引入 CI 等自动化手段,使团队能以较短的间隔应对规格变更。它不是某种特定工具的名称,而是一种包含组织协作体制和机制建设的理念。

类比就像一家餐厅,做菜的后厨和上菜的前厅作为同一个团队共享顾客的反馈,快速反复改良菜单。

记法这是把 Dev 和 Ops 连在一起的合成词,名称本身就表示两种职责的结合。

考点

  • 常考DevOps 是开发人员与运维人员相互协作,利用自动化机制把功能的新增和变更快速交付给用户的做法。
  • 常考DevOps 的自动化不仅限于开发方的工作,还延伸到部署到生产环境等运维方的工作。
  • 易混敏捷(アジャイル)是以短周期迭代、一点点构建的开发方式,DevOps 则是让开发与运维协作、加快交付流程的体制建设,二者经常结合使用。

该术语的过去问 2 题 DevOps

「CI」与「DevOps」的区别

比较点CIDevOps
关键范围开发过程中变更的集成与测试从开发到上线部署、运维的全过程
主要承担者开发者开发人员和运维人员
性质具体的开发实践包含协作体制和机制建设的理念

MLOps 是把 DevOps 的思路应用到使用机器学习(Machine Learning)的系统上,持续推动模型(从数据中学习并进行预测或判断的机制)从开发到运维、更新整个循环的做法。

  1. 收集训练用数据
  2. 训练和评估模型
  3. 部署到生产系统中
  4. 监控精度并重新训练

运行期间如果预测精度下降,就用新数据重新训练并替换模型。

4 / 4

MLOps 把数据准备、训练、评估、部署和监控连成一条连贯的流程,能自动化的部分都实现自动化。由数据分析人员、开发人员和运维人员协作推进这一点,也与 DevOps 相同。

类比就像天气预报员每天核对预报准不准,一旦不准的情况变多,就用新的观测数据重新制定预报方法。

记法名称就是把 DevOps 中的 Dev 换成了 ML(Machine Learning)。

考点

  • 易混MLOps 的运维并不是把模型部署到生产环境就结束了。所处理数据的趋势一旦变化,精度就会下降,因此要反复进行监控和重新训练。

「DevOps」与「MLOps」的区别

比较点DevOpsMLOps
对象软件整体使用机器学习的系统
关键管理的内容主要是程序(源代码)除程序外,还有训练数据和模型
运维中触发更新的原因新增功能或修复缺陷除此之外,还有数据变化导致的精度下降

要点

  • 回顾(ふりかえり,英文名称 Retrospective(回顾))是每次迭代后重新审视团队的工作方式、决定下次要尝试的改进的活动。
  • CI(持续集成,継続的インテグレーション)频繁地集成小的变更,并在每次集成时自动执行构建和测试。
  • DevOps 是开发与运维相互协作,借助自动化快速而稳定地不断交付变更的做法。
  • MLOps 是把 DevOps 的思路应用到使用机器学习的系统上的做法。

确认题

从本单元的过去问中选 4 题

开始做确认题

查看这个领域的全部过去问