QCon北京|3天沉浸式学习,跳出信息茧房。 了解详情
写点什么

将 DevOps 纳入企业环境引发的思考

  • 2015-09-30
  • 本文字数:2216 字

    阅读完需:约 7 分钟

虽然 DevOps 可以算是相对新鲜的概念,不过在我看来、其本质思路很早之前就已经出现。从这个角度看,目前很多企业已经广泛接纳这一概念并将其作为文化性产物看待,具体而言就是将大量原本孤立的团队融合起来,从而实现速度更快、频率更高且更为可靠的工作成果。

我个人非常幸运地早在 DevOps 文化进入主流视野之前就在自己的职业生涯当中对其有所了解。2001 年,当时我在彭博公司担任开发人员,那时候彭博方面就已经凭借着其对于快速上市、压缩迭代开发周期以及由开发人员自行负责所交付系统的运营工作而享有盛誉。作为其中的一员,我这位开发新手很快就体会到了凌晨四点对系统进行故障排查的感受(那个时段伦敦证券交易所才刚刚开放)。我发现这些熬夜工作的经历反过来成为一种动力,敦促自己尽可能提升系统稳定性,从而避免这类夜不能寐的状况再次发生。

DevOps 文化对于规模较小的初创企业而言往往比较直观,而且这类受众也会将结构调整作为相对简单的任务来看待。不过对于规模更大的组织机构,其中包含的大量技术债务、整体架构惯性乃至尽可能避免风险的固有业务实践思路则让 DevOps 所宣扬的颠覆性看起来有些难以接受。

不过好消息是上述顾虑不一定真有必要,而且在未来几周内我会就 DevOps 在企业环境中的实现这一议题从多个特定角度及其发展战略着手加以探讨。我个人倾向于鼓励企业在 DevOps 的风潮当中向这一新型文化形式进行逐步转移——先从小型项目、迭代、学习以及改进起步。我建议大家考虑首先采取一些组织内部普遍能够接受的战略性实践尝试,并以此为切入点推广相关思维,从而最终让大多数团队能够在处理日常工作时对这类高自动化程度且以连续性运营为基础的文化趋势抱以信任的态度。

当初在担任道琼斯公司 CIO 时,我们针对一支小型团队建立起了自己的一套 DevOps 实践方案——该团队只有四到五名成员,但这已经足以推进实际项目了。不过我们的目标并非创建一个新的团队,而是要借此对企业的整体文化带来影响。通过实现及发明各类框架、最佳实践以及治理手段,并以自动化方式处理种种日常工作,DevOps 最终成为我们驱动创新与加快产品开发的有力杠杆。我们从小规模项目入手,并将成果作为示例向其他同事证明我们能够利用同样的模式在更多项目当中取得成功。整个过程进展不快但却步伐坚定,其间我们不断推出新型功能并改进流程当中的产品上市时间。随着时间推移,原本常常因出现大量错误而令开发团队叫苦不迭的周二及周四版本发布日最终呈现出更具分散性的趋势——开发人员每周都会连续不断地推出数十项发布成果。

对于那些希望在 DevOps 领域作出尝试、但又对原有技术债务抱有疑虑的朋友,我建议大家将以下三项基本原则作为指导思想:

1.将面向客户的服务思路贯彻到企业的每个角落。如今的企业应当将内部利益相关者作为客户来看待。这类客户可以是企业中的任何成员,包括市场推广人员、产品经理或者是开发人员。每位员工或者职能部门都需要对应的技术方案来完成自己的日常工作。而将这类需求作为优先事务处理的团队则能够满足客户的需求,从而避免其另外寻求解决方案(甚至是不合法的解决方案,例如影子 IT),并最终带来理想的成果(例如速度更快、效果更好、成本更低)以及令人满意的客户反馈。相比之下,缺乏优质的服务则可能导致客户希望避开我们,而非与我们开展协作。

2. 尽可能推广自动化机制。根据目前的主流理解,提升自动化水平的真正含义就是最大程度发挥云技术的固有优势,这意味着大家需要利用代码以可靠性为前提对系统进行重构。这一点在规模自动伸缩方面(也就是弹性)表现得尤为明显。自动化机制还能够帮助企业以更为积极的方式推进变更:如果我们犯了错误,则可以快速回滚至之前的状态,并重新开始系统构建。推广自动化机制的其它优势还包括更理想的执行效率、安全性以及可审计性。

