写点什么

理解 DevOps 和它所涉及的开发、运维和业务

  • 2013-10-12
  • 本文字数:2150 字

    阅读完需:约 7 分钟

Dan Zentgraf 是 Ascendant Technology 公司的一名领域架构师。他的工作是帮助顾客采用 DevOps 和敏捷实践。作为一位咨询师和产品经理,他在软件领域拥有 12 年从业经验。他结合自己的实际项目经验和对 DevOps 的深入分析,分享了自己的DevOps 的理解,以及研发、运维和业务三者之间的关系。

Dan 首先分析了 DevOps 的诞生背景:

敏捷开发的一般原则是开发团队应该一直以可持续的速度不断地交付软件。与此同时,基于相关的虚拟化和云计算,许多新的操作工具和基础设施已经可以为我们所用。虽然很多研发团队已经主动采取了敏捷开发的方法,但是他们开发的软件常常不能被用户接受,因为他们的程序充满了缺陷、易出错的手工任务或者和运维相关的延迟。同时,竞争日益激烈的市场环境给业务主管带来了巨大的压力,因此他们要求在更短的周期里把新软件和特性交到客户手里。敏捷开发、新运维技术和市场需求导向这三个因素正在使人们重新思考应该如何看待软件开发。这三种趋势的共性是变化的速度增加了。那种把用户所需要的软件功能搁置几个月再去开发的做法已经无法被接受了。软件只有使用的时候才有价值,快速的得到那种价值在今天的市场上显得尤为重要。这种转变使人们质疑团队开发软件的种种假设,而质疑的结果就是 DevOps 的问世。

为了总体上理解软件交付,尤其是用 DevOps 进行软件部署,Dan 认为理解以下两点很重要:

  • 首先,对 DevOps 以及各种利益相关者对它感兴趣的原因有一个清晰和正确的理解是十分必要的;
  • 其次,当我们尝试应用 DevOps 时,理解软件部署的假设是如何变化很重要。

当这些理解了这些之后,才有可能了解支持 DevOps 的可执行部署的框架。

Dan 指出,DevOps 这个术语,由英文单词 development 和 IT operations 组合生成,一般指的是一种利用所有各种规则统一软件系统的相关工作的方法,,从而以业务部门要求的速度将更改交付给系统。它通常与进行快速而小的改变的敏捷开发结合起来,目的是注意力集中于高价值的工作,最小化由大的变化所产生的缺陷风险,减小由于工程完工后软件特性与商业要求的严重背离而带来的软件价值偏移。另一方面,运维的观点是指将变化视作不稳定性的成因。不稳定性必然会导致宕机,这是运维当中最严重的负面事件。因此,运维团队常常抵制变化。然而,DevOps 常常被视为一种改变,因为在绝大多数的开发团队中,开发、运维和市场三者之间有着一系列的的冲突行为和回报,从而导致无数的不当行为。市场给进行新特性开发和追求变化的开发团队以回报,但是却因为宕机而处罚运维团队。因此,开发团队迫切要求运维人员进行更多的部署;运维团队则要求开发人员的交付模块包含更多结构和更高的精确度。这些矛盾在很多开发团队中已经根深蒂固,并且因为各自团队成熟度的固有不同而更加严重。DevOps 力图消除这些障碍,为这些竞争团队搭建一个共同合作的平台,从而把他们集中到同一个目标上。为了实现这个目的,理解每一个团队的心态非常的重要。

接着,Dan 从开发、运维和业务三个方面阐述了自己的理解。

开发

开发通常被认为更加的接近市场需求。《敏捷宣言》已经问世十多年了。从某种程度上说,该宣言是早期极限编程、结对编程和实践的结果。公平地说,这个难题的软件部分被视为是很容易实现的目标(它很容易改变,但理论上独立于基础设施和平台之上)。基础设施习惯上被认为是一种很难被改变的昂贵资本支出,并且有很长的摊销周期。不幸的是,复杂的软件需要很多的基础设施,并且要求基础设施和软件本身同步发展。这种联系就是为什么早期 DevOps 有时被称作“敏捷运维”。无论人们怎么称呼它,如果科技与市场需求保持同步的话,坚持软件和基础设施分开的想法是不可持续的。这迫使研发团队接受维持复杂基础设施生产的现实。

运维

幸运地是,一些新的科学技术已经成为运维领域的最前沿,从而帮助运维更加的符合市场需求。运维领域最主要的颠覆性技术是便宜的硬件商品虚拟化的广泛普及。这产生了新的系统管理方法,当然还有云计算。这种科技由于能让开发团队快速而容易地整合他们未被充分使用的计算资源从而直接产生价值,因而快速流行起来。美国 Gartner 咨询公司估计现在 50% 的应用在虚拟环境中运行。然而,简单的整合只是一种有限地回收价值、缩减开支的的办法。虚拟化技术也使基础设施具有了一定的可变性,让运维团队在不影响稳定性的前提下以以前不可能达到的速度改进基础设施。虚拟化利用技术常常在与云计算有关的项目中出现。这些新兴的技术给了运维团队一条同研发团队一样敏捷并且能切合市场需求的途径。

