admin 管理员组

文章数量: 887172


2024年2月5日发(作者:sqlserver认证考试)

计算机系统应用 ISSN 1003-3254, CODEN CSAOBNComputer Systems & Applications,2020,29(10):127−132 [doi: 10.15888/.007625]©中国科学院软件研究所版权所有.E-mail: ************.cn: +86-10-62661041 微服务应用系统迁移上云改造模型①马 永1, 李 明1, 曹弯弯1, 张 弛2, 王 靓2, 李 婕212(国网安徽省电力有限公司 信息通信分公司, 合肥 230061)(南京南瑞信息通信科技有限公司, 南京 210009)通讯作者: 马 永, E-mail: *****************摘 要: 针对当前电网信息通信运维系统存在硬件平台超期服役, 信息处理任务无法快速完成等问题, 本文提出一种基于Spring Could框架的微服务应用系统迁移上云改造模型, 将电网信息通信运维系统迁移至云平台, 模型针对集中式系统迁移上云后转变为分布式系统后出现的管理问题, 将系统服务全部迁入EDAS体系, 实现一键部署、弹性伸缩、灰度发布以及故障自愈. 此外, 针对系统上云过程中数据量庞大的一致性校验问题, 设计了一种基于吉布斯采样的数据一致性采样校验方法, 提高了数据一致性校验的效率, 减少了系统上云工作量. 之后通过国网安徽电力SG-I6000微服务系统上云的实际案例, 证明了系统的成功上云和可靠运行.关键词: 电力通信网; 云平台; 微服务应用系统; 迁移上云引用格式: 马永,李明,曹弯弯,张弛,王靓,李婕.微服务应用系统迁移上云改造模型.计算机系统应用,2020,29(10):127–132. /1003-3254/trofit Model of Micro Service Application System Migrating to Cloud PlatformMA Yong1, LI Ming1, CAO Wan-Wan1, ZHANG Chi2, WANG Liang2, LI Jie212(Information and Telecommunication Branch, State Grid Anhui Electric Power Co. Ltd., Hefei 230061, China)(Nari Group Corporation Information & Communication Technology Co. Ltd., Nanjing 210009, China)Abstract: Aiming at the problems that the current power grid information communication operation and maintenancesystem has hardware platform out-of-date service and information processing tasks cannot be completed quickly, thisstudy proposes a migration model of micro service application system based on Spring Could to the cloud. This modelmigrates the power grid information communication operation and maintenance system to a cloud platform. In response tothe management problems that occurred after the centralized system was migrated to the cloud and transformed into adistributed system, all system services were moved into the EDAS system to achieve one-click deployment, elasticscaling, grayscale release, and fault self-healing. In addition, a data consistency sampling verification method based onGibbs sampling is designed to solve the problem of consistency check of huge amount of data in the cloud process. Thismethod improves the efficiency of data consistency verification and reduces the cloud workload on the ards, this article proves the system’s successful cloud deployment and reliable operation through the actual case ofthe cloud of the State Grid Anhui Electric Power SG-I6000 microservice words: power communication network; cloud platform; micro service application system; migration to the cloud 电网信息通信运维系统是支撑电网安全稳定运行的基础性资源, 是电力系统的重要组成部分[1,2]. 随着电① 基金项目: 国网安徽省电力有限公司项目(SG-I6000)Foundation item: Project of State Grid Anhui Electric Power Co. Ltd. (SG-I6000)收稿时间: 2020-03-10; 修改时间: 2020-04-10; 采用时间: 2020-04-14; csa在线出版时间: 2020-09-30System Construction 系统建设 127网安全生产的可靠性要求不断提高, 现有系统保障系统安全稳定运行的难度也显著增加, 当前运维系统也

