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 项目背景广发证券全栈信创DevOps体系建设项目旨在解决项目、研发、运维、测试等多角色在沟通协作中遇到的一系列阻碍,从而打通研发到运维交付的全流程,达到提升研发效能、交付质量的最终目的。与此同时,通过量化评估和度量以及过程的可视化来进行资产的追溯,来帮助决策者了解资产的状态以及自身的短板,然后协助研发团队进行工作流程的优化。 一是能统一研发交付规范与标准,不同项目或产品的研发团队,在DevOps管理系统上开展研发交付活动,通过DevOps管理系统预先制定的流程、规则等约束不同研发团队的交付活动。 二是能提供封装自动化能力提供操作的指令化和代码化能力,将产品交付的各环节联通起来形成各类自动化流水线,减少构建、部署、运维过程对相关专业技能的依赖,降低IT自身管理复杂度。 三是能建立统一的自动化应用编译构建和部署发布规范,消除人工操作失误风险,提高软件发布成功率。 四是能建立度量体系,对于整个研发联调,实现数据全自动采集,统一计算。 3 项目成果广发证券全栈信创DevOps体系建设项目的用户群体定位于广发证券内部研发人员。广发证券内部研发人员众多,项目情况复杂多变。全栈信创DevOps体系建设依据内部实际情况,开放流水线可自定义配置,使研发人员可以根据项目自身情况灵活创建流水线。 2)自主创新能力提升。 广发证券全栈信创DevOps体系建设支持构建国产信创x86和arm64双架构镜像,强劲助力业务系统信创改造,提升自主创新能力。 3)全流程安全防护能力。 xing为了保障全栈信创DevOps体系建设的安全稳定性,一方面,数据存储采用同城双数据中心多活部署方案,双数据中心采用专线通讯,实时同步数据库,一旦某个数据中心发生故障,将无感切换到另一个数据中心,实现用户无感知体验;另一方面,DevOps管理系统部署在广发证券公司内部网络,与互联网网络物理隔离,保障系统不受外部网络影响。与此同时,在全栈信创DevOps体系中融合安全防护体系,从研发团队提交代码到代码仓库,到最后部署交付到生产环境运行的全流程提供安全防护能力。 4 项目亮点全栈信创DevOps体系建设实现了从需求提出、代码库构建、到向生产环境一键部署整个集成阶段全面自动化管理,从而实现研运吞吐量的几何级提升。 不同项目或产品的研发团队,在DevOps管理系统上开展研运研讨活动,通过DevOps管理系统预先制定的流程、规则等约束不同研发团队的交付活动,从而实现研发交付规范与标准的统一,实现企业级的优化提升与改进。 通过封装自动化能力提供操作的指令化和代码化能力,将产品交付的各节点联通起来形成各类自动化流水线,减少构建、部署、运维过程对相关专业技能的依赖,降低IT自身管理复杂度。 通过建立统一的自动化应用编译构建和部署发布规范,消除人工操作失误风险,提高软件发布成功率。平台更完善,数字化基础更进一步。 交付时间在原有的基础上缩短5.5x,构建时长由原来的18分钟缩短为≤12分钟,单元测试覆盖率由原来的<5%提升为>70%,需求周期由原来的12天缩短为≤7天,部署频率由2次/月提升为4次/月。 5 项目经验信创判定缺乏正式明确的标准。解决方案通过与信通院深入合作,从管理层搜集评判依据。同时借助外部渠道,督促厂商积极参于各项评测,进行自证。 在项目之初,对软件生产的全流程进行了重新梳理和规划,其中包含流程、规范、度量体系和反馈机制。在实践阶段分了三步走,研发层面的持续集成、运维层面的持续交付,最终打通研发和运维实现DevOps全流程。从当前效果来看,单就自动化部署层面就比之前提高了2-5倍的效率。并且在软件质量和规范落实层面有了长足的进步。 首先梳理软件生产全流程,之后制定梳理开发规范、持续集成规范、持续部署规范、持续交付规范、介质管理规范、文档命名规范、开发分支管理策略、测试管理规范等。从而有效控制软件生产线上的各个活动和环节、建立统一质量和衡量标准、软件生产活动能被持续度量、反馈、优化,通过DevOps进行有效落实。 软件生产全流程如下图所示:
6 项目实践过程6.1落地方案6.1.1 整体落地方案广发证券基于云原生的DevOps体系全栈信创化项目全程贯彻DevOps理念,进行文化、流程规范、技术规范、支撑工具持续优化演进,并结合互联网敏态应用研发过程中遇到的实际情况,贴合广发证券自身发展,以实现业务价值驱动的自动化IT流程;同时,从需求管理到交付发布,从组织级平台到团队实践,构建真正意义上端到端的研发运营一体化协作体系。本项目将逐步完善DevOps管理系统的空间管理、模块管理、构建打包、制品管理、流水线管理、研发度量等功能模块,全力赋能广发证券业务数字化转型。与此同时,集成项目管理、配置管理、持续构建、持续部署、自动化测试等平台能力,并在此基础上实现从需求提出、代码库构建、到向生产环境一键部署,实现了整个集成阶段的全面自动化管理,从而实现研运吞吐量的几何级提升。整体建设思路如下图所示: 从公司的各个项目编译环境中抽象出来,达到复用、统一、规范化、结构化。避免开发人员浪费时间重复配置、手工维护等,使开发人员能够专注业务代码。 构建打包功能:集成各种的规范化的编译环境,避免五花八门的不规范化的编译和打包方式。按照规范建立编译环境。包括java、go、npm、python等。编译环境会配置好相关的环境变量,统一使用广发内部源。如go的GOPROXY、npm的registry等。做到编译环境复用和专人维护,避免开发人员浪费时间配置各种复杂环境。 制品管理:业务系统的制品必须通过构建打包系统线上编译和打包,避免人工打包或本地打包。从制品可以溯源到代码、提交记录、codereview记录、sonar成绩、关联的jira、编译环境、编译日志等,可以比较两个代码的差异,给下游系统提供足够数据。构建打包系统维护好仓库权限和存放规则,避免所有人都可以操作仓库、各个团队手动维护和存放目录文件规范化。 - 流水线插件:对流水线的通用的业务逻辑功能抽象出来,达到复用的目的。如容器云部署插件:研发人员自己折腾,得了解容器云的api、容器云的组织逻辑、权限等、调试,浪费大量时间,现在只需要在界面点几下就行。
- 构建打包插件。调用构建打包系统,避免在流水线编辑各个编译的参数和统一构建打包。
- 容器云部署插件。调用构建打包系统产物部署到容器云。执行脚本插件。拉取代码后,在代码目录执行相关的脚本。
6.1.2 信创解决方案全栈信创部署架构图如下: 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 技术选型空间模型如下: 以cmdb系统为惟一标识,初始化空间。空间关联gitlab空间、docker空间、二进制空间,把空间可以操作的资源限制了。上述资源空间支持多个。空间关联成员,限定操作成员。模块有开发成员,限制模块的访问。 7 突出贡献人员潘智斌、林康振、李填、张世君
|