DevOps看起来很美,实现起来却很难?

云视角

2017-08-11

DevOps正在成为大家所熟知的实践方法和文化价值观,它可以缩短软件发布周期,提升软件质量、安全快速获取产品的开发反馈。然而,企业却几乎众口一词地表示:“DevOps很好,但我们很难做到”。

 

手工编译,上传服务器文件,执行各种命令,启动和停止服务器,发现一个BUG,改完再重复之前说的步骤......如今看起来啼笑皆非的重复劳动,在没有DevOps概念之前,全靠IT人员手工完成。

不仅如此,DevOps概念的提出,最初因传统模式运维之痛而生。众所周知,DevOps一词的来自于Development和Operations的组合。字如其意,DevOps就是让软件开发人员和运维人员更好的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

 

 

 

《RightScale2017年度云计算调查》报告数据显示,DevOps的整体采用率从74%上升到了78%,同时企业的DevOps采用率达到了84%。30%的企业正在全公司范围内采用DevOps,同比增长9%。

 

这些数字的提升不仅代表了DevOps可以带来实际效果的共识,也印证了DevOps这两年开始受到越来越多的企业重视。DevOps概念的深入人心,离不开云计算、容器/Docker、微服务、敏捷等相关概念和实施的成熟发展。其背后本质是企业IT的精益运营,以面对更快的业务试错与业务创新。

概念虽好,落地却难?

DevOps的一个巨大好处就是可以高效交付。DevOps理念指向“高度的自动化”,试图制定一条从开发到运行自动运行的流水线,最大程度地摆脱人工的束缚,达到企业生产力的升级。

 

比如,持续的集成与开发,实现从开发测试、上线运维的一体化自动流程;智能预警帮助用户自动监控集群运行状态,快速定位到问题具体发生的位置,及时通知用户以快速解决问题等。

 

DevOps另外一个好处就是会改善公司组织文化、提高员工的参与感。员工们变得更高效,也更有满足和成就感。

 

由此可见,如果能采用DevOps,公司就能够做更多的创新,缩短开发周期,将产品更加快速地推向市场;同时创造差别化的公司业务和价值,提高组织效率,而不是不停地修补旧问题。

 

 

 

虽说DevOps优势多多,前途大好,企业对DevOps的评价也很高,但实际情况却是说的人多,做到的很少。

 

究其原因,在于DevOps并不是简单地将开发部门和运维部门合并,更是企业文化、组织结构的变革,是通过自动化的基础设施、合理的流程规范以及智能的自动运行系统测试来加强开发部门和运维部门之间的协作和沟通。

 

首先,这涉及到观念问题。DevOps的最终目的是加强开发部门和运维部门之间的协作和沟通,如何把现在的文化朝DevOps思维模式扭转,并且在开发和运维之间找到共识?

 

对于传统企业,特别是大型分布式组织,在整体意义上的DevOps成功往往是不可能实现的。

因为DevOps要求深层次的文化和组织变革,要改变的太多太多。这意味着大家要扔掉奉行了几十年的显规则和潜规则。你不得不告诉老部下们,大部分他们知道的和每天做的事物都已经过时了。

 

其次,想要为DevOps和应用灵活性而重塑团队,就要有打破IT分组壁垒的勇气,并且需要在团队成员筛选上做出艰难的决定。 

困难重重,如何实现?

毫无疑问,DevOps 对组织是非常有价值的,但是需要注意的是,整个公司都需要参与到DevOps里才能成功。DevOps需要高级领导层的支持,也需要和最终产品相关的所有人的参与,而不仅仅是开发和运维部门。

 

第一,在开发和运维之间找到共识,这需要强大的领导力来实现变革。当然,它也需要花费时间和金钱,并且需要在团队成员筛选上做出艰难的决定。

 

可以从小处开始,不要期望一开始就能让所有人都信服DevOps。实际中,在特定项目的小型组织内赢得大家的支持,就赢得了会在公司其他地方帮助宣传DevOps的大使们,这会带来乘数效应。

 

第二,围绕业务系统而不是职责来组织工作,这就是DevOps打破IT分组壁垒的寓意。一个团队应该有开发人员创建代码,从用户界面到业务逻辑和数据结构,也应该有运维人员负责操作自动化和部署。团队待在一起,共同为他们的应用和系统负责。

 

当然,为了促进DevOps战略,调整考核和激励机制是必要的。应该奖励系统创建和运维的整体团队,并且根据团队工作的全部要素来确定奖励。

 

第三,团队需要选择最合适的工具。虽然DevOps是一个概念,但工具是实现DevOps的重要组成部分。近两年来如日中天的Docker就是实现DevOps最合适的工具之一。

 

最后,好工具得有能人掌控才能发挥其威力。即使找到了好用的工具,也需要有熟悉这个工具链,拥有相应技能的IT人员来提供技术支持,才能完成实现自动化的使命。

总体而言,DevOps作为一种理念,推动开发和运维之间的合作,有效回应了当前的商业需求。它的实现是新观念、新工具、新技能的三者叠加。虽然实现起来还有种种问题,但DevOps是大势所趋,作为企业的高层和开发运维人员,对这样的变革不能视而不见。

 

【科技云报道原创】

转载请注明“科技云报道”并附本文链接

 

推荐文章