计算机系统应用2020 年 第 29 卷 第 10 期存在了硬件平台超期服役, 性能难以应对越来越繁重的信息处理任务等问题[3,4]. 因此利用新兴技术对现有系统进行升级改造十分有必要.目前云计算已经是一种相当成熟稳定的技术[5,6],云平台具有业务上线快、运维高度自动化、高可靠性、功能丰富、低成本等优点, 已经被广泛应用于信息运维系统的构建和改造. 因此, 将电网信息通信运维系统迁移至云平台是安全可靠且经济实惠的最优方案,该方案也得到了许多行业的应用证明, 例如利用政务云平台实现的政务信息系统上云[7,8]和利用阿里云平台实现的企业信息系统上云[9,10]等. 但是系统上云后,应用服务从集中式应用转化为分布式系统, 分布式架构中会存在系统各部分之间的可靠调用问题, 这会阻碍系统上云后的稳定运行[11].因此, 本文针对集中式系统迁移上云后转变为分布式系统的管理问题, 提出一种基于SpringCould框架的微服务应用系统迁移上云改造模型, 将系统服务全部迁入企业级分布式应用服务(Enterprise DistributedApplication Service, EDAS)体系, 使系统能够充分利用EDAS的应用部署管控能力和微服务治理能力, 实现一键部署、弹性伸缩、灰度发布以及故障自愈. 并针对系统上云过程中数据量庞大的一致性校验问题,设计了一种基于吉布斯采样的数据一致性采样校验方法, 提高了数据一致性校验的效率, 减少了系统上云工作量.1 系统检测1.1 SpringCould框架Spring Cloud是基于Spring Boot框架的一系列微服务解决方案的有序集成[12]. 它将市面上各家公司开发的比较成熟的服务框架进行集合, 再利用SpringBoot的开发风格进行再封装, 开发者无需再去了解各个服务框架的配置和实现原理, 只需按照Spring Cloud所给出的分布式系统开发工具包就可以实现分布式系统基础设施的开发, 简化了代码量和工作量, 这也是本模型选取该框架的原因.Spring Cloud可以实现微服务开发所需要的分布式/版本化设置, 分布式消息传递, 服务的注册和发现,服务之间的调用, 负载均衡, 集群状态管理, 智能路由和断路器等功能[13], 其组件架构如图1所示.128 系统建设 System Construction移动ZipKin设备Eureka服务用户Sleuth移动设备Zuu1服务管理代理...1Felin员(Eureka服务 n客户App客户)配置配置中心仓库监控 hystrixWebhook云总线仪表板, 涡轮 图1 微服务框架 1.2 EDAS体系企业级分布式应用服务是一个以阿里中间件团队的多个组件产品为核心基础组建的应用托管和微服务管理的PaaS平台[14]. 它利用阿里云现有的各种资源和服务, 引用整套分布式计算框架, 提供应用的开发、部署、运行、监控和维护等全栈式解决方案, 同时, 它支持SpringCloud在内的三大主流微服务运行框架, 可以帮助企业级用户实现各种云计算解决方案和应用上云.将系统服务全部迁入EDAS体系可以使系统充分利用EDAS的应用部署管控能力和微服务治理能力,实现一键部署、弹性伸缩、灰度发布以及故障自愈等功能. 同时, 通过服务接口可视化, 服务综合治理和配置推送集中管理, EDAS十分适合作为分布式应用服务的解决方案.1.3 吉布斯采样法吉布斯采样法(Gibbs sampling)是马尔可夫链与蒙特卡洛算法(Markov Chain Monte Carlo, MCMC)中的一种, 不同于均匀分布采样和离散分布采样, 它能够在无法直接采样的情况下从多变量概率分布中抽取近似于其分布的随机样本序列.由平稳马尔可夫过程的结论可知, 只要马尔科夫链收敛, 第n次的抽样概率p(xn)一定会收敛到预期分布p(x); 如果非周期马尔科夫链的状态转移矩阵P和概率分布π(x)对于所有的i, j满足:π(i)P(i,j)=π(j)P(j,i)(1)则称概率分布π(x)是状态转移矩阵P的平稳分布. 因此构造一个转移矩阵为P的马尔科夫链, 那么从任一初始状态x0出发沿马尔科夫链转移, 如果马尔科夫链在

