河北移动:核心系统数据库成功完成整体迁移 ,实现全栈国产|OceanBase案例

news2024/11/25 6:43:38

1717669548

本文作者:移动通信集团河北有限公司架构规划专家,房瑞


项目背景:

中国移动通信集团河北有限公司一直在积极响应国家及集团的号召,以磐舟&磐基云原生为底座,结合国产浏览器、中间件、数据库、操作系统和服务器等,构建起完全自主掌控的支撑系统。同时,积极深化生态合作与创新,不断完善IT自主掌控评价体系,以促进产业链生态的健康发展。

2023 年 11 月,河北移动核心营业系统(唐山)完成了 OceanBase 国产数据库的上线。OceanBase 集群采用同城双机房主备架构,主集群为 X86 架构,备集群为 ARM 架构。

2024 年 5 月 20 日之前主集群(x86)对外提供服务,5 月 20 日 IT 中心顺利完成核心营业系统数据库由 x86 服务器迁移至 ARM 服务器,核心营业系统首次完成从前端应用到后端服务器全栈国产目标。自上线以来,系统运行稳定,各项性能指标与原架构持平,部分指标高于原架构,达成项目设计要求。

一、以分布式数据库为抓手,全面推动国产升级

河北移动从 2000 年至 2020 年,近二十年的时间,营业、计费等核心系统一直运行在传统集中式数据库之上,在一定的数据量下、在强大的硬件资源加持下,数据库性能表现良好,系统运行稳定。

随着近十年,业务数据量的暴涨,云计算的发展,传统集中式数据库在业务系统整体架构中越发乏力。

一是算力无法横向扩展。随着数据量的增加,原有的传统集中式数据库在算力上无法实现横向扩展,不能满足未来业务系统对性能的要求,需要引入分布式数据库解决算力动态扩容需求。

二是系统架构亟待升级。系统架构基于底层数据库架构,要满足未来 5 至 10 年的领先性,依靠数据库特性,实现应用云原生架构升级。底层数据库算力可根据业务系统动态实现扩缩容,保证系统的可扩展性,高效性、安全性要求。

加之当前核心技术的相关风险,河北移动积极探索系统架构升级方案,以分布式数据库为抓手,全面推动国产升级。

二、运营商为什么都在选择 OceanBase

2021 年,河北移动率先启动技术探寻,与 OceanBase 开展技术交流和方案验证。2022 年 5 月,开始启动核心系统数据库升级工作。2023 年 3 月,确定以营业系统(唐山)为 B 域核心系统国产化数据库实施范围。

OceanBase 原生分布式数据库满足核心库国产要求的同时 ,还适配主流的国产芯片、国产操作系统、国产中间件,可实现应用系统的全栈国产。

河北移动最终选择 OceanBase 经过多方综合评估,主要原因有以下:

第一,高度兼容传统集中式数据库语法,应用改造适配成本低。OceanBase 一套数据库引擎同时高度兼容传统集中式数据库,覆盖绝大多数常见功能,支持过程语言、触发器等高级特性,河北移动核心营业系统(唐山)对传统集中式数据库兼容率为 99.9%以上,极大降低应用的迁移成本。下表为兼容性评估:

1717669853

第二,极致降低核心库存储成本,性能无损的数据压缩。在传统的 B 树存储结构下的数据库中,数据压缩可能会给数据写入带来 CPU 的计算压力,影响写入性能。但 OceanBase 的 LSM-Tree 架构使数据的压缩只发生在合并阶段,不会影响数据的写入,加上自研混合列压缩编码能更好提高压缩率,同一业务量下相比传统集中式数据库能降低 70% - 90% 存储成本。

河北移动的核心营业系统(唐山)在传统集中式数据库端的数据量 11051G,升级到 OceanBase 后仅为 2699G,存储成本降低 76%。下表为存储空间评估:

1717669864

三、两个阶段,核心营业系统全栈上线

