开发者社区> 问答> 正文

运维最恨4件事:开发同学能帮忙做点啥?

DevOps 这个词表明,开发和运维需要通力合作。然而在现实生活中,双方都会有不同的工作职责,同时看待问题的视角也不尽相同。大多数情况下,都是运维一方得到不公正待遇。为了让开发人员能更好地理解运维同学,而且能帮忙解决一些问题,本文分享了一些经验和看法。
                                              
1. 不断涌现出新开发技术
一般而言,开发人员通过产品功能来衡量工作成果,而系统管理员和运维团队则由稳定性指标来进行考量,后者往往反对这些新技术。开发同学使用这些新技术可以帮他们更快搞定某项功能开发,也许是一种新编程语言 Scala,它具有良好的伸缩性,同时也能更好地支持各种组件;或者他们更喜欢使用流行的数据库,比如 MongoDB,这种非关系型数据库能帮助开发人员更快、更灵活地更新代码。
虽然这些新技术可能会给开发同学带来诸多好处。但不可否认,这些新技术同时也可能会给运维同学带来很多困难。因为一个标准公司产品可能由数十个,数百个,甚至数千个技术栈构成,它们可能基于各种不同技术来进行开发。然而对于开发者来说,他们只需要专注于某一项技术(或者少数几个)。而大多数情况下,每个运维可能需要在同一时间里对多个甚至几十个应用进行监控。如果缺乏专业级监控软件比如 OneAPM ,就很难进行管理。
对于开发人员来说,他们只需要精通某项技术就可以做出一款伟大的产品。但是对拥有多产品线的企业而言,就可能带来扩展性限制或者安全性问题。运维同学就需要不断学习新技能,从而避免被各种运行 Bug 所难倒。如果某应用最初的开发人员又不幸离开了团队,估计运维同学就疯了。当然还有一些情况,比如很多开发同学都喜欢使用一些开源产品,但其兼容性往往都很差,这也给运维同学带来很多困扰。
开发人员可以提供哪些帮助?
在开发或者更新产品时,开发同学应该提前咨询一下运维同学,现在哪些技术最常用,而且还要考虑,在未来短期时间内,即使面临复杂的生产环境也能够顺利完成开发工作,运维同学则需要给出“慎重”的回答。这里有个好建议,就是尽可能坚持使用一些标准化组件。
2. 不得不处理大量「遗留」代码
开发同学相对来讲很幸运,因为他们通常可以不用处理遗留代码问题。运维则不然,很多企业的数据中心就像一个「科技博物馆」。甚至一些几乎用不到的老应用,运维仍需保障其正常运行,因为说不定它跟某个关键应用还有某种“藕断丝连”的关系。
开发人员可以提供哪些帮助?
其实,这个问题从本质上来看就是第一个问题,因为随着时间流逝,很多企业已经逐渐失去对技术层面的管控能力。而解决方案几乎一样:保持技术栈简单化和标准化,并考虑到未来需要哪些成员来进行维护。
3. 应用可以在开发环境上运行,但是无法在生产环境上工作
很多开发同学经常说类似「我们在开发环境上跑的很好啊」这种话,然后把问题直接推给运维同学。遇到这种情况,一般是由于开发人员把代码嵌入到生产环境之前并没有做好测试工作。「我总不能老测试代码吧?我们已经在开发过程中完成了」,开发同学摆出这种态度,就意味着所有工作都抛向了运维。如果关系搞得很僵硬,开发同学甚至还会进行更频繁的部署,这无疑会让事情变得更糟。
那么开发人员可以提供哪些帮助?
其实,传统交付源码或者软件包最大问题就在于,软件运行期间所依赖的环境无法控制,不能标准化,IT 人员常常需要耗费很多精力来解决因为“环境”而导致软件运行出现的各种问题。开发人员可以了解一下 Docker 技术,这是一个轻量级的容器管理引擎,它可以将软件与其依赖的环境打包在一起,以镜像方式进行交付,这样就可以让软件运行在标准环境里,这也非常符合云计算的发展要求。当然开发人员也可以邀请运维同学参与到开发会议中,确保日志记录和监控等事情能够被妥善解决,这样基本上可以搞定这件事。
当然,除了 Docker 技术之外,现在市场上也提供了一些专业工具,比如运维可以将 Application Insight 探针部署在开发环境「Development」、测试环境以及生产环境「Production」上,然后依次查看系统业务在不同环境下的性能表现情况。例如某个新功能上线时,在开发环境中没有错误,但在预演环境「Staging」中就可能会出现错误,运维同学就可以在 Application Insight 管理控制台上快速地查看各种错误信息,然后迅速对问题进行定位,分分钟就可以解决。
4. 经常为他人背黑锅
一般而言,公司管理者往往对技术了解不多。但是,无论是网站访问缓慢,还是系统出现各种错误,不管是因为谁,公司老大们都是找运维同学解决。从一定意义上讲,运维同学有责任去解决这些问题,但是不排除很多情况下是因为开发同学某段代码出现了问题,所以运维同学难免会抓狂。不仅要承担别人犯下的错误,还要拼死拼活地去解决可能非自身原因造成的问题。因为没有专业工具,运维很难快速定位问题所在,所以他们常常「有苦难言」。
那么开发人员可以提供哪些帮助?
开发同学要学会使用「暂停」 模式,尝试把代码交付时间向后暂缓一下。这样可以保证在出现问题之前,及时向开发同学伸出援助之手。通常而言,开发人员拥有更专业的经验和技术来修复各种问题。
其实,应用性能管理第一品牌 OneAPM 在这点体现最为明显,因为其核心价值就是希望帮助 IT 运维人员进行故障预警和定位,帮助减少业务系统维护工作量。同时能够能够实现从代码类、方法到数据库语句级别快速性能诊断。除了能让运维同学少背黑锅,还能帮助开发同学准确定位到问题代码段。从此,开发和运维同学也能在一起愉快地玩耍。

