在碰撞中成长 - 北京银行的DevOps实践之路

news/2025/3/13 23:40:42/

640?wx_fmt=png

201810/27日,在上海召开的微软年度最大规模的技术盛会微软2018技术暨生态大会上,北京银行渠道系统负责人&敏捷团队负责人周兵女士和大家一起分享了北京银行的DevOps 实践转型经验,得到了大会听众的热烈评价和共鸣,会后众多金融和互联网行业的客户意犹未尽,还和周兵女士进一步探讨DevOps转型的经验。



640?wx_fmt=png

嘉宾简介


640?wx_fmt=png

周兵- 北京银行渠道系统负责人&敏捷团队负责人


640?wx_fmt=png

演讲实录


下面是我们现场收集的周兵女士演讲内容,快速整理记录如下,弥补大家不能到现场交流探讨的遗憾;不过还是建议大家下次来现场哦,现场气氛真的是热烈。

 

微软Azure DevOps在北京银行的实践

 

大家好,非常荣幸能够在微软技术暨生态大会上和大家分享北京银行进行敏捷与DevOps转型的实践经历和经验。


640?wx_fmt=png

 

北京银行成立于1996年,是一家新型的股份制商业银行,拥有近620家分支机构,价值排名中国区域性发展银行首位,一级资本排名全球千家大银行63位,连续五年跻身全球银行业百强。近两年,北京银行积极探索数字化转型,并以打造金融科技型银行作为全行转型突破口。其中,提升敏捷服务能力,及时响应市场需求,是转型过程中最迫切的需求之一。在此背景下,我行开启敏捷转型探索之路,并于20176月,引入微软研发管理平台Azure DevOps Server,作为敏捷落地工具。

 

银行做敏捷,与互联网行业做敏捷不同:首先,银行业是强监管、重流程的行业,所以,银行做敏捷,要求的是在稳定运行、杜绝风险的基础之上的敏捷。第二,银行系统多,有渠道类、账务类、支付类、数据类、总线类系统,系统类型之间所适应的模式也不同,所以,银行做敏捷,要求的是稳态与敏态共存的敏捷。

 

在试点之初,我们也存在着诸多困惑:北京银行与微软Azure DevOps Server如何进行基因适配?利用Azure DevOps Server推行敏捷是否有统一的范式?我们的转变应该是一步到位还是渐进式改革?这些问题随着我们的探索与实践逐渐清晰,一起来看看我们的实践之路。

 

敏捷初衷——我们为何转变?

 

在传统的工作流程中,存在着诸多的痛点,比如:


  1. 项目多,投产次数多,其中以手机银行为代表的渠道类系统最为突出。

  2. 环境多,版本管理较复杂,其中以ESB为代表的总线型系统最为突出。

  3. 项目流程繁琐,一个项目从立项到投产,大概需要15个环节,每个环节有相应的文档要求,整个过程需要提交多个文档,且需要在多种不同的系统中进行操作。

 

总体上,存在系统之间相对独立,形成信息孤岛的问题,很多流程仍依赖于线下沟通和手工操作,使得我们难以用有限的开发资源,更好地满足日益增多的业务需求和日益增强的监管要求。


640?wx_fmt=png


因此,我们希望能有一套平台,对项目流程进行全生命周期的管理,以实现有效的协作研发:


-      针对项目多,投产次数多的现状,实现自动化集成部署的流水线;

-      针对环境多,版本管理较复杂的现状,实现清晰灵活、自动化的版本管理;

-      针对项目流程繁琐、文档多、系统多的现状,实现开发流程的统一化及项目管理的精细化。

 

而微软的TFSTeam Foundation Server,现已更名为Azure DevOps Server)正是这样一套平台,集项目管理、版本管理、持续集成、持续发布和测试管理为一体,其中,项目管理和测试管理是项目维度的,版本管理、持续集成、持续发布是系统维度的。我们通过引入TFS这一有力工具,探索实现对项目的全生命周期管理和基于敏捷与DevOps的协作研发机制。


640?wx_fmt=png

 

基因适配——我们在碰撞中成长

 

我们选取了不同类型的系统团队进行试点,在实际试用过程中,遇到多种困难,我们归结为两大碰撞:一是TFS理想化的全生命周期管理与实际项目过程中错综复杂、系统多样化的种种现实的碰撞;二是TFS基于敏捷、设计灵活的使用方式与实际项目过程中期望简洁、并与现有流程完美契合的碰撞。


640?wx_fmt=png

 

具体来说有三个问题:

 

-      项目管理:如何简便、清晰地区分项目维度与系统维度的交叉?

