回到主页

UWinCase | 某民营银行DevOps平台建设案例

· 公司动态

前言

Y银行是某家民营银行,近年来,Y银行在大数据、云计算、人工智能为代表的新兴技术影响下,数字化建设渗透其经营和发展的方方面面,从经营理念、业务模式、管理思维等诸多方面催生和推动开放银行新业态发展。

银行业作为面向金融客户服务的强规模效应行业,已经掀起了新一轮信息化建设热潮,打造“智慧型金融”成为各金融机构的重要目标,但实际落地过程中,很多银行业务系统运维采用的还是人工运维和脚本化运维的模式,这种运维管理模式面临着一系列的问题和挑战,生产运营部门疲惫不堪。

建设背景

随着Y银行业务增长速度越来越快,业务系统逐渐增多,相应的各系统的持续集成、持续发布、日常巡检、配置修改、环境部署等常规工作量亦增长迅猛;应用迭代频率较高,造成大量的人力投入到重复性、流程性的工作当中,并且大量重复性的人为操作风险性、延迟性较高。为提高IT运维效率、提升IT运维管理整体水平、改善运维管理流程、降低人为操作风险。

  1. 资源数据碎片化:信息数据都分散在各自系统中,数据获取需通过不同渠道满足,容易造成系统集成工作量大,出现故障后排查困难的现象。
  2. 数据准确性得不到保证:目前的IT资源信息主要依靠人工维护,维护工作量大,且数据更新不及时,准确性难以得到保证。
  3. 自动化程度不够:只有部分应用用上jenkins,依旧有一部分应用采用人工部署的方式,且程序包命名及管理没有统一规范。
  4. 数据唯一性问题:数据有多个维护入口,未进行数据的比对和调和,数据一致性无法得到保证。

对银行业而言,DevOps平台建设迫在眉睫。

Y银行在平台建设初期,便确认了利用优维DevOps平台来提高业务响应效率,去除人工操作,支撑传统业务架构并兼容云原生容器架构的研发支持,将DevOps贯彻到需求、设计、研发、测试、发布、度量等软件生产的全生命周期的建设支撑。

优维DevOps整体解决方案

优维DevOps整体解决方案,该方案融合优维对传统企业客户运维场景和痛点的深刻理解,基于优维EasyOps的CI/CD和强大的平台能力,深化DevOps开发运维一体化的应用,帮助企业落地从开发到测试,再到运维自动化、场景化,同时还致力于支撑敏捷团队的精益和协同,助力企业实现快速、稳定、持续的业务交付。

建设内容

  • 应用CMDB

应用CMDB在运维系统中扮演着“基石”的角色:应用业务的构建维护、自助模型设计及资产信息的数据维护,为应用提供了各种运维场景的配置数据服务。

  • CI实现思路
broken image

用户驱动触发:用户登陆开发运维自动化平台进行触发CI流水线。

定时触发:设置定时任务,触发CI流水线。

定时轮询触发:设置定时轮询任务对分支进行扫描,若分支有变动则触发CI流水线。

Push事件触发:设置定时轮询任务对分支进行扫描,若分支有变动则触发CI流水线。

Tag事件触发:用户在版本管理服务器(gitlab)中打tag,触发CI流水线。

  • CD实现思路
broken image

CD流水线流程:开发人员登录开发运维自动化平台,由开发人员或测试人员在开发运维自动化平台选择发布策略触发流水线,由测试环境agent从制品库拉取程序包及配置包,部署完成后通过接口通知测试平台,测试平台触发接口测试,测试完成后将测试结果推送至开发运维自动化平台;开发运维自动化平台调用邮件服务器接口,将此次结果发送至开发人员、测试人员。

  • DevOps全流程梳理
broken image

各测试环境:通过创建不同环境流水线,触发相应的CI策略及CD部署策略对制品库中的程序包及配置包进行流水线式自动化部署。