2020 年 第 29 卷 第 10 期计算机系统应用第n步已收敛, 则达到了平稳状态, 以后的样本必然都满足p(x)分布, 都可以用于生成待模拟分布的样本[15].为了使细致平稳条件成立, MCMC算法的最终转移矩阵P为:P(i,j)=Q(i,j)α(i,j)(2)目标矩阵P可以通过任意马尔科夫链状态转移矩阵Q乘以α(i,j)得到, α(i,j)为接受率, 其取值区间为[0,1]. 但在高维的情况下, α会导致算法效率不高, 因此需要一个转移矩阵Q使得α=1. 在数据为二维时, 假设概率分布p(x,y), 平面上存在x坐标相同的两个点A(x1,y1),B(x1,y2), 则吉布斯采样法按照式(3)~式(5)构造两点之间的转移概率矩阵Q[15].Q(A→B)=p(yB|x1),ifxA=xB=x1(3)Q(A→C)=p(xC|y1),ifyA=yC=y1(4)Q(A→D)=0,others(5)2 迁移上云改造模型2.1 模型建立微服务应用系统框架主要包括服务注册、统一配置服务、服务网关和微服务4大模块, 需要将SpringCloud框架中的模块适配改造为EDAS体系中对应组件,所提出的微服务应用系统迁移改造模型如图2所示. Springcloud 框架迁分布式应用服务 EDAS 体系服务注册发现移服务注册发现Netfilx eurekaANS统一配置服务Config server统一配置服务应用ACM应用微服全链服务网关服务网关 Netflix部署务治路监Netflix ZuulZuul (兼容适配)管控理控ARMS微服务微服务 SpringbootSpringboot(兼容适配) 图2 微服务迁移改造模型 SpringCloud架构中服务注册发现模块NetflixEureka和统一配置服务模块Config Server迁移至EDAS后需进行改造, 而由于EDAS体系兼容适配SpringCloud框架中服务网关和微服务所使用的Netflix Zuul和Springboot模块, 因此这两个模块只需要根据微服务应用的实际情况, 迁移至EDAS中对应的模块即可.EDAS中微服务模块并没有直接部署在云主机ECS (Elastic Compute Service)上, 而是部署于容器服务K8S集群上. 迁移后的微服务模块包含工具应用层和平台组件服务层两个层. 工具应用层由调运检运维管理类微应用、自动化作业类微应用和个性化自建微应用构成, 平台组件服务层由资源配置服务、资源检测服务、作业管理服务等各种平台所需的服务构成,如 图3所示.EDAS 微服务 Springboot 框架工具调运检运维个性化自建自动化作业应用层管理类微应用微应用类微应用服平资源配置服务资源监测服务作业管理服务场景编排服务务台工具仓库服务运维流程服务权限管理服务运维可视化服务层组件日志管理服务运维审计服务容器服务 (K8S) 集群ECS (Elastic Compute Service) 集群 图3 EDAS微服务Springboot框架在EDAS中, 设有专门的应用部署管控模块和微服务治理模块, 它们负责对迁移的4个模块进行治理和管控, 并和迁移的4个组件均受到业务实时监控服务(ARMS)的统一监控.2.2 模型适配改造EDAS体系虽然兼容SpringCloud框架, 但是两者在实际应用中存在着些许不同, 需要对服务注册发现模块和微服务模块进行适配性改造, 使其对接EDAS体系中对应组件, 能够融入EDAS生命周期管理和应用监控体系, 实现应用的全链路监控.2.2.1 服务注册发现模块适配改造服务注册发现模块Netflix Eureka, 需适配改造使用ANS (Alibaba Naming Service)组件. ANS支持Spring Cloud应用的服务注册与发现, 同时默认集成了负载均衡组件Ribbon, Eureka用户可以通过替换maven项目中文件中的依赖实现无缝迁移.服务注册模块需要服务提供者与服务消费者, 服务提供者适配改造之后使用ANS进行服务注册发现的算法如算法1所示.算法1. ANS服务提供者算法1) 创建SpringCloud工程service-provider, 在中引入需要的依赖内容;2) 编码服务提供端的启动类(利用@Enable DiscoveryClient注解表明此应用需开启服务注册与发现功能);3) 提供服务;4) 配置阿里云账号的AccessKey、SecretKey, 以及EDAS的命名空间信息;5) 启动service-provider服务, 在EDAS页面查看服务注册信息.System Construction 系统建设 129

