生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

将 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:421751

评论

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

Qt|制作简单的不规则窗体

中国好公民st

qt 事件 9月月更

PipyJS - 函数式网络编程语言

Flomesh

Service Mesh 服务网格

数字化办公,企业OA软件技术该如何发力?

FinClip

架构师成长之路——什么是架构师

小小怪下士

Java 程序员 架构 后端

2.69分钟完成BERT训练!新发CANN 5.0加持

华为云开发者联盟

人工智能 企业号九月金秋榜

Java 面试之技术框架

小小怪下士

Java spring 编程 程序员

【存疑】爬虫学习中decode问题

Sher10ck

存疑

2022最新腾讯面经分享:Java 面试刷题 PDF(17 大专题 )

Java-fenn

Java 编程 程序员 面试 java面试

元宇宙场景技术实践|虚拟直播间搭建教程

ZEGO即构

音视频开发 元宇宙 虚拟直播

一个代码仓库(免费)与技术点 的故事

八点半的Bruce.D

GitHub Linux 网络服务 GitHub仓库

netty原理分析

小小怪下士

Java 编程 程序员 后端 Netty

Lua脚本在Redis事务中的应用实践

京东科技开发者

数据库 redis 事务 开发语言 Lua脚本

英特尔Wi-Fi 7速率提升5倍,为多应用场景带来改变

科技之家

ESP32-C3入门教程 基础篇(八、NVS — 非易失性存储库的使用)

矜辰所致

ESP32-C3 9月月更 NVS

这样Debug,排查问题效率大大提升...

程序知音

为什么Java中有三种基础的类加载器?

小小怪下士

Java 编程 程序员 程序

成为优秀程序员的8种方法

小小怪下士

Java 程序员 职业发展

35岁程序员自荐:我所掌握的架构技术

小小怪下士

Java 程序员 中年危机

EasyCV带你复现更好更快的自监督算法-FastConvMAE

阿里云大数据AI技术

深度学习 算法 计算机视觉

开发者问第四期|统一扫码服务、机器学习服务等问题解答

HMS Core

基于云原生技术打造全球融合通信网关

阿里云视频云

云原生 网络 通信 通信云

老生常谈!数据库如何存储时间?你真的知道吗?

小小怪下士

Java 数据库 编程 程序员

2022年面试复盘大全500道:Redis+ZK+Nginx+数据库+分布式+微服务

小小怪下士

数据库 redis 分布式 微服务 java面试

前端面试哪些是必须要掌握的

loveX001

JavaScript 前端

腾讯云,DevOps 领导者!

CODING DevOps

腾讯云 DevOps IDC CODING

云图说丨DDoS防护解决方案:DDoS大流量攻击防得住

华为云开发者联盟

云计算 后端 华为云 企业号九月金秋榜

打破联接壁垒,华为云IoT到底强在哪?

华为云开发者联盟

云计算 后端 物联网 华为云 企业号九月金秋榜

中国DevOps平台市场,华为云再次位居领导者位置

华为云开发者联盟

云计算 华为云 企业号九月金秋榜

设计模式和七大设计原则不难的

知识浅谈

设计模式 设计原则 9月月更

长安链ca 容器部署(解决无法访问Mysql问题)

长安链

爆肝整理5000字!HTAP的关键技术有哪些?| StoneDB学术分享会#3

StoneDB

数据库 HTAP StoneDB 企业号九月金秋榜 9月月更

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