【DevOps】为什么我们永远疲于奔命?
作者:范军 (Frank Fan) 新浪微博:@frankfan7 微信:frankfan7
在【DevOps】谁说大象不能跳舞?一文之后,本文对DevOps的理念作进一步探讨。
最近在读一本书《Project Phoenix》,用小说的方式来描述了作为IT部门总裁的主人公临危受命,
面对IT开发和运维中出现的种种危机,在险峻的情况下采用新的管理理念,从而带领IT团队从低谷走向成功的故事。书中的一些场景,我是再熟悉不过了。有时候也不禁想,如果自己身在其中,会如何应对呢?
这本书也引用了很多DevOPs的理念,故事一波三折,其中的道理很耐人寻味。
话说该公司的IT部门是最备受责难的一个部门。很多商业计划因为IT不给力而拖延,IT环境极其不稳定,大小问题接连不断。IT每天忙于救火而疲于奔命。人员士气低落,各部门各自为战。出了事互相指责。
主人公在一位高人的指点下,开始了卓有成效的改革之旅。其中很重要的一个课题就是,到底根本问题出在哪里呢?为什么永远都觉得在疲于奔命?
他们从把工作分类开始,一步步得找到了症结所在。大体分四类工作:
Business Projects
比如其他部门的要上一个商业应用或者新的商业流程,需要IT提供软硬件环境,实施设计开发并运维。这类项目是有其他部门为实现某种商业目的来驱动的。
Internal Projects
往往指由IT内部驱动的项目,软件更新换代、扩容、安全措施、提高IT环境的稳定性、性能等等。
Change
ProductionEnvironment的有计划的升级,改动等等
Unplanned Work
一些突发情况,比如系统或应用的中断等等

