传统金融行业DevOps实践
中国银行从DevOps实践到应用性能管理

中国银行从DevOps实践到应用性能管理面对互联网金融汹汹来袭,将服务延伸至支付、资管、交易、融资等金融领域,传统银行加速了以提高用户消费体验为宗旨的数字化进程。
中国银行软件中心在2013年便开始了探索DevOps模式,并成功推出中国银行第一个互联网金融产品——网络通宝。
目录1. 打造敏捷体系 (3)2. 仅有DevOps还不够 (5)1.打造敏捷体系2016 年,中国银行推出“ e中银” 三年规划( 2016- 2018),指出:全面践行“互联网+”行动纲领及国家十三五规划,顺应市场环境与客户需求变迁,把握金融服务本质,开放合作、场景融合、快速创新商业模式,重塑流程、数据洞察、极大提升业务价值,为客户提供随时、随地、随心的全方位金融服务,推动公司、零售、金融市场各条线业务快速增长,构建中国银行特色鲜明的差异化竞争优势,将“e中银”打造成银行业互联网金融领先品牌,推动“做最好的银行”战略目标实现。
作为中国银行信息科技体系的重要组成部分,中国银行软件中心担负着整个集团软件系统与应用的开发、测试、维护管理和实施工作。
因此,建设“e中银”,中国银行软件中心可谓是使命必达。
然而随着各个分中心规模的不断扩大,中国银行内部系统的开发任务也变得愈发艰巨,其中各项金融产品不但越来越复杂,数量也呈快速上升状态,而且更新迭代速度也在不断加快。
同时,产品在开发方式上的多样性,以及来自业界的竞争压力,都促使中国银行急需找到一个强有力的指导方法来应对这一挑战。
于是,中国银行软件中心开始践行DevOps打造敏捷开发和运维体系。
简单说,DevOps是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一个集合。
它是企业为了及时生产软件产品或服务,以满足某个业务目标,对开发与运维之间相互依存关系的一种新的理解。
“e中银三年规划要求我们必须具有并行开发多个互联网金融领域产品的能力和具备多产品线、多批次及多任务生产能力,这需要我们全面建立敏捷开发和运维体系,实现应用的端到端全流程交付,实施DevOps是必然之道。
金融行业DevOps核心实践

智能化运维+云服务化
智能化运维 金融云服务
“神兵“天降:研发管理与DevOps平台
一站式 研发管理解决方案
持续交付 代码管理 APP持续体验
面向互联网金融的
协作空间
测试管理
数据平台
精准测试
接口测试
性能测试
目录
1
2 3 4
金融行业DevOps的前世今生 金融行业DevOps实践典型案例
金融行业DevOps实践情况及效果
2
解决思路
DevOps实践3:自动化精准测试
自动化测试案例 自动化执行 持续验证 精准分析
自动化测试案例 编写
DevOps实践3:自动化精准测试
自动化测试案例 自动化执行 持续验证 精准分析
统计报告
测试执行 系统概况
DevOps实践3:自动化精准测试
自动化测试案例 自动化执行 持续验证 精准分析
标准组件规范
银行实施配置规范 数据库规范
DevOps实践2:复杂系统CI/CD
持续集成 持续部署
统一制品库
DevOps实践2:复杂系统CI/CD
运维自动化
DevOps实践2:复杂系统CI/CD
部署方案
OA网管区 OA区
神兵服务集群 部署机 部署机 Master 部署机 Master ... 编译机 Master 移动端编译机集群 Padis平台 编译机集群 CaaS平台 Nexus仓库 制品仓库 制品仓库
建设工程师文化,追求技术卓越
平安科技人才发展管理委员会
技术族 产品族 市场族
人才 保留 专业 导向 工程师 文化
完善各个专业垂直领域的人才培养体系, 增强专业人才厚度,建立职业荣誉感, 提升核心专业人才留存率 加强公司专业技术导向,与互联网公司通用做法接轨; 增强专业产品和技术架构的积累 推动公司的平台化、产品化 发挥委员会在培训、晋升等方面的应用和影响能力 营造开放、乐于分享、主动创新的氛围 强化技术导向的工程师文化
DevOps实践的案例分析