计算机系统应用2020 年 第 29 卷 第 10 期服务消费者适配改造之后使用ANS进行服务注册发现的算法如算法2所示. 其中RestTemplate、AsyncRestTemplate和FeignClient为实际服务调用中最常使用的3个客户端.算法2. ANS服务消费者算法1) 创建SpringCloud工程service-consumer, 在中引入需要的依赖内容;2) 配置RestTemplate、AsyncRestTemplate和Feign Client;3) 创建Controller, 验证服务发现功能;4) 添加应用基本配置和阿里云AK、SK以及EDAS的namespace;5) 启动服务, 查看EDAS控制台, 查询服务, 查看服务注册是否成功.2.2.2 统一配置服务模块适配改造统一配置服务模块Config Server迁移之后改造适配使用EDAS的应用配置管理ACM (ApplicationConfiguration Management)组件. 适配改造后, 统一配置服务组件由服务端、客户端和控制台组成, 其中控制台由管理员进行使用, 发布各种配置管理命令, 其管理模式如图4所示. ACM 控制台管理员ACM后端服务器集群配置配置ACM 客户端ACM 客户端应用1应用2 图4 ACM配置管理管理员只需在控制台上进行配置更改, 更改之后的配置信息就可以快速自动被推送到ACM后端的服务器集群中, 并在秒级延迟内在各个ACM客户端的应用中生效. 利用ACM可以在微服务中极大减轻配置管理的工作量, 同时增强配置管理的服务能力.适配改造完成后, 系统各模块均纳入EDAS的应用部署管控中, 充分利用EDAS的应用生命周期管理和微服务治理机制, 实现云上应用的一键部署、弹性伸缩、灰度发布以及故障自愈等功能.130 系统建设 System Construction2.3 模型检验当完成系统上云之后, 为了保证系统数据的完整性和正确性, 需要对数据进行一致性检验, 虽然可以利用数据库迁移工具在迁移任务结束后进行数据校验,但由于系统数据量过大或会遇到增量迁移的情况, 对全部迁移数据进行校验会使工作总量十分巨大, 因此需要对数据进行采样, 通过采样数据的校验结果判断迁移数据的正确性. 由于迁移数据为多维数据, 且数据之间存在关联, 数据的期望和样本概率也很难计算, 本文采用吉布斯采样方法对迁移数据进行采样, 再对采样数据进行一致性校验.假设源数据库中的迁移数据为X={X1,X2,···,Xm},Xi={xi1,xi2,···,xin}, 迁移完成后云上的数据为Y={Y1,Y2,···,Ym}, Yi={Yi1,Yi2,···,Yin}, 伪代码如算法3所示.算法3. 数据采样校验算法1) 对于源数据集X随机选择维度i(i=1,···,m).2) for t=1, ···, T  for j=1, ···, n   X(t+1)∼p(Xj|X(t+1)+1)(t)(t)j1,···,X(tj−1,Xj+1,···,Xm)  循环采样得到采样数据集A={a1,···,anum}, 完成源数据集采样.3) 在Y中选取与采样数据集A所对应的采样数据集B={b1,···,bnum},完成云上数据集采样.4) flag=1  for i=1, ···, num   if ai

本文标签: 服务 应用 系统 迁移 数据

更多相关文章

小米手机怎么装windows系统

4天前

标题:小米手机安装Windows系统教程 一、前言oookk在移动设备领域,Android和iOS操作系统占据了主导地位。但有些用户可能会好奇是否能在自己的小米手机上运行Windows系统&am

如何恢复U盘里格式化数据?别慌,有带图详细步骤!

4天前

U盘,这个小巧的存储神器,我们几乎天天都在用。但有时候,一不小心手滑,U盘就被格式化了,里面的东西好像全没了&#xff0c

macOS系统下载和配置git教程

4天前

目录 1.下载安装git 1)没下载过->通过homebrew安装Git  2)下载过 2.创建ssh key、配置git 1)设置用户名和邮箱 2)创建s

windows系统下更新nodejs

2天前

1.打开cmd,在命令行中输入:where node ,找到node的安装位置“C:Program Filesnodejs” 2.查看nodejs版本&#xff

在windows系统上安装Hadoop

2天前

Hadoop都是在Linux上安装、配置、操作的,那么Hadoop可以在Windows上安装、运行吗? 答:我们知道Hadoop官网只提供了Hadoop的tar.gz安装包&

Windows系统下CMD命令行切换目录文件

2天前

