在为客户进行DevOps咨询和提供解决方案时,除了“又快又好”的发布之外,我们发现客户通常还有两大方面需求:开发测试管理问题和运行管理问题。以某大型金融企业为例,该企业开发测试问题主要表现为研发过程的管控不足,这带来了开发效率低、版本质量差、环境交付慢等一系列问题。另外,整个运行环境缺乏统一管理,资源申请和获取周期长,资源利用率低也是当前运行管理中频繁出现的问题。
解决方案
流程的平台化、固化,自动驱动流程运转
规范的落地是DevOps能够正常运转的一个重点。从立项到整个需求任务、开发测试、发布上线的过程里,大概50%能规范化并落地到平台中,另外还有些工作例如会议需要人员管控。每个企业中可能有1-2套标准流程,不仅要匹配不同客户的需求,和同一企业中不同项目的需求,还有随着企业对DevOps认识的不断提升,流程也会随着认知不断演进。流程的自定义和灵活性就显得非常重要。
如何自动驱动流程也是一个关键。博云为该企业设计了自定义工作流引擎,整个流程的固化,从前期的准备到后面的需求、研发、不同的测试阶段,都可以通过devops平台上企业自定义的研发工作流来驱动。它不仅能展现当前标准流程的进度,同时企业能够用标准流程去驱动底层的工具链与整个研发管理过程。不管从需求、评审或是运维等角度,整个底层、研发流程的状态变化能够驱动流程和工作引擎的状态变化。例如从需求待开发进入开发阶段后,整个版本也从待规划阶段自动变化到开发阶段。
解决方案
多视角的环境管理
现在的研发管理流程中,包含非常多的对象。从项目视角来看,它注重的是开发阶段,需求任务缺陷和非常重要的研发管理的项。从代码提交开始,它的管理对象是应用和服务,比如代码是和哪个服务关联,制品是和哪个服务关联,pipeline和部署也是与应用服务关联。也就是说项目/版本,应用/服务是我们两个核心的管理对象,那如何才能实现兼容这两种方式?
我们在实践中发现,以应用服务视角去统一或以项目视角去统一这两点都是需要的。在代码之前需要的是项目视角,在代码之后最核心的是应用服务视角。通过应用服务去关联代码、环境、pipeline、制品,这是最自然的也是最好用的一套逻辑。还有一个就是人员,除了角色对象这些东西外,它核心也会体现在所有绩效、工作量和团队。
环境管理的落地流程从整个环境规划开始。在流程的前端,一开始就给项目申请环境与配额,最后环境细化的分配到各个项目和应用中去。然后通过pipeline的自动化把环境部署起来,由环境申请到环境释放这样一个过程,底层与各种各样的资源平台去对接。
整个资源环境管理的设计能够兼容各种各样的需求。应用本身是可能有很多环境的,我们实现了一个应用能随时创建一套自己可用的环境,在整个资源平台与不同的容器平台、虚机环境、云管平台上创建的项目相匹配,并进行多个关联。
解决方案
以版本为核心的过程管理和追溯
我们通过DevOps平台的整体自动化驱动,以版本为核心,从整个的从需求到代码、制品、构建、部署和实例的管理过程给支撑起来,将它与关联项进行匹配,使信息实现同步。这样能实现线上运行的版本对应它的需求,能够清晰的了解制品关联哪些需求和版本。这样能够解决整个线上版本和线下版本或不同测试环境里的版本不一致的问题。
这里关键的核心点是研发提测过程。整个研发过程中,研发提测把需求圈出来告诉测试,圈完之后就会走自己的pipeline,pipeline最后生成制品,这样就实现了制品与需求的关联。平台还有提测单,提测单中不仅有制品和需求的信息,还会有质量检查的信息。这个信息会一直跟着流转到整个的版本测试报告中,也就是说我们不但知道这次测试的报告,还能知道所有中间过程中安全检查和自动化测试的结果,是清晰可见的,这是一个关联和信息匹配的过程。
另外一个就是以版本为桥梁打通开发测试和生产环境。在开发测试和生产的过渡过程中,版本包含提测单、需求,也包含制品、配置、脚本这些所有的信息,这样从开发测试转化生产时,不仅是把制品转过去,也包含了整个配置和脚本信息,这样不仅能实现制品包移植,它的配置信息、脚本信息与开发测试环境也是一致的。
解决方案
强大的配置能力,适应当前与未来
对开发人员来讲,接收到的需求能在界面上看到,做代码也能在同一个界面上看到,制品、部署发布上线,需要处理的流程的工作,都能在门户中心看到。这样就不需要用许多工具和每天登录十多个系统,就按看到的流程走。
整个工具的驱动也是一个重点与难点。工具较多,每个客户使用的工具也不一样。不管是对接还是纳管,通过工具链和门户的能力,把各种不同的工具驱动和管理起来,为开发人员和管理人员带来价值。
解决方案
灵活与可用
整个DevOps实施落地包含三个关键因素——人、流程、工具,博云从团队协作,流程再造和工具集成三个方面,帮助某金融企业实现了业务驱动型团队和标准化规范的敏捷流程,形成持续完善能力。由点及面,循环迭代完成研发测试运维的持续交付转型,打造能够真正落地的DevOps研发运维体系。
将原有的团队转变为以产品组和能力组共同组成的业务驱动型团队;
落实敏捷支撑的标准化规范,简化流程从而实现快速迭代;
打通应用全生命周期工具集成,形成DevOps的工具链。
通过一套敏捷作业管理框架,一组IT工具链和一个能展示所有环节和过程的可视化平台,博云帮助企业实现面向需求-开发-测试-上线等全流程的端到端自动化流水线,驱动整个研发测试管理流程运转,提高企业内部IT资产能力和开发质量管控水平,从而解决开发测试及运行管理中的种种问题,最终使得研发运维团队业务支撑水平能力得到提升。
随着企业数字化转型的加速推进,DevOps将持续发展,BoCloud博云将继续探索用户真实需求,提升产品能力,为用户提供更加灵活、可用性更强的DevOps平台,帮助企业真正建立DevOps文化,推进业务部门与开发团队深度配合,提升研发运维效能,专注创造价值。