为保障核心营业系统能够平稳运行在全栈国产之上,安全可靠,彻底解决以往高度依赖非自研技术的风险。从系统建设目标、应用、数据库多方统筹,采用两个阶段完成建设目标。

在迁移工程中,河北移动通过借助集团磐舟能力,有效解决数据库国产过程中应用代码频繁发布难题,代码从上传-编译-镜像打包,推送到磐基 PaaS 平台,均通过可视化界面进行操作,简单直观。同时搭配流水线配置,实现全过程高效的可持续化自动运行。 

○   第一阶段完成:应用全栈+数据库国产

○   第二阶段完成:数据库由 x86 服务器迁移至 ARM 服务器

第一阶段完成:应用全栈+数据库国产

部署架构:

○   前端负载去除国外负载均衡设备,采用 DNS+OceanBase JDBC Loadbalance+代理构成,其中 DNS 提供域名服务,负载均衡能力由 JDBC Loadbalance 提供,代理 proxy 多节点部署,进行路由转发;

○   OceanBase 部署服务器全部安装国产自研操作系统 BCLinux for 欧拉 21.10 版。

○   OceanBase 主集群基于 x86 服务器部署。备集群基于 ARM 服务器部署备库。主集群采用 3-3-3 模式部署,包含 3 副本,每个副本由 3 台服务节点构成,一个副本包含一份完整的数据。

依托该架构及 OceanBase 数据库机制,实现集群内高可用能力。少数派服务器宕机、单副本不可用,集群均可正常对外部提供服务,保证应用系统稳定运行。

备集群除用于日常切换演练之外,还承担部分业务流量、当主库故障后,备库可承载全部业务流量,保障应用系统稳定运行。

1717670060

第二阶段完成:核心营业系统数据库迁移至 ARM 服务器

本次迁移基于 OceanBase 数据库容灾能力,通过在 ARM 服务器搭建容灾系统实现全自动无损数据复制,确保数据实时追平。

1717670084

5 月 20 日割接当晚,通过一键切换主备集群,实现核心营业系统数据库由 x86 服务器迁移至 ARM 服务器的高效、顺畅迁移。这也是核心营业系统首次完成从前端应用到后端服务器全栈国产目标,迁移方式顺畅稳定。

为保障本次迁移顺利完成,河北移动牵头成立了“业务专家+OceanBase 数据库架构+ARM 主机架构”小组进行攻关,在业务优化、数据库优化、ARM 主机优化三个方面制定优化措施,迁移准备工作进行验证充分。

本次割接准备工作历时 2 个月,共编制割接相关手册 5 份,准备 2 套应急方案,历经 2 轮模拟验证,发现和解决技术问题 3 项,优化迁移步骤 1 项,保证迁移过程严谨高效。

深入挖潜 ARM 国产服务器性能。充分考虑营业场景下,ARM 服务器存在性能下降风险,项目组通过优化测试模型,加大测试样本,经过 310 余次多系统混合压力测试,挖潜 ARM 服务器性能,最终确定 7 项性能优化手段。上线后,保障系统性能指标优于安全水位。

截止目前,系统指标健康,未产生业务投诉。本次数据库服务器的国产升级,为后续推进自主掌控升级奠定基础。

四、全栈国产升级后,河北移动各项收益显著

(一)先进架构满足未来 5-10 年发展需求

河北移动依托 OceanBase 的原生分布式架构,可节点横向扩展、弹性扩缩容、多租户管理、数据多副本强一致等特性,满足未来 5 至 10 年的业务发展需要。

一方面,可快速推进应用云原生架构升级。应用云原生、OceanBase 相结合实现业务负载和数据库负载全部自动弹性伸缩,具备同城双活、两地三中心单元化应用多活能力。

一方面,收获系统长期的高可用、性能稳定高效。OceanBase 数据库采用基于无共享(Shared-Nothing)的多副本架构,让整个系统没有任何单点故障,保证系统的持续可用。河北移动对核心营业系统(唐山)包括前端应用、外围渠道、后台进程、周边配套四大类共计 754 个用例进行性能压测,压测指标均优于原传统集中式数据库。上线后,应用系统稳定,数据库节点 CPU 使用率 30%左右。