3.谁构建,谁运行。根据我的实际观察,这一点是最令传统 IT 部门感到不安的因素。在传统 IT 模式当中,应用程序或者服务的运维工作往往是由那些与资产创建毫不相干的人员来负责的。虽然这种处理方式并非毫无道理(例如选择成本更低的外包服务或者尽可能提高专业集中程度等),但我个人的观点是,这些优势目前已然不复存在了。云技术的出现如今已经接管了与 IT 运维工作相关的大部分高强度任务,而且其中多数运维工作也能够通过软件以自动化方式实现。开发人员显然对软件更为熟悉,这意味着如今已经没有理由将运维职责同任意给定任务进行硬性划分——而这也正是 DevOps 文化的根基所在。而且在自动化机制的帮助下,我们能够更加有条不紊地处理变更情况,并在问题影响到客户之前对其加以解决或者实现系统回滚。我建议大家建立起专门的 DevOps 团队,从而尽可能保证开发团队独立存在,而非将后者作为持续性运维 / 发布流程中的关键性环节。

对于有意愿在 DevOps 方面进行试水的朋友,我的观点是当下正是最理想的入手时机。先从小处出发,并通过增量化改进提升其它团队的满意度并赢得支持。文化层面的转变绝非一朝一夕之功,而我们也应当利用新型与传统等不同类型的方式实现此类改进。随着经验的持续积累,大家将一步步学习到足以指导下一步尝试的知识,同时运用日趋完善的自动化机制实现更为理想的工作成果。


感谢刘羽飞对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-09-30 10:421947

评论

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

腾讯面试题: 百度搜索为什么那么快?

小松漫步

面试

报志愿|想学区块链,要上什么大学?报什么专业?

CECBC

高考 报考志愿 区块链专业 高校学院

IO系列——用户空间与内核空间

Java联盟

io 零拷贝 用户空间 内核空间 zero copy

架构师训练营第八周笔记

Melo

关于中台,可能都是正确的废话

FinClip

中台 业务中台

除了技术,加密货币开发者更应关注可使用性

CECBC

加密货币 用户为本 可使用性 容错机制

如何识别刷屏文章中的伪科学

Lee Chen

大前端 随笔杂谈

主宰操作系统的经典算法

苹果看辽宁体育

后端 操作系统

第7周作业

文古

CDN百科第七期 | 关于CDN的原理、术语和应用场景那些事

阿里云Edge Plus

CDN

英特尔中国研究院宋继强:芯片、系统、软件成为异构计算的三层级

最新动态

最高法主张加强数字货币产权保护有法可依

CECBC

数字货币 法偿货币 中国人民银行 虚拟财产

OAM 深入解读:如何基于 OAM Runtime 编写一个扩展 Trait?

钱王骞

云原生 k8s OAM

LeetCode题解:1. 两数之和,JavaScript,双循环暴力解法,详细注释

Lee Chen

大前端 LeetCode

脑洞:基于Enterprise Continuum证明DDD用于构建汽车的可行性

冯文辉

企业架构 领域驱动设计 DDD 架构演进

四十个鹏城春夏,一场数字繁花

脑极体

高能预警!Apache Flink Meetup · 上海站返场啦

Apache Flink

flink

Vue 学习笔记-2

多选参数

vue.js Vue vuejs

【区块链+通证经济】从量变到质变区块链发展的下一阶段是什么?

CECBC

数字货币 防篡改 通证

JVM系列之:对象的锁状态和同步

程序那些事

JVM GC 同步

阿里巴巴大规模应用 Flink 的实战经验:常见问题诊断思路

Apache Flink

flink

胡继晔:发挥我国优势把依法治网落实到区块链管理中

CECBC

CECBC 胡继晔 依法治网 数字货币监管

Flink Weekly | 每周社区动态更新

Apache Flink

flink

性能优化

独孤魂

2. 妈呀,Jackson原来是这样写JSON的

YourBatman

Java json Jackson Fastjson

敏捷软件开发宣言及十二原则

BigYoung

敏捷开发

推荐 16 款 IDEA 插件,让你的开发速度飞起来!

Bruce Duan

idea插件

架构师训练营第八周学习总结

张明森

Demo 示例:如何原生的在 K8s 上运行 Flink?

Apache Flink

flink

LeetCode001-两数之和-easy

书旅

算法 LeetCode 数据结构与算法

Vue 学习笔记-3

多选参数

vue.js Vue vuejs

将DevOps纳入企业环境引发的思考_亚马逊云科技_Stephen Orban_InfoQ精选文章