DevOps实践的案例分析随着信息技术的不断发展,软件开发过程已经从单纯的程序编写转变为了一项复杂的全流程工作。
DevOps(Development and Operations)即是一种将开发和运维自动化整合的解决方案,它能够帮助企业快速推出和发布高质量的软件产品,提高运维效率和用户满意度。
本文将通过案例分析,介绍DevOps实践在软件开发中的应用。
一、简介DevOps作为一种软件业务开发和运营的理念,旨在增加IT服务的业务价值,同时保证快速、可靠的交付。
DevOps采用了一种集成的方法,将开发和运维团队打造成多功能交叉团队,以实现快速、高质量的软件产品开发和持续交付。
二、银行业务系统的DevOps实践一个成熟而稳定的银行业务系统需要完善的安全体系、高效的性能和可靠的数据支持等。
传统的软件开发过程通常分为需求调研、需求分析、设计、编码、测试和运维等环节,各环节之间往往存在着不同的团队或者人员。
这就导致了软件开发中存在较为普遍的问题:交付周期长、协作不够紧密、错误管理不及时等。
银行业务系统的DevOps实践,将不同领域集成到同一个发展团队中,包括QA、开发和运维等多个角色。
在此基础上,DevOps引入了许多可行性工具,例如自动化和实时监测工具,显著加快了开发周期,减少了系统管理的手动操作,保证了系统的整体稳定性。
另外,DevOps还支持持续交付,快速响应客户反馈。
三、在线教育行业的DevOps实践在线教育行业属于一种特殊的IT业务,与传统的教育模式有本质区别,其特点就是线上服务相对来说较稳定需要保证服务的高可用性,教学过程可以便于记录和交流。
在线教育的DevOps实践不同于其他行业,在教师教学控制、学生体验和数据安全管理等方面有着独特的特点。
借助DevOps的工具和流程,开发人员可以更加灵活的响应需求并测试新功能,同时将产品快速推向市场以获取客户反馈。
数据安全管理方面采用了安全漏洞扫描等安全工具,保障产品的安全性;在线培训的实时控制亦可以自动化实现,优化产品的管理能力并降低人力成本。
银行DevOps技术实践之旅

DevOps
开发本地化规约将工具链延伸至开发者本地,以插 件形式将代码静态扫描、平台层实 现等嵌入代码编写阶段。
Thanks
信息共享持续改进学习组织& 文化 DevOps
双速流程融合互相驱动持续演进
快 速
容器或混合部署
精益交付
传 统
常规发布
传统 基础设施
依托于容器适当简化的流程基于开源社区版软件统一全局的工具浮现式设计自主研发
现存多种软件并存基于现有流程进行集成成熟工具与流程体系的深度增 强按照传统发布管理策略进行部署
组织创新探索-敏捷化
…
待办项目
待办任务
…
…
周 任 务 看 板
CW01
周 任 务 看 板
CWXX
目录
机遇与挑战
1
背景与目标
2
方案和实现
3
计划和展望
4
未来重点领域 1/3
分支管理与集成规范开发/测试/运维综合考虑,尝试基于Git Flow制定适合我行的通用分支 管理规范,需适应项目制下并行项目不同的交付周期挑战;自动化分支管理平台的实现,任务和分支关联的自动化,规避配置管理 员人工操作
自动化测试和分层测试体系测试体系的融入和集成,包括自动化测试体系的扩展, 分层测试理念嵌入DevOps流程
需求条目化需求统一规范化管理,对需求进行标准条目化,体现分析,与工 程、测试等维度的映射、可追溯;
未来重点领域 2/3
持续集成提升持续集成能力,将集成阶段步骤嵌入流程封装执行。包括代码静态 扫描,代码安全扫描,SQL评审,统一构建,持续测试部署等方面。
提升空间不同条线之间的融通性提升软件交付效率和质量的进一步提升自动化、持续集成覆盖度的提高线下沟通,时间成本较高重视系统的功能满足,风险控制、弹性扩展、 服务治理等非功能需求推进标准化
大型金融互联网产品Devops实践