-      版本管理:如何做好多项目并行、投产时间不定的版本管理?

-      测试管理:如何在测试管理阶段做到既实用又满足监管要求?

 

两大碰撞的根本原因,是TFS基于敏捷迭代、强调协作的设计理念与银行强监管、重流程的工作理念之间的碰撞。试用过程是通过发现问题、解决问题、探索方案,分析定制化可行性等措施,着力解决两大碰撞的过程,是在碰撞中成长,通过基因适配,探索北京银行基于TFS的最佳实践的过程。

 

640?wx_fmt=png

 

第一:项目管理

 

首先,关于项目维度与系统维度的交叉,我们在TFS中建立“项目管理”的团队项目,自动从行内项目管理系统同步需求,同时,建立全行系统清单,每一个系统在TFS中为一个团队项目,两者通过需求进行关联,形成清晰灵活、满足各个维度管理要求的规范流程。


640?wx_fmt=png

640?wx_fmt=png

 

第二:版本管理

 

关于版本管理,我们直接选用GIT分支型的版本管理,并按照即有版本管理要求,划分为开发库、受控库和产品库,分别对应开发流程、准生产流程和投产流程,每一个阶段都以项目映射分支的方式进行管理。并且向前衔接需求,向后衔接测试,打通计划与交付,形成部署流水线。


640?wx_fmt=png

 

第三:测试管理

 

关于测试管理,我们沿用了已有测试管理系统进行测试计划、测试案例、测试报告的管理,同时与TFS进行打通,将缺陷流转至TFS,保证开发人员可以在TFS中专注于需求开发和缺陷解决两个关键任务。

  

实践总结——我们的特色之路

 

北京银行基于TFS的敏捷实践,有以下几个特色点:

 

1. 稳态与敏态共存的双模IT

 

TFS敏捷实践是在我行树立移动优先战略的背景之下开展的,我们以移动为触点拥抱互联网,以移动为试点实践新模式,以移动为焦点不断发现问题改进流程。在这个过程中,以手机银行为代表的移动端应用处于敏态,实现了每周投产,传统的中后台系统处于稳态,仍保持双周投产。此外,稳态还代表了我们在践行敏捷的同时,保持原有流程不发生大的变化,兼顾效率与风险,让敏捷基因与银行重流程、强监管的基因进行了很好的适配。


640?wx_fmt=png

 

2. 拥抱互联网兼具风险意识

 

我们率先采用了互联网特色的GIT分支型管理,替代传统版本管理,并设计符合监管要求的开发库、受控库、产品库的分支管理模式。同时,在实践过程中,我们对版本的全量发布和增量发布进行了审慎、全面的考量,我们项目组研发了增量发布插件,支持全量编译、增量发布的模式,作为对全量发布的一种补充模式,以更好地把控投产风险。


640?wx_fmt=png

参考:

上图中提到的 Pull Request Diff Copy是 leansoftX.com 团队与北京银行合作开发的,公众号中相关文章如下。

  • 使用TFS CI/CD 完成 VSTS 插件自动化部署和发布

  • 绑定Git Pull Request和部署目标环境

如果需要安装此插件,请扫描上图中的二维码


3. 流程创新以实现自动化管理

 

我们组建的流程改进小组主动创新,借助TFS强大的功能,设计实现了多个自动化管理流程,比如:实现自动的代码安全扫描与加固,实现自动流转的准生产环境审批流程,实现项目文档的自动化检查,实现环境问题的自动跟踪等,通过透明化、自动化的管理,实现工作效率的大幅提升。


640?wx_fmt=png

 

总结

 

回首实践之路,北京银行建立了一体化工具实现全流程串接,通过条目化管理实现管理粒度细化,通过数据集中实现工作即监控,通过灵活的版本管理打通计划与交付,通过自动化检查实现更有效的质量管理让北京银行的研发管理更加统一协作、数据集中、流程规范,配置灵活和自动高效。我们还将覆盖更多角色、覆盖更多场景、进行更深度实践,沿着敏捷与DevOps之路继续前行,探索商业银行的敏捷转型最佳实践。


640?wx_fmt=png

 

备注:

 

TFS 全称是Team Foundation Server 是微软部署在企业本地的DevOps 工具链平台;其在2019版本将更名为Azure DevOps Server. 所以在本文中Azure DevOps Server TFS 交替出现。


640 请扫描文末的二维码,报名加入【DevOps+LIVE直播分享群】,即可获得本文PPT的下载地址。


