随着数字化时代的到来,信息技术发展日新月异,市场瞬息万变。快速捕获业务机会、实现并交付给用户使用,是企业核心竞争力的体现。金融科技正在重塑银行竞争格局,围绕场景构建生态,强化智能感知和快速响应,产品服务向个性化、差异化、定制化进阶。敏捷和DevOps成为软件研发行业的热点,强调拥抱变化,构建快速响应市场能力,形成以价值为导向的交付机制。 在软件研发过程中,一般来说会遇到两个瓶颈。首先在需求阶段和开发阶段之间,面对频繁变化的需求,以及对需求的高响应力,对传统瀑布研发模式提出新的挑战。2001年2月,Martin Fowler等17位著名的软件开发专家齐聚在美国犹他州,举行了一次敏捷方法发起者和实践者的聚会,在这次会议中,他们正式提出了Agile的概念,并共同签署了《敏捷宣言》,产生了敏捷开发方法论。敏捷是软件研发的一种模式,通过迭代的方式进行快速交付,提升研发效率。 随着研发过程效率的提升,在开发阶段和部署阶段之间,进行持续发布产品增量时,跨部门协调审批和手工干预操作成为价值流的瓶颈,DevOps应运而生,其关注的是软件部署和运维管理,它通过消除资源浪费和简化部署等方式,实现更快、更持续的生产部署,将运维纳入产品开发过程,是敏捷开发方法论的升级。两者都是为了提升交付效率而进行的研发过程改进和优化,是相辅相成的。 结合农行转型,我们探讨下敏捷和DevOps的关系。2017年农行启动敏捷建设工作,积极探索敏捷理论方法和实践,采用横纵结合的方式提升敏捷实施效果。横向方面,推广看板站会、Scrum等敏捷实践,通过看板站会,使得任务和进展可视,促进价值快速流动;通过产品愿景分析、影响地图,缩短需求研制周期,提升交付质量;通过迭代计划会、评审会、回顾会,使得团队成员达成共识、快速发现问题、快速响应。统一敏捷实践方法,为敏捷运作提供全程指导,促使敏捷项目更规范、更高效。纵向方面,通过需求条目化,使得需求粒度可控、内容更精准;通过流程管理,精简需求交付流程、需求评审流程,使得需求下达更快捷,通过迭代开发管理,使得需求按计划快速交付,并实现敏捷项目全流程管理,通过精简文档产出物,为敏捷团队减负。 通过两年的建设工作,已形成“一套敏捷研发流程、两个成熟度能力模型、三类知识集、四类行动指引”的敏捷研发体系,打通了需求、开发、测试之间的链条,各个阶段更加高效,快速响应业务需求,开发、测试工作有效融合,持续提升研发效能。

随着敏捷研发经验的积累,需求、开发和测试端快速交付的文化已经普及,持续发布增量时,跨部门协调、手动部署等低效率操作成为了价值流的瓶颈。尤其在金融行业,组织结构庞大,职能分工明确,形成了开发测试部门和运维部门的壁垒。大家越来越意识到,对于传统把开发和运营割裂开的做法,不适合现代产品和服务开发的需求。DevOps成为当前软件开发领域关注的热点,它是一种软件开发中的新流程,Dev+Ops顾名思义是将开发和运维的环节进行融合,即打破传统的开发是开发部门,运维是运维部门的壁垒。降低这种隔离带来的成本和浪费,有效提升软件开发效率。 2019年,农行启动了DevOps的探索工作。经过一年多的全力建设,通过工具贯通、流程优化、数据可视、试点验证、规范制定等五大条线,促进DevOps工程在我行的落地实施。同时项目研发过程管理工具化、自动化程度提升,以管理链、研发链、测试链和运维链为主线,贯通相关工具,建成从需求、开发、测试到部署的端到端的持续交付流水线,提升我行项目研发整体交付水平。截至2020年11月,个人网银等6个项目顺利通过DevOps持续交付部分的3级评估,达到了可喜的成果。 根据农行敏捷和DevOps本地化实践经验,敏捷强调从业务源头开始敏捷,进行需求条目拆分,使用用户故事来描述用户渴望得到的功能,在实施过程中,关注团队协作,业务、开发、测试人员密切沟通,快速响应需求,强调迭代运作机制。DevOps强调研发交付工具自动化,分支拉取从需求条目开始,与敏捷一脉相承。同时DevOps注重工具赋能,实现开发测试环境标准化、以及研发、测试、运维一体的持续集成、持续测试、持续发布流程。其中流水线是最核心的工具化实践,农行项目团队根据不同场景设计了不同的流水线等,构建适用团队的CI和CD流程,达到了团队价值输出能力的整体提升。因此,在农行实践过程中,DevOps基于敏捷运作机制,拓展和完善了持续集成和持续发布等流程,提升研发交付自动化能力,两者是互为补充、相辅相成的。 综上,敏捷和 DevOps 是友非敌,两者存在着千丝万缕的联系。敏捷主要解决业务需求和开发测试的隔阂,强调团队协作,快速响应需求,降低开发成本和风险;DevOps主要解决开发测试和运维的壁垒,是敏捷思想在IT部门内部的延续,注重工具赋能,增强反馈回路,缩短反馈时间,整体提升研发效率。敏捷和DevOps本身都不是业务目标,而是激发企业用更好的方法实现业务目标的组织文化,各个企业内部落地敏捷和DevOps不尽然相同,根据自身背景和文化进行适应性调整落地。农行在转型实践中,将Agile和DevOps结合起来运用,达到了需求、研发、测试、运维等端到端的全流程管理,实现了快速响应需求、持续提升整体交付水平的目的。

作者介绍


宋少华,就职于农业银行研发中心项目管理办公室,内部敏捷教练,致力于农行敏捷研发体系的研究与落地实施工作。 2020年11月27日,由云计算开源联盟指导,由高效运维社区和开放运维联盟联合主办的 2020 GOPS 全球运维大会 · 上海站上,隆重发布了 DevOps 标准持续交付部分第九批评估结果,中国农业银行手机存款贷款模块顺利通过由中国信通院开展的《研发运营一体化(DevOps)能力成熟度持续交付3级评估。DevOps 标准共分 5 级,持续交付部分如果能达到 3 级已经是国内领先水准,这代表着中国农业银行在参评项目的持续交付能力达到国内领先水平。这是中国农业银行在 6 月 19 日同时 5 个项目通过持续交付标准评估之后通过的第 6 个项目。

中国农业银行通过 DevOps 标准持续交付部分的 3 级评估的项目,分别是:

  • 信贷中台项目
    
  • 个人网银项目
    
  • 分布式应用互联平台(AIR)项目
    
  • 增值税进项税管理项目
    
  • 金融小店项目
    
  • 手机银行存款贷款业务