一、按部就班,让你彻底搞懂命令行切换目录文件 1、按 WINR 快捷键打开 运行,输入cmd,点击“确定” 或 按回车键打开命令行窗口。打开后如下:

【完美解决win1110重新设置pin码卡死点不动|无法登录进系统问题】

2天前

想直接解决方案的跳到 【第一步|按照步骤一步一步来】 记录第n次修电脑,也给以后遇到的朋友节省时间心力,所有代码以及操作同时也放在了个人技术博客,,从

windows7系统iis安装不了应该怎么办

2天前

win7下安装IIS,进入window组件里面  找不到web管理工具下的其他选项,如果还是进行确定安装,会弹出提示,缺少组件&#xff0c

win7如何显示文件后缀?Windows系统没有扩展名如何解决?

2天前

这里用文本文件来测试,其他文件格式都一样效果。 在一个文件夹里,有一个没有后缀的文件。 在窗口左上方点击(组织),弹出下拉菜单中选

MacBook Pro (13 英寸, 2012 年中)安装win7系统

2天前

准备: windows7 ISO镜像 16G或更大U盘(提前备份,需要格式化) Apple 官方提供的 windows7驱动程序 详细步骤&#x

惠普ENVY x360 14 2024 锐龙版笔记本重装win7系统教程

19小时前

惠普ENVY x360 14 2024 锐龙版笔记本是一款2024年3月份上市的商务办公笔记本电脑,这款电脑搭载了amd ryzen 5系列处理器以及发烧级独立显卡,能够让用户们有着不错的办公体验

软件授权系统设计的最佳实战

16小时前

软件授权系统设计的最佳实战 在软件开发中,授权管理系统是保护知识产权、实现商业化运营的重要组成部分。本文将深入浅出地介绍如何设计和实现一个安全可靠的软件授权系统。 一、为什么需要软件授权系统? 在商业软件开发中,我们常常需要: 控制软

win10怎么重装win7 win10系统重装win7的详细步骤

10小时前

在某些情况下,我们可能需要将Windows10重装为Windows7操作系统。尽管Windows10是最新的操作系统版本,但有时仍然有用户因为个人喜好、软件兼容性或其他原因而希望回退到Window

红帽7Linux系统,在没有取消挂载硬盘情况下移除硬盘进不去系统解决方案

7小时前

相信很多朋友在初学Linux操作系统时,都会遇到这个问题。在vm虚拟机中,有时候因为一些实验要添加硬盘和删除硬盘,在删除硬盘时忘记取消挂载硬盘,删完后重

华为p40手机怎么安装windows系统

7小时前

华为P40手机怎么安装Windows系统 一、了解背景与概念 步骤: 认识局限性:理解由于硬件和软件兼容性的限制,实际体验可能无法完全等同于真正的Windows系统。选择

不使用虚拟机,也能让你m1芯片的mac电脑上跑起windows系统

6小时前

🎉 前言 首先,让我们简单回顾一下在mac上想要运行windows操作系统都有哪些方法。首先,m1芯片以前的的mac电脑可以安装双系统。而m1芯片以后的mac就只能在各大

Windows系统下gsutil 工具使用(下载waymo perception数据集为例)

6小时前

Windows系统下gsutil 工具使用 方法一方法二 方法一 winR,输入cmd进入命令行,直接 pip install gsutil 如果速度慢,就加上清华源

windows系统Python-3.6安装教程(保姆级教程)

5小时前

windows系统Python-3.6安装教程 文章目录 windows系统Python-3.6安装教程前言一、配置Python环境1.下载Python:下载选项解释: 2.安装Python安装注

在windows10系统中搭建Rust语言开发环境详细介绍(修订)

5小时前

在windows10系统中搭建Rust语言开发环境详细介绍(修订) Rust运行在Linux, OS X, Windows, FreeBSD, Android, iOS操作系统上。 Rust是

如何在windows上安装centos单系统,以及安装事项和 centOS Linux和centOS Stream区别

5小时前

目录 为什么安装centos系统下载centos镜像centos官网centOS Linux和centOS Stream区别项目终止日期(EOL)上游 vs 下游CentOS LinuxCentOS Stream更新频率阿里云镜像源安装ce

发表评论

全部评论 0
暂无评论