相关文章


  • 一种适用于大规模应用系统双模研发的GIT分支模型(下篇)

  • 一种适用于大规模应用系统双模研发的GIT分支模型(上篇)

  • 微软改名部门又一力作:VSTS改名为 Azure DevOps

  • DevOpsDay回顾: 传统金融业如何挑战互联网

  • 如何选择适合自己的Team Foundation Server部署方案

  • 来自PMO的反击

  • “五型五秀”: 满眼生机转化钧,天工人巧日争新 ——C3“全场景配置管理+持续集成”探索实践之路

  • 【过程瞭望】从理论到实践,平台部敏捷践行落地

  • “看板”-一种敏捷思想的最佳实践


640?wx_fmt=gif


DevOps+LIVE直播

基于Azure DevOps的容器化流水线搭建


本次技术大会我们还完成了 Azure DevOps Server 的动手实验,但是因为实验时间有限,很多小伙伴都没有能够完成整个实验。因此,我们将邀请leansoftX.com研发总监周文洋为我们通过DevOps+LIVE直播为大家再做一次分享。


直播时间

2018年10月31日 晚8点30分


报名方式

请加【DevOps社区运营助手】微信,发送:直播报名 即可拉入直播分享群。


640?wx_fmt=png


640?wx_fmt=gif


大波福利来袭


参与DevOps+LIVE的小伙伴将有机会获得11月2日在深圳举办的DevOpsDays活动免费门票一张,我们这次将送出20张免费门票。


640?wx_fmt=png


参与啊DevOps+LIVE直播的小伙伴也将获得Azure DevOps Server环境的免费使用权,试用期限为5天。


 

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg



http://www.ppmy.cn/news/897354.html

相关文章

自适应巡航 自动泊车 车道偏离 碰撞预警 自动驾驶之辅助驾驶技术简介

【转载】智车科技 7月21日 根据工业和信息化部、公安部、交通运输部等三部委共同发布的《智能网联汽车道路测试管理规范(试行)》,自动驾驶汽车是指搭载先进的车载传感器、控制器、执行器等装置,并融合现代通信与网络技术&#xff…

安全科普:密码学之碰撞攻击

转载自FreeBuf.COM] 前言 密码学贯穿于网络信息安全整个过程,在解决信息安全的机密性保护、可鉴别性、完整性保护和信息抗抵赖等方面发挥着极其重要的作用,可以毫不夸张地说“对密码学或密码技术一无所知的人是不可能从技术层面上完全理解信息安全的&am…

urv中保研碰撞测试结果_经撞=安全?中保研碰撞测试结果告诉我们:不一定!|乜都知...

耐撞的车反而不安全? 继上汽大众帕萨特后,中保研又陆续公布了几款新车的碰撞测试报告。包括有长安2020款CS75 PLUS,一汽丰田2019款卡罗拉,上汽荣威2019款RX5 MAX、JEEP大指挥官等车型。 长安2020款CS75 PLUS在C-IASI碰撞测试中,车内乘员安全指数获G评价,耐撞性与维修经济…

JSON数据交互格式

一,json数据类型 J SON: JavaScript 对象表示法( JavaScript Object Notation) 。是一种轻量级的数据交换格式。 它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式, 但是也使用了类似于C语言家族的习惯…

urv中保研碰撞测试结果_深度解读中保研碰撞测试结果,多款热销车竟获“差评”...

天籁是这批测试车型中成绩最好的一款车型,拿到了三项优秀和一项一般的评级。其中车内乘员安全指数、车外新人安全指数和车辆辅助安全指数都拿到了G(优秀)的评级。 获得一般的则是耐撞性与维修经济性指数,由于天籁搭载高度可调节的LED大灯,维修成本较高。不过“M”的评价已经…

uninty3d之发生碰撞事件和触发事件条件

总结:要发生碰撞事件(双方都能收到) 1 去碰撞的物体包括刚体和碰撞体 2 被撞的物体包括碰撞体 要发生触发事件(双方都能收到) 1 去碰撞的物体包括刚体和碰撞体,被碰的物体包含碰撞体即可 2 去碰撞的物体或…

深夜火器内测群群聊小记之HOST碰撞

在2021年4月29日晚,群里的师傅们集思广益,又对host碰撞技术进行了一波激烈讨论。本文主要对群聊内容进行整理和扩充。 0x01 什么host碰撞呢? 顾名思义,通过对IP 和 域名 碰撞匹配,访问到绑定host才能访问的系统。 0x…

【创作纪念日】四周年创作纪念日

前言 大家好,我是你们熟悉的微枫Micromaple,今天收到私信,突然发现,我来到CSDN已经4年多了,距离发布第一篇博客已经4年整了。正式规划性的写博客,是在今年6月底开始的,当时啥也不懂&#xff0c…