3a337f9ce5076da22673963ef920b398
DevOps 是一种怎样的体验?

一、软件开发演变史

软件行业中,每一个概念的提出都是为了解决某个特定的问题。要了解 DevOps ,就要讲下软件开发的演变史。

传统瀑布模型

需求分析,软件设计,程序编写,软件测试,运行维护。

瀑布模型被淘汰的原因

  • 各个阶段的划分完全是固定的,阶段之间产生大量的文档,极大地增加工作量
  • 由于开发是线性的,所以用户只有在开发的末期才可以到成果,所以增加了风险。
  • 早起的错误等到最后测试再发现这样会带来严重的后果。

敏捷开发模型

缓慢而繁琐的瀑布模型演变成敏捷,开发团队在短时间内完成软件开发,持续时间甚至不超过两周。如此短的发布周期帮助开发团队处理客户反馈,并将其与 bug 修复一起合并到下一个版本中。

虽然这种敏捷的 SCRUM 方法为开发带来了敏捷性,但它在运维方面却失去了敏捷实践的速度。开发人员和运维工程师之间缺乏协作仍然会减慢开发过程和发布

DevOps 就是为了更好地协作和更快地交付而产生的。下面让我们来详细看看 DevOps 是什么。

  • 注:这里需要强调的是 DevOps 中的 Dev 不但包括 开发者(developers)而且包括测试人员(testers)

二、DevOps

DevOps 是一种软件开发方法,专注于 IT 专业人员之间的通信,集成和协作,以实现产品的快速部署
DevOps 是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠

从概念中不难提炼出:

  • DevOps 解决的是 Dev 和 Ops 的沟通问题
  • DevOps 的目的是快速部署
  • DevOps 有利于快捷、频繁和可靠地发布软件
  • DevOps 强调自动化

Dev 和 Ops 有什么沟通问题?

Ops 看重的是保障系统的稳定性、可靠性和安全性,而 Dev 则想着如何尽快发布新的版本,增加新的功能,这两者本身就是一种矛盾和冲突,尽管他们的共同目标都是为 用户提供软件产品或服务

为什么 DevOps 强调自动化?

  • 提高效率:Dev 和 Ops 的手动工作,如果可以实现自动化,将显著提升效率水平。
  • 减少错误:即使再谨慎的人也难免会犯错误,尤其是面对重复性工作时。通过自动化工具来完成这样的工作,能将错误率大大降低。
  • 最大化员工使用:通过自动化,Dev 和 Ops 可以将精力集中在更复杂、更有战略意义的事情上。同事也避免了雇佣许多员工来应对工作量增加的需求。
  • 提高团队的信心:通过自动化,解放了手动的重复性工作。能让员工体现出更大的价值,也让产品更快捷、频繁和可靠地到达用户手上,提高了团队对产品的信心。
top Created with Sketch.