上面的图揭示了一个恶性循环。
第一象限:因为商业计划往往时间紧、任务急,IT手忙脚乱把活干了,为了节省时间人力走了很多捷径,造成了系统稳定性的降低。为日后埋下了隐患。
第二象限:因为忙着赶第一象限的活儿,本来应该做的InternalProject就被拖延了。软件补丁和升级不及时,系统没有很好的优化和长期的计划,直接造成的系统稳定性、性能等的降低。
第三象限:因为没有很有效的ChangeControl,部门之间对改动互不知晓,还由于系统不稳定造成很多计划中的Change失败。从而累积了越来越多的问题
第四象限:由于前三个象限中问题产生的雪球效应,很多意外情况就不可避免的发生了。解决这些意外情况的成本是非常高的,因为打乱了本来的计划,造成了其他三个象限工作的拖延。从而又产生了新的一轮的恶性循环。
问题的症结找到了,那么如何入手解决呢。主人公Bill一连下了几记重拳:
建立高效的ChangeControl流程
这个流程开始的时候很不容易,因为人们习惯了各行其是,觉得Change Control太繁琐复杂。但这个流程是必须的,它可以评估改动的风险,防止出现意外情况。
暂时冻结Business Projects
短期的冻结,给了IT人员调整优化系统的喘息之机,从而能实施一些Internal Project来稳定IT环境。同时为新的BusinessProjects做好准备。
定位瓶颈
该书中描述了一位技术大拿Brent,总是在关键时候力挽狂澜。在很多情况下,少了Brent事情就干不成。主人公Bill意识到了如果不解决这个瓶颈,整个IT团队的生产力都要受到个人的影响。于是采取了一系列的措施解决这个问题。比如:最佳合理利用Brent的时间,避免很多琐事的干扰;培养一个梯队来承担Brent的任务,做好知识和经验的传承。
几套组合拳下来,很明显的减少了Unplanned Work,从而遏制住了恶性循环,为下一步的流程优化打下了基础。更重要的是增加了团队间的凝聚力和信心。
除此之外,书中反复强调了一个有重大意义的理念,就是以流水线的方式来开发和管理IT环境。我们会在下文中详细介绍。
【DevOps】为什么我们永远疲于奔命?的更多相关文章
- 小程序—银行、券商们下一代APP的进阶方向
传统金融机构们的App——尤其以手机银行.手机证券为最,发展到今天,已经产生一系列的问题:从用户角度看,体验普遍不好.高度同质化:从业务运营角度看,几乎没有什么“运营”的抓手:从IT角度看,投入产出比 ...
- (视频)《快速创建网站》 4.1 为啥造软件不同于造汽车,为啥是软件就一定会有Bug - 构建开发运维一体化(DevOps)
本文是<快速创建网站>系列的第9篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- DevOps的修炼之路!
作为一名产品经理,首先要知道产品对于所属公司来说意味着什么,要探寻这个问题,我们又得知道和公司息息相关的是什么,在我的理解来看,与公司状况相关的因素有以下这些: 市场份额 平均订单金额 盈利能力 资产 ...
- 解谜谷歌 DevOps:什么特质可以打造世界级可靠系统?
[编者按]本文是 Gene Kim 总结自对 Randy Shoup 两个小时的采访,主要关注谷歌 DevOps 的提升之道.本文系 OneAPM联合高效运维编译整理. Randy Shoup 曾协助 ...
- 如何与 DevOps 为伍?
DevOps 是一个席卷 IT 界的新术语.但它究竟是什么,南非的公司们如何利用它来加快高品质应用程序的开发速度?国外知名博客作者凯西·吉布森找到了一些答案. 其实 DevOps 这个词已经火了一段时 ...
- 全球顶级专家为你解读:什么是真正的 DevOps?
[编者按]本文是 Skytap 内容主编 Noel Wurst 对 DevOps Enterprise Summit (DOES)的不完全综述,内容包括了 Noel 和一些与会嘉宾的思考,旨在勾画 D ...
- 基于TFS的.net技术路线的云平台DevOps实践
DevOps是近几年非常流行的系统研发管理模式,很多公司都或多或少在践行DevOps.那么,今天就说说特来电云平台在DevOps方面的实践吧. 说DevOps,不得不说DevOps的具体含义.那么,D ...
- 一分钟告诉你究竟DevOps是什么鬼?
历史回顾 为了能够更好的理解什么是DevOps,我们很有必要对当时还只有程序员(此前还没有派生出开发者,前台工程师,后台工程师之类)这个称号存在的历史进行一下回顾. 如编程之道中所言: 老一辈的程序员 ...
- 什么是DevOps
历史回顾 为了能够更好的理解什么是DevOps,我们很有必要对当时还只有程序员(此前还没有派生出开发者,前台工程师,后台工程师之类)这个称号存在的历史进行一下回顾. 如编程之道中所言: 老一辈的程序员 ...
随机推荐
- 4、Redis中对List类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...
- mongoDB系列之(三):mongoDB 分片
1. monogDB的分片(Sharding) 分片是mongoDB针对TB级别以上的数据量,采用的一种数据存储方式. mongoDB采用将集合进行拆分,然后将拆分的数据均摊到几个mongoDB实例上 ...
- Vue基础知识简介
基础知识: vue的生命周期: beforeCreate/created.beforeMount/mounted.beforeUpdate/updated.beforeDestory/destorye ...
- 从零开始搭建linux下laravel 5.5所需环境(一)
首先你需要有一台linux服务器,或者虚拟机,这里就不赘述了,不会的可以自行百度. 我这里准备的是一台腾讯云服务器,系统为CentOS 7.4 64位. 你可以使用腾讯云的登录按钮登录到服务器,也可以 ...
- Polly简介 — 2. 弹性策略
和故障处理策略不同的是,弹性策略并不是针对委托执行过程中的异常进行处理,而是改变委托本身的行为,因此弹性策略并没有故障定义这一过程,它的处理流程为: 定义策略 应用策略 Polly对弹性策略也做了不少 ...
- Android 菜单键和返回键互换
打开RE管理器找到system/usr/keylayout/ 长按qwerty.kl选择以文本编辑器查看 将里面的MENU和BACK全部替换掉 保存,退出管理器,重启手机,菜单键和返回键的位置就调换过 ...
- 22LINQ查询运算符返回IEnumerable<T>实例汇总
本篇体验LINQ的各种查询运算符. 先创建一个泛型方法,用来显示查询结果: private static void DisplayQuery<T>(IEnumerable<T&g ...
- java常见包
常见的软件包: java.lang : language java的核心包,Object System String Throwable jdk1.2版本后,该包中的类自动被导入. java.awt ...
- Struts2 S标签 数目字格式化成金额输出(保留两位小数)
JSP: <s:property value="%{formatDouble(price)}" /> Action:添加 //格式化数字显示 public String ...
- 《C++反汇编与逆向分析技术揭秘》之12——继承
识别类和类之间的关系 在父类中声明为私有的成员,虽然子类对象无法直接访问,但是在子类对象的内存结构中,父类私有的成员数据依然存在. 在没有提供构造函数的时候,系统会尝试提供默认的构造函数: 当子类中没 ...