业务

对业务主管们来说,他们已经明白了理解和利用技术来实现目标相比以往更加的关键。根据 IBM2012 年的 CEO 调查(这个调查建立在对 64 个国家 1700 个首席执行官进行访谈的基础上),技术因素是影响开发团队排名第一位的因素。2004 年技术因素只在九个因素中排名第六,此后,这个排名稳步地上升。因此业务主管注意到响应顾客需求的能力是一种竞争优势。由此可以推断,糟糕的技术执行力是对业务的一种内在威胁。这种威胁不会一夜之间就成为现实,但是它已经一触即发。同样的调查还讨论了调查对象如何权衡理解客户的需求和用更短的交付时间来满足他们的需求。最后,这是一种和过程现实相冲突的业务压力。这种过程现实就是研发和运维的技术规程过去是如何运作以及激发将商业做的更好的讨论。

2013-10-12 05:183074
用户头像

发布了 501 篇内容, 共 277.9 次阅读, 收获喜欢 63 次。

关注

评论

发布
暂无评论
发现更多内容

依图在实时音视频中语音处理的挑战丨RTC Dev Meetup

声网

音视频 RTC Dev Meetup 语音处理

Android 自定义View之展开收起的Layout

yechaoa

android 自定义view 6月月更

flutter系列之:深入理解布局的基础constraints

程序那些事

flutter 程序那些事 6月月更

GCC 为龙芯 CPU的预定义宏

mazhen

c++ RocksDB GCC 龙芯

力扣每日一练之二维数组下篇Day5

京与旧铺

6月月更

配置swagger

卢卡多多

swagger 6月月更

LabVIEW Arduino ZigBee无线气象站(项目篇—3)

不脱发的程序猿

物联网 LabVIEW Arduino ZigBee无线气象站 无线传感器

如何设计BI平台

奔向架构师

数据仓库 商业智能 6月月更

从市场需求目标看数据分析演进方向

华为云开发者联盟

人工智能 华为云

挑战最全 Apache Doris 学习资料,你想要的都在这里了!

SelectDB

数据库 Doris apache doris 技术干货

「 2022 精益软件工程大会」圆满闭幕,观测云奉献精彩主题演讲

观测云

python程序设计思想

左手の明天

Python 面向对象

5分钟了解红队如何搜索网络情报

穿过生命散发芬芳

6月月更 攻防演练

关于微服务通信的一些Tips

阿泽🧸

微服务 6月月更

python逆序输出和进制转化(小白也能看懂)

写代码两年半

Python 6月月更

Java—JVM

武师叔

6月月更

leetcode 413. Arithmetic Slices 等差数列划分

okokabcd

LeetCode 算法与数据结构

LabVIEW Arduino无线蓝牙遥控智能车(项目篇—2)

不脱发的程序猿

LabVIEW Arduino VISA 无线遥控智能小车 无线蓝牙遥控智能车

如何往 Kafka 发送大消息?

Se7en

2022-06微软漏洞通告

火绒安全

微软 漏洞 安全漏洞

GetxController 生命周期详解

岛上码农

flutter ios 前端 安卓 6月月更

倒计时1天,龙蜥社区走进Intel MeetUp 即将开播!直播大奖等你来拿

OpenAnolis小助手

开源 intel Meetup 龙蜥社区 线上直播

Docker 实用技巧二

Nick

Docker 容器 实用技巧 6月月更 实操

考试试卷存储方案

极客土豆

【愚公系列】2022年06月 通用职责分配原则(五)-控制器原则

愚公搬代码

6月月更

一文带你认识CSS

未见花闻

6月月更

数据库每日一题---第15天:未消费的顾客

知心宝贝

数据库 程序员 前端 后端 6月月更

跟着官方文档学 Python 之:3.12 新变化

甜甜的白桃

Python python3.x 6月月更

百度团队CSS编码规范

sean77

在 Pisa-Proxy 中,如何利用 Rust 实现 MySQL 代理

SphereEx

MySQL 数据库 rust

InfoQ 极客传媒 15 周年庆征文|海王的鱼塘是怎样炼成的

知心宝贝

人工智能 大数据 运维 前端 InfoQ极客传媒15周年庆

理解DevOps和它所涉及的开发、运维和业务_DevOps & 平台工程_崔康_InfoQ精选文章