展开
收起
sunny夏筱 2015-10-26 14:13:51 8583 0
8 条回答
写回答
取消 提交回答
  • Re运维最恨4件事:开发同学能帮忙做点啥?
    梦见和异性朋友接吻——预示着不久将会宏图大展,只要你能够努力用功的做事,将会取得不错的好成绩,而且平时默默无闻的你这时也可以一鸣惊人。
    女人梦见和异性朋友接吻——预示着不久会出远门,运气也不错,会获得不错的收获,是祥兆。
    未婚者梦见和异性朋友接吻——预示着爱情方面很难取得成功,对待另一半只要细心、耐心些会获得不错的结果。
    工薪族梦见和异性朋友接吻——预示着工作上很有激情,效率也很高,也容易好高骛远,容易一时冲动的接下自己无法完成的任务,也会安心完成手头上的工作是很重要的。
    鳏寡孤独者梦见和异性朋友接吻——预示着不久会外出旅行,途中也很平安,建议你不用太过担心。
    青年人梦见和异性朋友接吻——预示着健康方面需要多留心心脏方面的疾病,也会有流行性疾病的发生,建议你要增强自身的抵抗力是很重要。
    求职者梦见和异性朋友接吻——预示着职场上的竞争形势会变得很激烈,斗志也会被激发,变现欲望也变得很强烈,可以用信心和实力取得成功。
    求学者梦见和异性朋友接吻——预示着考试成绩很好,会取得不错的进步,但不能骄傲,否则下次成绩落败。
    梦见与许多异性出游或被异性包围——预示着恋情方面不是很顺利,如果有伴者最好不要太任性,要学会多体谅对方,否则他的新会跑到别人的身上。
    梦见异性朋友骑一匹白马走了——预示着爱情运势走低,要多关心和体谅对方是很重要的。
    周公解梦梦见和异性朋友接吻是什么意思http://jiemeng.114s.cn/
    2015-10-28 10:21:08
    赞同 展开评论 打赏
  • Re运维最恨4件事:开发同学能帮忙做点啥?
    研发应该不敢和运维撕吧····运维的作用现在越来越大
    2015-10-28 10:11:58
    赞同 展开评论 打赏
  • Re运维最恨4件事:开发同学能帮忙做点啥?
    哈哈,我是孤独的运维狗
    2015-10-27 16:01:27
    赞同 展开评论 打赏
  • Re运维最恨4件事:开发同学能帮忙做点啥?
    撕的次数多了,也就习惯了
    2015-10-27 14:40:41
    赞同 展开评论 打赏
  • 码农|Coder| Pythonista
    撕得可能性不大。
    如果是指前端设计和后端程序的话
    如果是前端应用和后端数据的话
    撕得可能性比较大
    2015-10-27 10:55:23
    赞同 展开评论 打赏
  • apm
    Re运维最恨4件事:开发同学能帮忙做点啥?
    前端后端一般不会,接口定义清楚即可,但运维和开发不同
    2015-10-26 23:36:09
    赞同 展开评论 打赏
  • 回1楼ivmmff的帖子
    你猜?

    -------------------------

    回2楼鬼才神兵的帖子
    有用无用在个人
    2015-10-26 18:59:34
    赞同 展开评论 打赏
  • 阿里云论坛版主,伪Linux运维,完美主义者。
    我想知道这个帖子有何用?
    2015-10-26 17:25:13
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
企业运维之云原生和Kubernetes 实战 立即下载
可视化架构运维实践 立即下载
2021云上架构与运维峰会演讲合集 立即下载