分享

基于云原生的DevOps体系全栈信创化

Jay 发表于 2023-7-20 09:07:00 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 0 277
1 项目概述1.1 信创产品清单
序号
产品类型
品牌+型号
1
服务器
参照信创PaaS容器云平台
2
操作系统
国产麒麟操作系统
3
数据库
TDSQL

1.2 项目业务量规模
序号
系统业务量
数据
1
接入总业务系统数
156
2
输出总制品数
10,205
3
日均构建次数
250+
4
总构建流水线
1,485

1.3 服务对象规模
面向广发证券总部各部门、子公司,系统用户数超过600。

1.4 数据量规模
序号
系统数据量
数据
1
构建打包总数
80,118
2
流水线运行总次数
60,540
3
流程运行总次数
3,020
4
空间模块总数
1,244

1.5 人员投入
运维人员
2 人
研发人员
10 人

2 项目背景
广发证券全栈信创DevOps体系建设项目旨在解决项目、研发、运维、测试等多角色在沟通协作中遇到的一系列阻碍,从而打通研发到运维交付的全流程,达到提升研发效能、交付质量的最终目的。与此同时,通过量化评估和度量以及过程的可视化来进行资产的追溯,来帮助决策者了解资产的状态以及自身的短板,然后协助研发团队进行工作流程的优化。
一是能统一研发交付规范与标准,不同项目或产品的研发团队,在DevOps管理系统上开展研发交付活动,通过DevOps管理系统预先制定的流程、规则等约束不同研发团队的交付活动。
二是能提供封装自动化能力提供操作的指令化和代码化能力,将产品交付的各环节联通起来形成各类自动化流水线,减少构建、部署、运维过程对相关专业技能的依赖,降低IT自身管理复杂度。
三是能建立统一的自动化应用编译构建和部署发布规范,消除人工操作失误风险,提高软件发布成功率。
四是能建立度量体系,对于整个研发联调,实现数据全自动采集,统一计算。
3 项目成果
  • 自定义配置流水线。
广发证券全栈信创DevOps体系建设项目的用户群体定位于广发证券内部研发人员。广发证券内部研发人员众多,项目情况复杂多变。全栈信创DevOps体系建设依据内部实际情况,开放流水线可自定义配置,使研发人员可以根据项目自身情况灵活创建流水线。
2)自主创新能力提升。
广发证券全栈信创DevOps体系建设支持构建国产信创x86和arm64双架构镜像,强劲助力业务系统信创改造,提升自主创新能力。
3)全流程安全防护能力。
xing为了保障全栈信创DevOps体系建设的安全稳定性,一方面,数据存储采用同城双数据中心多活部署方案,双数据中心采用专线通讯,实时同步数据库,一旦某个数据中心发生故障,将无感切换到另一个数据中心,实现用户无感知体验;另一方面,DevOps管理系统部署在广发证券公司内部网络,与互联网网络物理隔离,保障系统不受外部网络影响。与此同时,在全栈信创DevOps体系中融合安全防护体系,从研发团队提交代码到代码仓库,到最后部署交付到生产环境运行的全流程提供安全防护能力。
4 项目亮点
  • 全面自动化管理。
全栈信创DevOps体系建设实现了从需求提出、代码库构建、到向生产环境一键部署整个集成阶段全面自动化管理,从而实现研运吞吐量的几何级提升。
  • 统一交付规范与标准。
不同项目或产品的研发团队,在DevOps管理系统上开展研运研讨活动,通过DevOps管理系统预先制定的流程、规则等约束不同研发团队的交付活动,从而实现研发交付规范与标准的统一,实现企业级的优化提升与改进。
  • 自动化流水线。
通过封装自动化能力提供操作的指令化和代码化能力,将产品交付的各节点联通起来形成各类自动化流水线,减少构建、部署、运维过程对相关专业技能的依赖,降低IT自身管理复杂度。
  • 更完善的数字化平台。
通过建立统一的自动化应用编译构建和部署发布规范,消除人工操作失误风险,提高软件发布成功率。平台更完善,数字化基础更进一步。
  • 3个缩短,2个提升。
交付时间在原有的基础上缩短5.5x,构建时长由原来的18分钟缩短为≤12分钟,单元测试覆盖率由原来的<5%提升为>70%,需求周期由原来的12天缩短为≤7天,部署频率由2次/月提升为4次/月。
5 项目经验
  • 信创选型评估问题。
信创判定缺乏正式明确的标准。解决方案通过与信通院深入合作,从管理层搜集评判依据。同时借助外部渠道,督促厂商积极参于各项评测,进行自证。
  • 解决开发规范只停留在纸面上的问题。
在项目之初,对软件生产的全流程进行了重新梳理和规划,其中包含流程、规范、度量体系和反馈机制。在实践阶段分了三步走,研发层面的持续集成、运维层面的持续交付,最终打通研发和运维实现DevOps全流程。从当前效果来看,单就自动化部署层面就比之前提高了2-5倍的效率。并且在软件质量和规范落实层面有了长足的进步。
  • 需求挤占开发的周期,开发挤占测试周期等问题。
