devops为何落地困难?
因为对于传统企业来说,它没有互联网企业天生的DevOps土壤,可以更顺利的进行DevOps落地实施,大型传统企业想要实现DevOps落地需要从多个维度进行准备:
- 各领域的管理体系升级
- 软件研发的新技术应用
- 一体化的工具平台需要建设
传统企业大多是职能型组织架构,各部门有自己的职责范围和边界,各自的工作也有一定的参考依据。相互之间的交互已有一定的规则和习惯。而DevOps的导入需要涉及端到端的全链路打通,覆盖业务、产品、研发、测试、运维、运营等产品全生命周期活动,涉及各个部门之间的协同与打通,以及全领域的流程体系梳理。
良好的管理理念和方法论是管理体系的核心支撑。DevOps落地过程中需要进行相关领域的流程体系梳理,涉及到的管理理念包括从DevOps核心理念中引入了敏捷管理、ITSM、精益思想等,还有基于客户现场的落地诉求,可能涉及到产品管理、项目管理、需求管理,运维管理、运营管理等多维度的管理体系的梳理与完善,同时,在此基础上还会涉及到客户的组织架构、人员职责等相关的调整。对客户来说改变工作习惯,理解新的流程体系都是不小的挑战。
因此DevOps的导入对于企业来说是一次重大的组织变革,并不能从某一个部门或者某一个团队开始实施,而是要从企业的整体战略视角来审视DevOps转型的目标和路径,制定自顶向下的实施策略。同时,对于DevOps实施的团队来说,要储备足够丰富的管理知识也是一项不小的挑战。
最近几年,有越来越多的技术支撑DevOps的落地和实践。微服务架构理念、容器技术使得DevOps的实施变得更加容易,计算能力提升和云环境的发展使得快速开发的产品可以立刻获得更广泛的使用。
IT团队也需要做好自身技术升级的准备,微服务架构的引入,容器化部署的尝试以及云服务的运维方式,都是DevOps落地的一些充分的前提条件。做好技术的提前准备,才能使DevOps落地更充分有效。而传统企业的技术转型需要面对庞大的业务系统,复杂的业务场景,年代久远的代码架构以及力求稳定的运营诉求,同样给DevOps落地带来了巨大的阻力。
应用系统的建设经过单体应用、SOA应用、逐步走向微服务应用。微服务的实施必然要具备需求管理、代码版本管理、质量管理、构建管理、测试管理、部署管理、环境管理等全流程自动化工具链,以及开发部门与运维部门的深度协作,为DevOps实施提供的充分的土壤。
微服务的应用使软件系统拆分成更小的组织单元,服务数量的增长,给部署实施带来了更大的挑战,无论是用虚拟机还是物理机,成本都比较高,而且扩容也不是很流畅。容器技术可以让一台机器上的不同应用使用相互隔离的资源,以独占的方式运行在同一台机器上。这些应用也可以拥有容器,因此能够创建和管理属于他们自己的子容器。容器化技术的应用可以实现在服务不中断的情况下实现更新部署,提高了升级效率。
DevOps平台工具的功能包含了从需求管理、需求开发、代码管理、基础设施管理、持续集成、自动化测试、持续部署到应用运维管理全流程。每个过程都需要DevOps平台及各种工具的支撑。
比如我们需要Git来管理代码,需要根据企业的实际情况制定合适的分支策略;多种语言的代码规则检查;需要灵活的流水线搭建来做实现持续集成持续部署;匹配多种自动化测试工具来执行自动化测试;匹配各种部署方式实现自动化部署;使用节点服务来管理基础环境等等。
而统一的DevOps平台不仅需要覆盖大量的应用场景,还需要灵活的配置方式可以适应全场景模式下的差异化配置,并且提供良好的平台延伸和扩展,来满足发展需要,以及可能出现的场景延伸。对DevOps工具的要求需要整合各流程环节的管理诉求和自动化诉求,同样给DevOps落地提升了不小的难度。
从自己实践经验,有如下几个原因:
- devops是一个文化变革,不是一个人的事情,是所有人的事情,从思维,技术,流程都是天翻地覆的;所以你让沉睡很久的人,接受一个新的东西 是多么难
- 公司上层的支持 ,有的公司上层没有看到好处,有的公司老板看到好处了,但是他不知道如何去搞,以为搞一个 自上而下的 轰轰烈烈的行动,就可以一年内完成,结果就是最后 四不像
- devops会触动很多个人或团体的利益
- devops的变革建立在敏捷基础上,但是往往很多公司还在瀑布上搞,devops的价值无法快速体现,做的好仅仅是自动程度提高
- 以为devops就是银弹,其实devops需要各个部分的提升,自动化覆盖率,测试用例等等;仅仅以为搭建了工具,就devops 了,仅仅是实现了自动而以,用例不提高,你的质量肯定就无法提高。
- devops是一个漫长的变革,但是往往 被搞成了 “大跃进”,一口吃成胖子; 其实devops是个还技术债务的过程,这些技术债务会阻碍 团队日常的开发活动,和发布上线,所以从外部推动很难进行,比如专门成立一个devops 团队,这就是 典型的 “devops”发模式,笔者目前就在这样的团队内
- 最后我只能说 devops 需要团队的 自我驱动 和自我变革的勇气,如果没有,真的举步维艰,其实技术问题都是能解决的,最终 不能落地的 是人的问题。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/200776.html