admin 管理员组

文章数量: 1184232


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

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

更多相关文章

快速上手TP-LINK150M无线USB网卡免驱版:wifiautoinstallsetup安装包的简便安装流程

1月前

`声明Copyrighte2018普联技术有限公司版权所有,保留所有权利未经普联技术有限公司明确书面许可,任何单位或个人不得擅自仿制、复制、誉抄或转译本书部分或全部内容。不得以任何形式或任何方式(电子、机械、影

双系统启动出问题?EasyBCD来帮你搞定!

1月前

目录一、前言:当电脑启动变成“玄学问题” 你是否经历过这样的崩溃瞬间:重装系统后黑屏只剩光标闪烁?双系统切换突然提示“找不到操作系统”?或者给电脑装了个Linux练手,结果开机直接进Windows,连选择界面都消

QQ浏览器自动更新不想受?三步操作,让升级由你掌握!

1月前

如何关闭QQ浏览器自动更新功能:详细步骤与常见问题解析在日常使用电脑的过程中,许多用户都曾遇到过软件自动更新的困扰。以QQ浏览器为例,其自动更新功能虽然旨在为用户提供最新版本的功能和安全补丁,但部分用户反馈新版本可能存在

Ubuntu系统下的QQ问题大汇总:一键解决自动关闭!

1月前

每次开机启动电脑,Ubuntu  10 linux qq 老是自动退出,QQ登陆了还没几分钟呢,刚想聊几句天的,悄无声息的QQ自动关闭了。 只要修改一下qq配置文件(usrbinqq)就可以了。 具体如下。

Ubuntu 9.10中,摆脱QQ频繁自动关闭的困扰

1月前

[align=center][img]转载:作者:tianwanjun8680.blog.163.comQQ每次打开聊天 窗口,和别人聊天时,点击历史或者传输文件和图片时,或者正和别人聊天QQ就自动关闭了,搞得老

Ubuntu 下的QQ烦恼?一招搞定自动退出的小技巧

1月前

原文地址: 前几天每次开机启动电脑,Ubuntu 9.10 linux qq 老是自动退出,QQ登陆了还没几分钟呢,刚想聊几句天的,悄无声息的QQ自动关闭了。 然后今天也奇怪了,QQ登陆后不会自动退出了,而且可以同时登

无线路由器桥接掉线?5个实用方案让网络流畅

1月前

半年前用两个tplink无线路由器搭建了一个桥接的网络,但是二级路由器总是断线需要重启。经过大半年的摸索,偶然间解决了问题,在这里共享给为同样问题困扰的朋友。我的配置是tp 742做主路由器,连接联通的光纤。t

网络优化新方案:探索TPLink与Netcore路由器的桥接模式

1月前

朋友的无线到我家就很微弱,天气状况好的时候,还是可以接受的,糟的时候网络质量就非常的差。 于是果断入手了TPLink,通过桥接的方式 扩展他的信号,让wifi覆盖无死角。 基本配置如下(参考网络上的资料,但是不同的路由

解锁家庭网络配置:了解192.168.0.1和192.168.1.1的用途

1月前

哈哈,这个问题问得真好!让我来给你讲讲192.168.0.1和192.168.1.1这两个"网络小管家"的区别吧~ 其实啊,它们就像是两个不同性格的邻居,虽然住在一个大社区(192.168.0.0-192.168

192.168.0.1与192.168.1.1:家庭网络地址的细微区别

1月前

哈哈,这个问题问得真好!让我来给你讲讲192.168.0.1和192.168.1.1这两个"网络小管家"的区别吧~ 其实啊,它们就像是两个不同性格的邻居,虽然住在一个大社区(192.168.0.0-192.168

玩转Dism++,打造流畅的电脑体验

1月前

简介:Dism++是一款集成多种功能的Windows系统优化管理工具,提供从更新补丁管理到系统封装的一站式服务。它以高效、稳定和易用性获得了IT爱好者的广泛好评。本文将详细介绍Dism++的核心功能,包括系统更新补丁管理、垃圾清理、系

Windows系统维护新纪元:Dism命令的高效应用实践

1月前

Dism是什么? dism 命令(Deployment Image Servicing and Management)是Windows操作系统中的一个命令行工具,用于管理和维护映像文件(如Windows安装映像或修复映像)。d

Dism++:让你的电脑焕然一新,快速提升性能,告别延迟!

1月前

无需全家桶,不占内存,5MB的绿色工具让你的Windows流畅如新!在Windows系统长期使用过程中,系统臃肿、运行卡顿、C盘爆满等问题困扰着绝大多数用户。面对这些痛点,很多人的第一反应是重装系统,但今天我将介绍一款更

一招搞定电脑卡顿?Dism++优化技巧大公开

1月前

1.系统文件清理 虽然dism的文件清理比较弱,但相对于其他清理工具来说,清理系统垃圾文件功能比较丰富,选择软件的空间回收栏目,勾选所有的清理功能,点击扫描,稍等片刻,即可扫描出不需要的文件,点击清理即可。 其中需要注

从入门到精通:Dism++带你玩转系统安装,新手也能玩得转!

1月前

系统安装是一个简单而又复杂的活。有的仅仅为了安装系统,先把ESD转为ISO。 有的因为安装器不支持ESD,而转换为WIM。还有的在解压ISO……反正各种心烦 本文将通过一些实例,帮助大家驾驭Dism 。 目录

掌握Windows 10的Dism技巧,让系统管理更高效、更便捷

1月前

目录一、DISM是什么 DISM,英文名称为Deployment Imaging and Management,部署映像服务和管理。这是一个命令行工具,用于部署前从.wim文件、.ffu文件、.vhd文件或.vh

Dism命令新探索:深入理解与实践Windows映像文件维护

1月前

Dism是什么? dism 命令(Deployment Image Servicing and Management)是Windows操作系统中的一个命令行工具,用于管理和维护映像文件(如Windows安装映像或修复映像)。d

解锁Dism命令的强大功能:为你的Adobe Flash Player添翼

1月前

DISM(Deployment Image Servicing and Management)可以编辑WIM,安装,卸载,配置WinRE或者WinPE,也可以用来部署系统。它通常存在于C:Windowssystem32路径下(若是

Adobe Flash Player的未来发展趋势预测

1月前

目录背景: 在日常的工作中,由于我的笔记本自带的SSD固态硬盘是512G的容量,平时下几个大型的文件或者资料就要快满了,于是决定换一个1TB的固态硬盘,换之前首先确认自己现在用的是什么类型的固态硬盘,推荐大家一款

Ubuntu系统维护秘籍:备份步骤详解,保护你的劳动成果!

1月前

记录ubuntu的系统备份方法: 测试平台:ubuntu16.04,已安装nvidia384 cuda opencv protobuf等等运算库。使用ubuntu时经常需要重新安装电脑,和windows不一样的

发表评论

全部评论 0
暂无评论