大型金融互联网产品Devops实践在当今数字化高速发展的时代,金融行业与互联网的融合日益紧密。
大型金融互联网产品的开发和运维面临着前所未有的挑战与机遇。
Devops(开发运维一体化)作为一种创新的理念和实践方法,正逐渐成为金融互联网产品成功的关键因素之一。
对于大型金融互联网产品而言,其复杂性和对稳定性、安全性的高要求是不言而喻的。
传统的开发和运维分离模式往往导致效率低下、沟通不畅、问题解决周期长等问题。
Devops 的出现,旨在打破开发和运维之间的壁垒,实现更高效的协作和更快的价值交付。
首先,Devops 强调文化和理念的转变。
在大型金融机构中,开发团队和运维团队往往有着不同的目标和优先级。
开发团队注重功能的实现和创新,而运维团队则更关注系统的稳定性和安全性。
Devops 倡导一种共同的目标和责任意识,让两个团队明白他们都是为了向客户提供高质量的金融服务而努力。
这种文化的转变并非一蹴而就,需要通过培训、沟通和共同的项目实践来逐步实现。
在流程方面,Devops 推动了开发、测试、部署和运维的自动化。
以往,手动的流程不仅容易出错,而且耗费大量的时间和人力。
通过引入自动化工具和技术,如持续集成/持续部署(CI/CD)管道,可以实现代码的自动编译、测试、部署,大大缩短了产品的上线时间。
例如,当开发人员提交代码后,自动化工具会自动触发一系列的测试,包括单元测试、集成测试、性能测试等。
只有通过所有测试的代码,才能够被部署到生产环境。
同时,基础设施即代码(Infrastructure as Code)的理念也在大型金融互联网产品的 Devops 实践中发挥了重要作用。
以往,基础设施的配置和管理往往是通过手动操作完成的,不仅效率低下,而且难以保证一致性和可重复性。
通过将基础设施的配置以代码的形式进行管理,可以实现基础设施的快速创建、更新和销毁,提高了资源的利用效率和灵活性。
监控和反馈机制是 Devops 实践中不可或缺的一部分。
金融行业云效DevOps解决方案

