• 保存到桌面加入收藏设为首页
IDC话题

解析开发与运维冲突的那些事

时间:2016-03-07 16:39:10   作者:tanym   来源:IDCsped   阅读:5533   评论:0
内容摘要:无论是硬件的维护还是网站的维护,人为变更是引入故障的主要原因。在没有找到有效的手段之前,特别是手工时代,运维一定是抗拒变更的,你同意么?但现实不是运维所设想的那样,特别是对于一些持续迭代的2C产品来说,”变化是唯一不变的规律“,那就意味着变更是常态。
一、冲突的根源
  开发团队的目标:满足产品的功能需求,把用户的需求实现,发布到现网,交付到用户手里。
  从之前的敏捷过程来看,其实开发/测试甚至是QA团队的目标是一致的。
  运维团队的目标:质量永远是第一位。这导致一个有意思的现象:
  变更是主要的故障之源,你同意么?
  之前在一篇论文中给出数据,无论是硬件的维护还是网站的维护,人为变更是引入故障的主要原因。在没有找到有效的手段之前,特别是手工时代,运维一定是抗拒变更的,你同意么?
但现实不是运维所设想的那样,特别是对于一些持续迭代的2C产品来说,”变化是唯一不变的规律“,那就意味着变更是常态。
  此时,我们可以得出一个非常有用的结论,开发和运维的冲突在某些情况下会被放大,比如说运维能力很弱,部门墙的出现。图2进d步归纳和阐述了这种冲突的原因。
  两个不同的团队把各自的目标和要求形成一定的推力推向对方团队,然而部门墙的存在,让这种推力存在阻隔。
解析开发与运维冲突的那些事
  甚至,我有时候把这幅图比喻成一个舞台(生产环境)上两个击剑手,在进行一场对抗比赛。

二、冲突的表现形式
  在一个企业内冲突的最直接表现形式就是抱怨,抱怨的最直接感受就是从自己的角度总是觉得对方不够好。
  因此,我就从整个软件或者特性交付的角度来分析,把过程分解成几个典型阶段,来看这个抱怨是如何产生的。
  大家也可以根据自己的经验,也总结一下自己感受到的冲突表现及其抱怨来自何处(尽量明确而具体),然后我们一起走向后醯慕饩龇桨浮
  2.1.程序发布前
  开发的抱怨:
  ◆找运维要个资源,怎么那么难呢?
  ◆找运维要几台设备,要填写这么复杂的表格?研发内部都没这么复杂。
  ◆运维的资源交付流程太长了,能不能再快一些?
  ◆运维的交付流程是否可以透明一些,不要让我经常来提醒运维,进度怎么样了?
  ◆运维的流程太多了,走OA,走领导审批,就不能简单一点么?
  ◆运维对技术架构把握能力不够,架构评审给不出有用的建议!
  旄芯踉宋的第一要求永远盯着我们服务器是不是用多了?
  运维的抱怨:
  ◆开发永远都是程序要发布了,才来告诉运维要怎么做怎么做?!
  ◆开发老拍脑袋告诉我要给多少资源,为什么不合理评估呢?!
  ◆开发的技术架构评审为什么不邀请运维参加?
  ◆开发的技术架构考虑运维的需求太少,很多研发是真正的程序研发。
  ◆开发把运维当作资源提供者/事务执行着,倒不如让他们自己做运维好了。
  2.2.程序发布中
  开发的抱怨:
  ◆运维的发布流程好复杂好暴力,不区分业务和发布类型,都必须走很多领导审批,并且是深夜发布。
  ◆我明明写了详细的部署文档,但每次部署为什么还需要研发深度参与?
  ◆运维的发布好慢,一个发布要搞半天,感觉比我们研发过程还长。
  ◆运维的部署不能自动化么?为什么这么久还是要人工?我都想自己做个发布平台了。
  ◆有些不重要的发布,是不是可以让研发自己来做?不想每次都去触碰运维复杂的流程。
  运维的抱怨:
  ◆这个部署文档好复杂,里面那么多坑要注意,每次部署都要耗费很多时间。
  ◆研发这个程序写得够呛,之前和他们反馈过,把配置不要搞成每台不一样,还是没改过来。
  ◆研发有没有遵守运维的规范,不和我沟通,按照自己的方便写出业务程序,让我运维。
  2.3.程序发布后
  开发的抱怨:
  ◆程序出问题,为什么运维不能自己定位问题?都需要我深度参与。
  ◆程序发布后出现bug,这个时候需要走紧急流程,必须经过领导,是否真的需要这么麻烦?
  ◆程序发布后的状态没法看到,我只能找他们要账户登录去看,能不能做成一个系统给我看相关信息。
  ◆运维的监控能力感觉真的很弱,出问题都是靠用户或者我们看日志发现的。
  运维的抱怨:
  ◆开发的程序好烂,刚刚发布了,就出bug了。
  ◆程序bug了,又在催我快速解决,连研发自己找bug都没那么快,我哪有那么快呀!
  ◆开发程序异常log输出太少了,非常不利于快速定位问题。
  2.4.持续运营阶段
  开发的抱怨:
  ◆运维为什么不能给一个帐号给>,让我登录服务器去看服务状态。
  ◆运维内的平台一些权限应该给我,我想看看服务的运行状况。注:很多企业估计研发都没有登录过监控系统,更别谈CMDB了。
  ◆运维的日志分析能力很弱,我自己要写临时程序来做日志分析。
  ◆不出故障,我是感觉不到运维存在的。
  运维的抱怨:
  ◆开发写的程序又出bug了,又出重大故障,我又要救火了!
  ◆开发的程序架构设计好烂,这点技术问题都没有提前考虑,导致这个问题必须要靠人来解决。
  ◆开发籏PI体系里面应该包含运维的质量和成本指标,需要他们一起来抗,否则压力永远都是在我们运维。
  ◆我们搞了一些数据报告,开发根本不关心,他们只关心需求实现,不关心运维的需求。
  进一步深入技术分析的话,可以找到一些冲突的根源:
  ◆研发和测试部门是以敏捷方法论来驱动的。
  ◆而运维部门是构建在ITIL体系上的ITSM管理的思路。
  前者有一些管理工具(持续集成,看板)/实践(站立会议/测试驱动/极限编程)/文化(价值观/团队融合)等等。
  后者所依赖的ITSM的流程体系明显是滞后于前者敏捷体系的能力。
  也就是说,两个团队不同的IT思维/能力的不同,造就彼此的输出的不同,这才是冲突的技术之源。
  所以要想解决问题,核心的思路是:要找到一个统一的方法论(DevOps?)来融合两个IT团队个字的目暮头椒论,当然冲击最大的还是运维团队,需要把自己的流程能力转化成自动化平台的能力。
  从方法论上看,我自己觉得DevOps是Agile方法论的一次很自然的延伸。
  其实从各自的角度能看到大家彼此的关注点,这些关注点有些是重叠的,有些是完全不对焦的。

