DevOps(三)浅谈开发运维的挑战及经验分享

企业在实现DevOps的过程中,往往遇到各种各样的问题和挑战,甚至走不少弯路。本人根据自己所掌握的知识,向大家分享DevOps面临的挑战和积累的经验,以及容易产生的误区。

DevOps的挑战

生命周期管理

DevOps中涉及到很多应用、中间件等产品,每个产品均存在生命周期问题,当其中某个产品退出历史舞台后,其工作由谁来接替?同时,新产品如何与现有平台进行完美衔接?都是需要考虑的问题。面对这种挑战,企业一般都需要基于敏捷原则,采用易于扩展和替换的框架进行搭建。

跨平台业务管理

DevOps中的每个产品,通常集成Web、桌面应用、移动应用、数据仓库等,往往涉及多平台、多供应商。面对这个挑战,最好的方法就是在开发阶段就采用具备一致性的自动化构建、配置和部署流程。

跨部门沟通管理

尤其在一个大型企业中,面临最大的挑战是现有的企业制度或企业文化不利于DevOps发展,如业务监管、工作流程、员工技能、部门孤立等,甚至部门利益关系,导致产品的规则、开发、测试和运维的过程缓慢。这个挑战,也许正是DevOps面临的最大挑战,其最终目标也恰好是为了解决这个问题。

DevOps的经验

产品发布基本流程:

①开发(开发环境):环境配置
②构建(构建环境):源码管理/版本管理
③测试(类生产环境):系统测试/单元测试/功能测试/性能测试/集成测试
④交互测试(类生产环境):可用性测试/安全渗透测试
⑤发布(生产环境):集成DevOps服务

自动化测试

由以上流程可知,测试环节其实非常重要,却偏偏也是最不被企业看重的,有句口号是“尽早测试,频繁测试”。经验告诉我们,能在类生产环境中发现的问题,都不是问题,在这里可以进行任意的、全面的测试,同时,针对那些基础的、重复的、乏味的测试任务,尽可能通过自动化工具或脚本实现,以减少工作量和人为失误。

可持续交付

构建一个“工具即服务”的可持续交付的通道,比如自动化部署脚本等,让开发人员能够完成提交和测试代码、部署生产环境等工作。

DevOps的误区

仅适合开发和运维

DevOps是由开发和运维演进而来,但是,现在的它并不是只涉及这两个部门,而且包括业务部门、供应商在内的所有涉及产品交付的相关方。

需要运维团队学习编程

DevOps不是运维工程师和开发工程师的拼合,也就是说并不意味着运维团队一定要懂JAVA/C#/PHP编程。

没有云就没有DevOps

DevOps是一种概念,只要企业具备高效的流程和资源即可,而云平台作为一种资源提供方案,也并不是唯一的。

不适合外包开发

在DevOps平台,通过共用的流程管理、项目管理和资产管理等工具,从而大幅提升业务部门与供应商之间的协作效率。

原创文章禁止转载:技术学堂 » DevOps(三)浅谈开发运维的挑战及经验分享

精彩评论

1+6=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