ABCD
GE
FN
I H
J
KM LO
主干合并
7 发布至预发环境
6
生
自 动
产
化 回
环
预8 境
归
发
环
整
手
境
体
工
交
验 证
付
DB
Cache
开源 + 自建
可快速落地的一站式平台
Jenkins
痛点->落地成本高
自动化测试门槛高,需要企业配备测试开发人才 需求和实际的开发过程无法链接,端到端的价值难以建 立 研发成本过高,相关专家招聘困难 难以承载企业研发流程、研发模式,推广困难
应用创建
60 50 40 30 20 10 0
2018.5 2018.6 2018.7 2018.8 2018.9 2018.10 2018.11 2018.12 2019.1
上线次数(全局集成)
800 700 600 500 400 300 200 100
0 2018.5 2018.6 2018.7 2018.8 2018.9 2018.10 2018.11 2018.12 2019.1
C.branch D.branch E.branch F.branch I.Branch
2
开发 部署 自测
X开发组服务器 X开发组服务器 X开发组服务器 X开发组服务器 X开发组服务器 X开发组服务器
小需求1
测试环境
AB
小需求2 测试环境
B
小需求3 测试环境
E
项目1测试环境Hale Waihona Puke ABCDEF
项目2测试环境
金融业
稳健保守 错误零容忍 分割的团队建制 封闭
金融行业 devops 技术运营指南 标准
金融行业 devops 技术运营指南标准金融行业是一个高度复杂和竞争激烈的行业,随着金融科技的快速发展,金融机构需要不断提升技术运营水平以保持竞争力。
而DevOps作为一种技术运营的最佳实践,已经被越来越多的金融机构所采纳。
本文将为您介绍金融行业DevOps技术运营的指南标准。
首先,金融行业在引入DevOps技术运营时需要考虑的首要问题是安全性。
金融机构处理的是大量的敏感信息和资金,安全性是绝对不能忽视的因素。
因此,在实施DevOps时,金融机构需要确保代码的安全性,包括代码审查、安全测试、权限管理等方面的控制。
此外,金融机构还需要建立完善的安全监控系统,及时发现并解决安全漏洞。
其次,金融行业的DevOps技术运营需要注重高可用性和灾备恢复。
金融交易是24小时不间断的,任何停机都可能导致严重的损失。
因此,金融机构在构建DevOps流程时需要考虑如何实现高可用性,包括自动化部署、自动化测试、自动化监控等方面的设计。
同时,金融机构还需要建立完善的灾备恢复机制,确保在灾难发生时能够迅速恢复业务。
此外,金融行业的DevOps技术运营还需要注重数据管理和合规性。
金融机构处理的是海量的数据,如何管理这些数据成为了一个重要的问题。
金融机构需要建立数据的备份和恢复机制,确保数据的安全性和完整性。
同时,金融机构还需要考虑合规性的要求,包括金融监管机构的规定和法律法规的要求,确保DevOps的实施符合相关的法律法规。
最后,金融行业的DevOps技术运营需要建立一套完善的指标体系,用于评估技术运营的效果和改进的空间。
金融机构可以通过制定关键绩效指标(KPI)和关键成功指标(KSI)来衡量技术运营的效果,包括代码部署频率、故障率、恢复时间等指标。
金融机构还可以通过持续改进的方式不断优化DevOps流程,提高技术运营的效率和质量。
总的来说,金融行业的DevOps技术运营需要注重安全性、高可用性、灾备恢复、数据管理和合规性,同时建立一套完善的指标体系用于评估和改进。
金融领域的DevOps最佳实践
金融领域的DevOps最佳实践DevOps最近成为了软件行业的一个热门话题。
虽然只是新的观念和流程方法,但是做好它实现了研发和生产环节的协同和优化,使得软件的交付和维护更加快捷高效。
在金融领域,特别是银行业,随着金融科技的兴起和金融制度改革的深入,金融机构需要更加注重数字化生产和服务,降低成本并提高效率。
在这样的背景下,DevOps不断给出了越来越多的最佳实践,服务于金融机构业务。
一、自动化测试在软件开发中,为了防止bug的产生和生产环节被迫花费大量的时间去扫描和修正bug,我们采用了自动化测试的方法。
在金融领域,软件测试必不可少,而Automated Testing也成为了一个快速验证是否达成期望结果的方法。
开发时如果可以将测试自动化并且依赖集成,可以有效的加速软件部署的过程,避免因为错误而延误对生产环节的交付。
金融领域的风险控制和信息流都必须经过一系列验证,采用先进的自动测试技术使金融业信息处理更快速和高效。
二、版本控制金融业由于其敏感性,要求更加严格的代码版本控制。
始终在一个兼容的代码历史版本中工作可以遵循更好的开发规范,可以降低代码的丢失和错误的风险,带来更好的一致性或团队之间的协调。
GitHub是一个众所应知的版本控制器,并且越来越多的金融业项目使用 Git 版本控制系统进行管理。
三、自动化部署为了更快的交付,加快随系统的速度将变化推到生产环节,DevOps需要采取自动化部署技术。
使用自动化工具或脚本,可以避免手动操作的人工失误,借助Pipeline构建部署流程,可以提供对应的测试用例和要求,既可以充分保证了生产环节的效率,同时也可以提供一个生产环节的可靠品质。
Ansible是一种自动化工具,很容易实施复杂的部署和配置管理任务。
四、合作文档在金融领域,合作贯穿开发、测试和生产环节。
多个部门和各个团队之间的数据共享、交还、反馈都是较为复杂的,并且经常需要时间。
一些基于互联网的服务,如员工协作工具Slack或Microsoft Teams,可以定期和高效地通信、会面或分享文件,因此检讨和反馈更加及时和规范。
中国银行从DevOps实践到应用性能管理
中国银行从DevOps实践到应用性能管理面对互联网金融汹汹来袭,将服务延伸至支付、资管、交易、融资等金融领域,传统银行加速了以提高用户消费体验为宗旨的数字化进程。
中国银行软件中心在2013年便开始了探索DevOps模式,并成功推出中国银行第一个互联网金融产品——网络通宝。
目录1. 打造敏捷体系 (3)2. 仅有DevOps还不够 (5)1.打造敏捷体系2016 年,中国银行推出“ e中银” 三年规划( 2016- 2018),指出:全面践行“互联网+”行动纲领及国家十三五规划,顺应市场环境与客户需求变迁,把握金融服务本质,开放合作、场景融合、快速创新商业模式,重塑流程、数据洞察、极大提升业务价值,为客户提供随时、随地、随心的全方位金融服务,推动公司、零售、金融市场各条线业务快速增长,构建中国银行特色鲜明的差异化竞争优势,将“e中银”打造成银行业互联网金融领先品牌,推动“做最好的银行”战略目标实现。
作为中国银行信息科技体系的重要组成部分,中国银行软件中心担负着整个集团软件系统与应用的开发、测试、维护管理和实施工作。
因此,建设“e中银”,中国银行软件中心可谓是使命必达。
然而随着各个分中心规模的不断扩大,中国银行内部系统的开发任务也变得愈发艰巨,其中各项金融产品不但越来越复杂,数量也呈快速上升状态,而且更新迭代速度也在不断加快。
同时,产品在开发方式上的多样性,以及来自业界的竞争压力,都促使中国银行急需找到一个强有力的指导方法来应对这一挑战。
于是,中国银行软件中心开始践行DevOps打造敏捷开发和运维体系。
简单说,DevOps是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一个集合。
它是企业为了及时生产软件产品或服务,以满足某个业务目标,对开发与运维之间相互依存关系的一种新的理解。
“e中银三年规划要求我们必须具有并行开发多个互联网金融领域产品的能力和具备多产品线、多批次及多任务生产能力,这需要我们全面建立敏捷开发和运维体系,实现应用的端到端全流程交付,实施DevOps是必然之道。
devops 金融案例
devops 金融案例
DevOps在金融行业的应用案例如下:
某大型金融企业,拥有500+各类项目和1000+开发人员,技术栈多种多样,包括JAVA、NPM、Python、Scala、GO等。
由于历史原因,环境存在差异,部分项目有SIT、UAT,部分项目只有SIT。
制品提交生产的过程由各
个项目组负责,不统一、标准化难落地。
为了解决这些问题,该企业实施了DevOps。
实施后,一键触发无需专人,一次交付大约需要30分钟,不会有人为误操作,实现了标准化流水线。
单
次交付时间能够减少小时左右,交付效率大约提高6倍。
此外,工商银行也实施了DevOps。
面对新兴科技的迅猛发展、同业竞争加剧、业务需求持续攀升等挑战,工商银行从2018年启动DevOps转型的研究和探索,不断深化自身对DevOps的理念认知。
经过近4年的实践,工
商银行结合实际情况制定了DevOps统一规划和实施标准,初步建立涵盖
需求、研发、投产、生产运营全生命周期的研发运营一体化机制,需求研发周期较实施前缩短40%,月均发布频度提升70%,投产效率提升60%,有效提高了研发供给能力,支撑工商银行高质量发展。
以上案例仅供参考,建议咨询资深金融业从业者以获取更多详细信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
技术创新,变革未来
背景介绍
本土最大金融保险集团,总资产1000亿美元 旗下拥有银行、一般保险、寿险等业务 线和20多个市场品牌
随着业务发展,收购了很多同业公司
业务驱动,IT部门支撑
那年,它的困境
转型之路
产品团队持续交付流水线
大规模持续交付仍需解决的问题
如何兼顾稳定性与吞吐量 - 传统的运维流程(发布审批,事件支
持等)和方法(手动操作,夜间部署)已经越来越难以适应当今产品不断 缩短的变更周期,同时又要保障系统运行稳定性的要求
如何建立关注业务和用户价值的文化 - 特性发布后用户的反馈、
抱怨和给业务实际带来的收益反馈到业务和开发这个过程有大量信息丢失, 速度太慢;难以真正对特性所带来的价值进行验证,并深切体会到产品对
• 提供中心式的调度平台 • 提供构建包调度中心 • 提供依赖库管理
• 创建Slave接入调度平台 • 配置持续交付管道
监控与运营平台
• 统一的系统级监控平台 • 自主实现在应用层对产品的 监控 • 为通用性应用层监控和运 营分析提供现成工具和方 • 自主实现对用户和业务指标 法 进行数据收集和分析的工具 和度量指标 • 自主选择最合适工具建立 Dashboard展示数据
用户的影响
如何控制IT系统不断增长的复杂性 - 业务,开发,运维分段式
的交付模式使得前端不会充分地考虑堆砌的功能和设计决策给整个IT系统
不断引入的熵(复杂度),导致IT运维成本越来越高,反过来导致长期的
交付变得越来越困难
一个典型的例子
什么是DevOps
DevOps DevOps HR DevOps DevOps DevOps
现有基础设施对接公有云
按优先级迁移应用程序
应用程序进行Cloud Native化
本地数据库替换为云上数据库; 本地消息队列替换为云上的消息队列; 非生产环境操作系统替换为免费发行版;
公有云里的私有云
公有云迁移Matrix
高 App1 App3
App2 业 务 价 值 App4 App5
基础设施即代码-一切都纳入版本管理
! ! !
!
! ! !
第四步: 建立平台化服务
平台
统一日志管理平 台
DevOps团队统一提供 产品团队自主使用
• 日志管理接口 • 产品中简历符合规范的日志 • 高可用的日志查询引擎 • 接入日志管理平台 • 与企业内部其它系统集成 • 定制日志管理需求
持续交付平台
Jenkins/Puppet..)
“DevOps
——-WikiPedia
DevOps落地实践
第一步: 引入动态基础设施
公有云彻底解放生产力
公有云迁移策略
设计公有云架构
按workspace建立业务线资源隔离; 不同业务线分为Non-prod,prod两套workspace; 公有云认证方式与企业现有SSO的集成; 公有云与现有基础设施的直连; 公有云与现有基础设施的VPN; 内部DNS服务的互通; 先迁移技术风险低、业务价值高的应用程序; 迁移时尽量不涉及对应用程序架构的变更, 所有服务仍然使用原有架构;
产ቤተ መጻሕፍቲ ባይዱ团队1
产品团队2 产品团队…
DevOps团队
DevOps团队
DevOps团队
DevOps Tribe
基础设施团队
DevOps团队工作职责
建立和维护持续交付生态圈
实验和实践在灾备方案/部署方案…
提升生产力/节省基础设施开销
向开发人员赋能
第三步:建立基础设施即代码的实践
基础设施即代码-使用DSL描述环境
App8
App7 App8 App6
低 高
低
技术风险
第二步:调整部门组织结构-建立自服务机制
DEVOPS团队承上启下
既了解运维的难点,也清楚产品团队的痛点
任何服务都提供API或命令行接口
向产品团队赋能
团队结构图
业务线A 业务线B 业务线…
产品团队1
产品团队2 产品团队…
产品团队1
产品团队2 产品团队…
建立平台化服务-准则
总结-DEVOPS落地的核心要素
DEVOPS并不是银弹
考虑DevOps落地的五个方面:
人 准则 实践
产品
流程