首先梳理软件生产全流程,之后制定梳理开发规范、持续集成规范、持续部署规范、持续交付规范、介质管理规范、文档命名规范、开发分支管理策略、测试管理规范等。从而有效控制软件生产线上的各个活动和环节、建立统一质量和衡量标准、软件生产活动能被持续度量、反馈、优化,通过DevOps进行有效落实。
软件生产全流程如下图所示:
f3925e3774274d339e9c1d72adf3798a.png.jpg

6 项目实践过程6.1落地方案6.1.1 整体落地方案
广发证券基于云原生的DevOps体系全栈信创化项目全程贯彻DevOps理念,进行文化、流程规范、技术规范、支撑工具持续优化演进,并结合互联网敏态应用研发过程中遇到的实际情况,贴合广发证券自身发展,以实现业务价值驱动的自动化IT流程;同时,从需求管理到交付发布,从组织级平台到团队实践,构建真正意义上端到端的研发运营一体化协作体系。本项目将逐步完善DevOps管理系统的空间管理、模块管理、构建打包、制品管理、流水线管理、研发度量等功能模块,全力赋能广发证券业务数字化转型。与此同时,集成项目管理、配置管理、持续构建、持续部署、自动化测试等平台能力,并在此基础上实现从需求提出、代码库构建、到向生产环境一键部署,实现了整个集成阶段的全面自动化管理,从而实现研运吞吐量的几何级提升。整体建设思路如下图所示:
76dfdf2f765540589fd2bbb54b7d8fe5.png.jpg
从公司的各个项目编译环境中抽象出来,达到复用、统一、规范化、结构化。避免开发人员浪费时间重复配置、手工维护等,使开发人员能够专注业务代码。
构建打包功能:集成各种的规范化的编译环境,避免五花八门的不规范化的编译和打包方式。按照规范建立编译环境。包括java、go、npm、python等。编译环境会配置好相关的环境变量,统一使用广发内部源。如go的GOPROXY、npm的registry等。做到编译环境复用和专人维护,避免开发人员浪费时间配置各种复杂环境。
制品管理:业务系统的制品必须通过构建打包系统线上编译和打包,避免人工打包或本地打包。从制品可以溯源到代码、提交记录、codereview记录、sonar成绩、关联的jira、编译环境、编译日志等,可以比较两个代码的差异,给下游系统提供足够数据。构建打包系统维护好仓库权限和存放规则,避免所有人都可以操作仓库、各个团队手动维护和存放目录文件规范化。
  • 流水线插件:对流水线的通用的业务逻辑功能抽象出来,达到复用的目的。如容器云部署插件:研发人员自己折腾,得了解容器云的api、容器云的组织逻辑、权限等、调试,浪费大量时间,现在只需要在界面点几下就行。
  • 构建打包插件。调用构建打包系统,避免在流水线编辑各个编译的参数和统一构建打包。
  • 容器云部署插件。调用构建打包系统产物部署到容器云。执行脚本插件。拉取代码后,在代码目录执行相关的脚本。
6.1.2 信创解决方案
全栈信创部署架构图如下:
aec6843d37004012a6ab6eb5fe19b4ad.png.jpg
DevOps 管理系统全栈信创的数据迁移方案如下:
1、测试环境验证:测试数据库表结构和部分数据导入 TDSQL 测试数据库;程序编译打包部署到测试容器云;在 测试环境验证方案的正确性。
2、生产环境验证:生产数据库表结构和部分数据导入 TDSQL 生产数据库;程序编译打包部署到生产容器云;在生产环境验证方案的正确性。
3、正式切换:生产数据库表结构和全量数据导入 TDSQL 生产数据库;程序编译打包部署到生产容器云;入口切换到容器云。
6.2 技术选型6.2.1 技术优势
1)云原生底座保驾护航
PaaS信创容器云底座提供可靠、安全能力,基于国产自主的信创基础设施构筑业务,实现国产化信息技术应用创新,掌握创新和发展的主动权。在云平台建设全方位安全服务和安全合规能力,保障DevOps平台在云上安全构建,业务安全运行。
2)支持双架构镜像
广发证券全栈信创DevOps体系建设支持构建国产信创x86和arm64双架构镜像,强劲助力业务系统信创改造,提升自主创新能力。
3)提供全流程安全防护
为了保障全栈信创DevOps体系建设的安全稳定性,一方面,数据存储采用同城双数据中心多活部署方案,双数据中心采用专线通讯,实时同步数据库,一旦某个数据中心发生故障,将无感切换到另一个数据中心,实现用户无感知体验;另一方面,DevOps管理系统部署在广发证券公司内部网络,与互联网网络物理隔离,保障系统不受外部网络影响。与此同时,在全栈信创DevOps体系中融合安全防护体系,从研发团队提交代码到代码仓库,到最后部署交付到生产环境运行的全流程提供安全防护能力。
6.2.2 技术选型
空间模型如下:
ea994d3ae3964c52bcb51755e2597114.png.jpg
以cmdb系统为惟一标识,初始化空间。空间关联gitlab空间、docker空间、二进制空间,把空间可以操作的资源限制了。上述资源空间支持多个。空间关联成员,限定操作成员。模块有开发成员,限制模块的访问。
7 突出贡献人员
潘智斌、林康振、李填、张世君

版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系在线客服