(二)形成标准化的项目推广复制

随着河北移动核心营业系统(唐山)的顺利上线,沉淀了《业务系统调研方案》、《数据库部署方案》、《应用适配改造方案》、《国产库运维方案》、《系统割接方案》等一系列标准方案,使整个国产项目标准化、可复制化。

依托标准化的操作,可复制到河北移动全域业务系统中,加速推进业务系统的国产升级落地。以河北移动 CRM 系统营业 C 库为例,系统在 2 个月左右的时间可完成国产数据库上线。

(三)应用改造、存储、运维等各项成本明显降低

河北移动受益于 OceanBase 高度兼容传统集中式数据库的特性,解决了项目初期关注的三个成本因素:应用改造成本、硬件投入成本、运维成本。

○   应用改造成本基本为零:核心营业系统(唐山)对传统集中式数据库的兼容率为 99.9%以上,本次应用开发商只做极少量的应用改造,大大降低了改造成本。

○   硬件投入成本降低:原系统 11051G 的数据量迁移到 OceanBase 后只需 2699G,存储成本降低 76%。

○   运维成本降低:数据库运维人员、包括研发人员可将原传统集中式数据库的使用经验完全应用到 OceanBase 之上,减少学习成本。OceanBase 单集群多租户架构,可快速将传统集中式数据库的数据迁移至 OceanBase 统一管理运维,降低运维成本。

(四)培养核心技术骨干,形成人才梯队

通过核心系统全栈国产升级,河北移动培养出一批国产技术骨干,特别是国产数据库操作、管理和运维的人员,并形成人才梯队,实现国产自主能力,并逐步推广到全省。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2035955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

树莓派4b无法选择声音输入输出设备问题

问题一:选择不了3.5mm音频输出口,也看不到音频输入设备 运行命令 :pactl load-module module-udev-detect tsched0 pactl load-module 命令用于在运行时加载新的模块。module-udev-detect 是PulseAudio的一个模块,它负责自动检测系…

【kubernetes】k8s对外服务之Ingress

一、Ingress介绍 1、Ingress的简介 K8S集群外部的客户端访问K8S集群内部的方案 基于Service实现:NodePort、LoadBalancer、externalIPs 只能支持四层代理转发,如果K8S集群规模较大运行的业务服务较多,NodePort端口/externalIPs管理成本…

Python套接字综合应用(UDP篇)

Python套接字综合应用(UDP篇) 1、 主要功能 UDP客户端实现UDP服务端实现输出字体颜色控制响应捕获键盘CtrlC信号套接字异常捕获及处理通信报文16进制格式化输出 2、 Python UDP套接字应用 Windows程序在WinServer2022上验证运行,Linux程序在银河麒麟V10上验证运…

[Java]面向对象-抽象类/方法接口适配器设计模式

抽象类 一个类中如果存在抽象方法,那么该类就必须申明为抽象类 定义格式: 如果一个类包含抽象方法,那么该类必须是抽象类。注意:抽象类不一定有抽象方法,但是有抽象方法的类必须定义成抽象类。 abstract class 类名…

haproxy七层代理详解之-完整安装部署流程及负载均衡实现-及热更新方法