三、冲突的解决方案
  寻求解决方案比抱怨更重要,在抱怨的地方,才有改进的机会。但我这个地方避免用DevOps这个词来笼统的寻求解决方案。
  我个人觉得需要做一些转变,核心的转变是两点:第一是拆墙;第二是换舞台,如下图:
解析开发与运维冲突的那些事
  拆墙,研发/运维团队把彼此的作用力触达到对方,感受到彼此的要求和能力。
  换舞台,诘撞愕奈杼ǜ换了,“经济基础决定上层建筑”,底层换了,上面的思路也就随之变化。
  措施1:共享一致的目标/价值/状态
  对于研发/测试/运维团队来说(+本站微信networkworldweixin),就需要把大家的目标/价值/状态做个对齐。之前写过IT运维的诒晏逑凳侵柿/成本/效率/安全,其实这个可以传递到研发/测试团队,并且是和业务功能需求完全不冲突的。
  从目标来说,分阶段性的目标和长远目标:
  ◆阶段性的目标其实可以看业务部门的短期需求和规划,从而反推IT能力的要求,比如说敏捷基础谑┙桓叮持续发布。
  ◆长远的目标,其实是可以规划自己的IT能力主线,比如说容器化和架构服务化,然后分解到阶段性的目标上,这个目标是需要和研发对齐的。
  我说的状态比较特殊。其实,我更希望运维把线上服务的运行状态进行透明化和可视化谌缓蠼桓陡我们的研发/测试部门,不要让自己的能力成为黑盒子。这样:
  ◆一则,督促自己不断提升自己的能力。
  ◆二则,可以基于状态促进研测不断优化技术服务能力。所以更需要把这种思维传递给开发,让其去建设一个非黑盒子系统。
  研发是有技术和责任辅助运维实现这一目标的。
  状态的一致性,其实是具体的驱动措施了,俗称状态看板,它分业务价值看板BVD和服务状态看板,详细如交易看板,服务可用性看板,服务成本看板,服务性能看板,事件看板,问题看板等等。
  d施2:IT能力的平台化驱动
  在之前的篇幅中,我说过ITSM的运维体系能力是大大滞后的,明显不能满足当前业务快速迭代的需要,运维的问题还是必须要运维来挑头解决。
  生产环境,运维是第一负责人,必须改变过去的流程思维,建立自动化和数据化的运维平台。
  从环境管理的角度来看,需要以生产环境的平台管理能力覆盖为首先的灰度点,然后逐渐覆盖预发布/测试环境,最后才是开发环境。
  有了平台化能力之后,运维的作用力才能顺利推进到研发和测试那边,否则就会出现制定了规范无法落地。
  不信,你定义一个现网日志监控规范看看?
  所以,我把XIATU中绿色部分的能力实现都认为是运维部的,有没有感觉到你在搭建一个舞台?的确如此!
解析开发与运维冲突的那些事
  措施3:“把想法装进别人的脑袋”
  每个团队不能孤立的去看或者解决问题,当我们把能力延伸到对方之后,其实就是在干“把想法装进别人的脑袋”的事情,对两个团队来说都是难事。
  之前讲过研发团队的Ops-friendly和运维团队的Dev-friendly,也在讲一定有照顾到别人的诉求才能friendly。
  2014年的puppet报告,也在讲团队内培养DevOps是多么的重要,其实就是在讲理念和实践刷新成一致状态。

  任务冲突不可避免,冲突的形式也是各式各样,冲突的解决方案也不尽相同。
  本文是自己对该问题的一个整体思考思路,希望能触发我们一起来思考。最后引申一个话题——“NoOps”(无运维),大家也一起思考一下,是否有可能?其实本文也有一些答案。


IDCsped 提供最新的IT互联网资讯,本着分享传播的宗旨,我们希望能帮助更多人了解需要的信息!

部分文章转载自互联网、部分是IDCsped原创文章,如果转载,请注明出处:www.idcsped.com !
微信号:13430280788  欢迎加微信交流!

标签:研发与运维冲突  
相关评论

销售电话:13430280788

Copyright © 2012-2017 | www.idcsped.com 版权所有

  粤公网安备 44010502001126号  粤ICP备12006439号-1