了解"DevOps"

来源:互联网 发布:天猫关键词优化 编辑:程序博客网 时间:2024/06/05 12:45

一.来自百科的解释

DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

可以把DevOps看作是开发(软件工程)、技术运营和质量保障(QA)三者的交集。

DevOps经常被描述为“开发团队与运营团队之间更具协作性、更高效的关系”。由于团队间协作关系的改善,整个组织的效率因此得到提升,伴随频繁变化而来的生产环境的风险也能得到降低。

二.摘自DevOps正在扼杀程序员?

DevOps强调开发人员、运维人员以及QA之间的合作与沟通,而这种开发模式也催生了一些新角色的出现:“全栈工程师”,本文作者认为,“全栈”工程师的流行也就意味着真正的程序员正在被扼杀,真的是这样吗?

开发者职责的不断扩大也催生了一些新角色的出现,“全栈”工程师。什么意思呢?一个开发者除了会编写代码外,还可以充当QA团队成员、业务分析师、系统管理员和DBA。

专业化是有原因的:人类所吸取的知识是有限的,在任务之间来回切换的代价是昂贵的。强迫开发者身兼多职意味着:

  • 没有时间用于开发
  • 需要不断地充电,好让自己能够跟上庞大的知识领域
  • 会崩溃

三.摘自什么是(不是)DevOps,我们如何实现DevOps?

Kavis的定义是:DevOps是一种文化转变,或者说是一个鼓励更好地交流和协作(即团队合作)以便于更快地构建可靠性更高、质量更好的软件的运动。

DevOps是软件开发生命周期(SDLC)从瀑布式到敏捷再到精益的发展。DevOps超越了敏捷,它的关注点是从SDLC中移除浪费。通常情况下,发现浪费或者瓶颈的形式包括:不一致的环境,人工的构建和部署流程,差的质量和测试实践,IT部门之间缺少沟通和理解,频繁的中断和失败的协定以及那些需要珍贵的资源、花费重要的时间和金钱才能保持系统运行的全套问题。

我看到的另一个重复模式是:一个“DevOps”团队的第一步通常是决定他们是否应该使用Chef或者Puppet(或者是Salt、Ansible等其他任何热门的东西)。他们甚至还没有定义自己打算解决的问题,即使他们手头的工具可以解决它们。这些团队通常会紧张地构建数千行脚本,但是这就产生了一个问题:“我们的职责是编写Chef脚本还是通过质量更好、更稳定的产品更快地进入市场?”。在大多数情况下,这些团队会将自己逼入绝境,大量的专有脚本实际上是增加了系统的浪费,而隐藏在DevOps运动之后的驱动力是从系统中移除浪费,这些团队并没有做到这一点。

0 0
原创粉丝点击