一.负载均衡 1.1负载均衡时什么 负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了衡将特定的业务(web服务、公司…

嵌入式生物打印是什么?有啥优势?

大家好,今天我们来了解一下这篇《Embedded 3D bioprinting–An emerging strategy to fabricate biomimetic & large vascularized tissue constructs》发表于《Bioactive Materials》的一篇综述,在组织工程和再生医学领域,传统方法存在一…

【JUC】04-synchronized关键字

1. 悲观锁与乐观锁 悲观锁:认为自己在使用数据的时候一定会有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。synchroized和Lock的实现类都是乐观锁:认为自己在使用数据时不会有别的线程修改数据…

激光尘埃粒子计数器在洁净室监测中的关键应用(原理、类型、选型)

激光尘埃粒子计数器的应用 激光尘埃粒子计数器广泛应用于多个领域,包括但不限于: 权威机构:如血液中心、防疫站、疾控中心、质量监督所等。 生产企业和科研部门:如电子行业、制药车间、半导体、光学或精密机械加工、塑胶、喷漆…

构建流水线生产管理创新的RFID智能管理系统应用方案

在当今竞争激烈的制造业环境中,流水线生产的高效、精准和智能化管理已成为企业获取竞争优势的关键。然而,传统的流水线生产管理方式在应对日益复杂的生产需求和多变的市场环境时,逐渐暴露出诸多难点和痛点。 一、流水线生产管理的难点与痛点…

OCR调研

OCR调研 一、介绍 OCR(Optical Character Recognition,光学字符识别)是一种将图像中的文字转换为计算机可处理格式的技术。OCR技术经历了从传统OCR到基于深度学习的OCR的转变。深度学习OCR技术通过模拟人脑神经元结构处理文本和图像数据&am…

打造高效存储与访问体验:NFS共享携手Nginx负载均衡,赋能企业级数据流通与性能优化

作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团团-CSDN博客 目录: 前言&#…

AIGC实践|AI助力一张照片生成百变写真

前言: 在之前的文章中,我们已经领略了 AI 在动态有声绘本、小游戏开发、视频短片制作以及包装设计等领域的神奇应用,在本篇文章中,我将尝试利用AI辅助,使用一张照片生成个性化写真集。充分满足工作艺术照、各地郊游打…

关于自己部署AI大模型踩的坑(二)—— GPU篇

最近一直在研究如何打算属于我自己的J.A.R.V.I.S.(钢铁侠中的机器人管家)。 上一篇写了我最近在部署自己的大模型,使用llama3.1, 和通义千问2。虽然最终结果也是成功了,过程却十分地坎坷。 所以这一篇文章一是总结其中…

linux学习--第一天

--linux基础命令 -本地安装 1. sudo dpkg -i 软件包 :安装单个软件包 2. sudo dpkg -i * .deb :安装多个软件包 3. sudo dpkg -L 软件包:列出软件在系统中文件路径 4. sudo dpkg -s 软件包:列出软件包的安装状态 5. …

页面布局-1

1.定位 CSS 属性名功能属性值position设置定位 static:不定位,默认值。 relative:相对定位。 absolute:绝对定位。 fixed:固定定位 left与参照点左侧距离长度right与参照点右侧距离长度top与参照点上侧距离长度bottom…

【数据结构初阶】队列

hello! 目录 一、概念与结构 二、队列的实现 Queue.h Queue.c test.c 一、概念与结构 1、概念:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特性。 入队列:进行插入操作…

音视频概要

YUV原理的讲解 YUV是一种常见的视频像素格式,经常用在视频编解码上面,YUV分别由Y分量和U、V分量(红色投影Cr)组成。Y分量指的是亮度分量,也就是我们经常说的灰阶值,相当于一副灰色的图像。而U分量和V分量表示的是色度分量&#x…

搭建高可用OpenStack(Queen版)集群(九)之部署nova计算节点

一、搭建高可用OpenStack(Queen版)集群之部署计算节点 一、部署nova 1、安装nova-compute 在全部计算节点安装nova-compute服务 yum install python-openstackclient openstack-utils openstack-selinux -y yum install openstack-nova-compute -y 若yu…

基于vue框架的《大学计算机》课程思政资源共享平台ac9s7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:学生,教师,教研小组,章节分类,课程内容,资源类型,资源信息 开题报告内容 基于Vue框架的《大学计算机》课程思政资源共享平台 开题报告 一、引言 随着教育信息化的深入发展,高等教育领域对课程思政的重视程度日益提升。《大…

【kubernetes】pod控制器详解

一、pod控制器概述 1、Pod控制器作用 Pod控制器,是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源。 2、pod控制器…