生产环境:ITIL变更申请单审批完成后,由ECC值班人员手动触发UAT环境制品转生产环境制品库功能,再由应用运维人员触发生产环境应用部署策略,进行生产环境部署。(首次上线时,需研发人员与应用运维人员相互配合应用部署)

  • DevOps制品库架构设置
broken image

1. 项目现状为图中虚线中架构,也为一期实现目标。目前是北京和长春各有生产环境,测试中心统一在长春,后面北京可能规划搭建测试中心。

2. 图中规划为北京和长春的测试环境制品库相互独立,当制品测试完成后,可通过工具同步对应的制品到生产环境的制品库中。

3. 生产环境的平台为一套cmdb,两制品库,两地制品库保持一致

4. 长春生产制品库到北京生产制品库同步过程,若没同步完,北京生存环境的发布会报错,在制品库差异包对比时报错(带测试验证)。不会发布到生产环境上,不会影响业务。

  • EasyOps流水线管理

1. Pipeline as code

EasyOps Pipeline 会遵循 Pipeline As Code 的管理方式,使用配置文件定义流水线,并且把流水线存放到 SCM 项目里面进行管理,提供:

  • 支持多分支流水线
  • 支持流水线动态随着分支和代码版本进行变化
  • 提供代码配置和界面配置互相兼容的模式,在多种角色参与中依然可以提供丰富的配置选择 

2. 消费CMDB数据

broken image
  • EasyOps平台制品版本控制

1. 制品库实现构建产物分级分版本管理

broken image

2. 制品库实现制品包分级分版本管理

broken image

3. 结合CMDB管理应用部署基础数据。包括应用包含哪些制品,每个制品的安装路径;应用包含哪些配置,每个配置的内容等。

broken image

4. 部署策略灵活定义,选择相应环境的配置包及版本部署至相应环境。

broken image
  • EasyOps平台的版本可追溯性管理

通过Easyops平台在持续交付的过程中,所有的变更过程均可查证,可以从软件的当前版本追溯到软件的初始版本,并可以实现任意版本的回滚。

broken image
broken image
  • EasyOps平台的环境管理

Easyops平台内置了4种环境类型:开发,测试,预发布,生产。制品可以需要在这4种环境类型扭转。且持续集成生产的制品,需要在这4种环境中,通过开发,测试,预发布,生产的环境扭转,才能最终发布。

开发在开发环境中做持续集成的构建,并做单元测试,生成开发的制品。

测试在测试环境中做接口测试和集成测试,生成测试的制品,测试通过的制品会进阶为预发布的制品。

预发布的制品可以部署到预发布环境(灰度部署,验证制品的可部署性),部署成功之后,制品进阶为生产制品。

生产制品才能最终发布到生产环境。

broken image
  • 云原生管理

除了上述的项目外,我们接下来将计划对容器化CI、多云对接K8S进行实施落地:

容器化CI:持续集成服务拥抱云原生,构建服务运行于容器中,可使用K8S搭建编译集群。

多云对接K8S:应用服务可任意选用国内云服务提供商提供的K8S集群,亦或是本地集群进行服务部署。

建设成果

银行的数字化转型任重道远,随着Y银行DevOps解决方案的部署和实施,Y银行IT运维对IT系统的管理能力也由最初完全依靠技术人员的个人能力转变为流程化、标准化、自动化、智能化的管理。

  • 建立统一的配置管理平台(应用CMDB),平台纳管总计业务数量10+纳入的业务主机数量1000+台

  • 项目流水线完成业务上线发布500+次,发布效率提升15倍,发布成功率达到了100%,大大缩短了运维上线响应窗口,降低了业务迭代的风险。

后续:助力DevOps标准评级

自从DevOps开始在Y银行实践,优维助力Y银行对照DevOps要求的49项能力指标,明确了接下来将要持续优化落地的方向。

从配置管理、构建与持续集成、测试管理、部署与发布管理、环境管理、数据管理、度量与反馈,49项能力指标,涵盖了产品研发到产品上线流程,Y银行进行自评、评估改进、逐项改进优化。