后端服务迁移方案_第1页
后端服务迁移方案_第2页
后端服务迁移方案_第3页
后端服务迁移方案_第4页
后端服务迁移方案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

后端服务迁移方案阶段时序动作双写+数据对比1新rdb集群上线双写+数据对比2新服务上线,无流量双写+数据对比2后端自己发起的流程比如job,新服务上线一份新的,独立运行双写+数据对比2消费二方mq,新服务使用新的消费组消费原有消息双写+数据对比3新旧服务比较转发服务comparator上线,定时拉取新旧库数据对比是否一致,并打印对比日志双写+数据对比4旧服务改造上线双写+数据对比4旧服务http读、写请求转发comparator,再转发到新服务双写+数据对比5运行若干天,根据数据对比结果处理程序问题,无问题后可确认写程序已无问题双写+数据对比5comparator打印部分新服务读请求结果,同时调用旧服务获取结果,对比是否一致,无问题后可确认读程序已无问题灰度6由于数据是周期性的,而后台管理系统仅是内部人员使用,因此数据不做迁移,后台使用新旧不同前端入口做灰度流量转发灰度6新服务新增数据id起始值远大于旧服务id最大值灰度6由于是任务发放的业务,c端不产生新数据,都由后端生成数据,接口如果有id,转发旧服务,旧服务加开关,如大于阈值则转发新服务灰度6c端接口根据id查询,转发旧服务,旧服务加开关,如大于阈值则转发新服务,小于则继续走旧服务灰度6c端列表接口聚合新旧服务数据,旧服务做聚合,加开关切流过渡期7旧服务已无有效数据,关闭聚合逻辑切流完成8旧服务只做转发ip漂移9旧服务的ip漂移至新服务,完成迁移后端服务迁移方案服务器和应用系统迁移方案一、迁移方案总体思路新旧系统的迁移是一个整体系统工程。迁移必须保证用户系统建设的相关要求,在迁移过程中,我们需要重点考虑几个问题:1、数据迁移如何保障“业务中断停机时间”。业务中断对用用户无论是生产环境还是测试环境均存在较大的恢复风险,这样的风险特别是对于时间敏感型数据还是对于数据完整性业务都是不可以接受的。我们基于这样的要求,考虑到如何将停机时间最小,能否实现0停机的建设目标?i.对于应用IIS和其他应用服务器来说,我们可以基于应用服务器的动态业务扩展集群方式,来实现服务器不停机环境下的增加业务节点操作,这样可以实现应用服务器“热添加”到新环境中的故障转移/负载均衡集群系统中,在部分应用服务中我们可以使用session会话复制来实现旧系统的全局环境变量和会话请求状态也迁移到新环境中来。考虑到会话复制和状态的快速实时,我们可以采用会话内存复制,考虑到会话复制和状态的安全性,我们可以采用会话数据库复制管理。ii.对于数据库而言,我们可以基于数据库本身自带的数据库镜像技术、数据库日志传递技术来实现各自的分库、迁移库的构建,数据库镜像技术可以让我们不但保证数据库迁移的不停机,而且还可以保证万一迁移中出现停机故障也不影响源数据库,而日志传递技术构建的迁移可以保证系统数据库迁移以异步方式进行,这样可以让我们的系统环境在网络出现故障的情况依然可以进行迁移任务窗口的正常工作。2、迁移涉及到的除了应用、实例、数据库的操作以外,还涉及到迁移前规划、迁移后测试的完整性测试。这些测试包括但不限于数据一致性测试、数据完整性测试、应用会话状态完整性测试、连接中断测试、数据恢复测试。只有这样才能保证迁移的安全性和有效性。二、服务器硬件环境迁移方案1.迁移评估迁移前,对迁移方案进行评估以确保迁移成功。首先需要勘察现有系统的架构和资源使用状况,评估过程必须包含以下信息和内容:现有系统支撑的服务数量以及在服务器中的分布情况现有物理服务器资源占用状况,包括CPU、内存、磁盘和网络连接状况,为保证迁移成功,目标虚拟机规格应不低于原物理机标准当前的物理环境是否支持虚拟化,是否支持资源扩展,因为在迁移之前须在物理服务器上完成虚拟化对当前的存储容量和资源利用率进行评估,需在目标系统中规划好迁移需要的存储空间。需明确现有存储如何利用,比如有些服务器是在本地磁盘上创建系统盘和用户盘,有些服务器则在本地磁盘上创建系统盘而在SAN/NAS上创建用户盘。2.迁移计划通过对现有网络环境的评估,我们对现有资源利用率,服务以及系统需求非常清晰。评估后才能开始对迁移进行计划,步骤如下:一、确定迁移步骤,包括所有服务器的迁移先后顺序,其顺序按风险的高低降序排列。二、确定备份方案,由于现有系统会被加固,某些服务器通过虚拟化重复利用,而在虚拟化前需要清除所有的数据,因此需要对这些服务器进行备份保证服务的连续性。三、确定并准备好迁移所需的工具,包括工具在迁移中必备的一系列功能和使用工具所需具备的网络环境。四、在实际迁移开始之前确定额外的测试环境,该测试环境能够引导测试从而确保迁移成功。因此,测试环境需明确设计的服务器和存储数量。五、规划网络环境,由于网络中的服务器各处不同位置,因此在迁移中需考虑到网络连接情况、数据备份方式,以及网络流量来源,确定网络流量是否会引发网络拥塞六、确定迁移周期以及参与人员,包括迁移起止时间,团队能力建设以及团队成员的角色。3.测试计划迁移计划后,执行小批量的测试迁移方案,这里会涉及到首批迁移的测试和审核,步骤如下:准备用于测试迁移的测试系统环境,在测试时,第一批服务器将会迁移到该系统环境中。安装并核实迁移工具,此时要执行第一批服务器的P2V迁移。对第一批服务器,需分析存储系统,不管该服务器在存储迁移中采用本地磁盘存储还是远端SAN/NAS存储系统。4.迁移测试在第一批服务器和服务的小批量测试迁移后,需对迁移后的服务器进行测试,包括单元测试和性能测试。5.迁移实施在迁移实施过程中,所有的服务器都会被迁移到虚拟化系统下。执行步骤如下:确保批量迁移的整个网络环境已准备完毕,并通过迁移工具完成源系统和目标系统之间的连通。此处的目标系统属于中转系统。对迁移系统进行性能审核和健康检查,如果系统状态监视则停用旧系统并将其服务暂时转移到新的虚拟化系统中。进行利旧,对于一部分可用的旧硬件可在服务器虚拟化中重新再利用,一些软件资源需扩展,如内存和硬盘。这些服务器构成最终的虚拟化基础设施,即最终系统。最后,在目标系统和最终系统之间进行V2V迁移。这样,最终系统完成了现存硬件的重复利用。a.服务器虚拟化前进行备份为了对旧系统中的物理服务器进行虚拟化,需考虑服务器虚拟化带来的影响。例如,现有服务器的重复利用,服务器虚拟化时会对这些服务器的CPU,内存以及硬盘资源进行再利用,然而这些服务器上存在某些服务仍在运行,若无备份则会影响现有业务。因此,在执行迁移和虚拟化之前,必须先对需利旧的服务器进行备份。提供物理备份服务器,并已进行虚拟化,数据和服务器已备份到虚拟化系统。首先,对于要被迁移的服务器上,一般会存在多种服务正在运行,而且这些服务器在迁移评估后认为在虚拟化场景下可再利用的。但是,迁移过程中不允许存在较长的停机时间,因此需要准备一台采用虚拟化平台的备份虚拟机,通过P2V将该服务器备份到虚拟机上。备份完所有需要进行虚拟化的服务器之后,这些服务器上安装虚拟化软件进行虚拟化,根据评估阶段确定的容量规划,在虚拟化平台上创建相应规格的虚拟机,其计算资源用于承接旧系统中的服务。准备好所有的虚拟机后,规划和安装相关迁移工具,将备份系统中的服务迁移到虚拟化系统的虚拟机中。虚拟机迁移是指将备份的虚拟化系统中的应用服务迁移到最终的虚拟化系统中。虚拟机迁移完毕后,要对这些服务进行测试,最后停用旧系统,所有服务切换到虚拟化系统中。b.迁移的详细操作步骤A.在评估阶段,虚拟化和迁移之前需收集的信息如下:性能统计:包括CPU使用率,内存使用率,硬盘IOPS和硬盘使用情况;物理服务器配置:包括CPU规格,内存容量,硬盘容量统计物理服务器部署位置,分析是否支持虚拟化,累计支持虚拟化的服务器数量,并规划出虚拟化中需新增的硬件情况;通过上述无代理收集和代理收集两种场景收集当前系统的使用和配置情况。可采用华为信息收集工具或者第三方工具。B.分析现有服务的依赖条件,对当前系统进行备份。上图描述了一种应用系统下的依赖关系,可作为迁移参考,确定所有服务器的迁移优先级顺序。在确定各服务的依赖条件后,对需进行虚拟化的服务器进行备份。具体备份过程参见本小节迁移实施方案中“服务器虚拟化前进行备份”部分的内容。C.容量规划和虚拟化执行根据当前的资源使用和需求情况,计算虚拟化所需的容量。D.规划应用服务在华为虚拟化解决方案中,同类虚拟机部署在同一个计算资源池中,在同一个池中可相互共享存储/计算资源,一个集群的故障不会影响其他资源池。E.虚拟化规划和虚拟机分配建立虚拟化平台后,要准备最终的迁移资源。迁移前,如果服务器a具备双核CPU和2G内存,那么在虚拟化平台中就创建一个2核/2G内存的虚拟机,并分配相应的硬盘。F.规划迁移工具采用迁移工具从物理或虚拟的服务器向最终的虚拟化系统中进行磁盘复制。G.通过工具执行在线迁移准备好源系统,目标虚拟机以及目标系统后,决定迁移时需使用的迁移工具和迁移策略。H.迁移测试迁移后,需进行测试来验证迁移是否成功,测试场景如下:应用服务迁移后对虚拟化基本功能的监测;迁移前后应用服务的特性功能是否几乎相同;虚拟化系统的性能监控;I.停用旧系统截至目前现有的服务器已经被虚拟化和重复使用,其他一些不支持虚拟化的服务器上对应的服务也已经迁移到虚拟化平台,那么现在可将应用服务切换到虚拟系统并停用旧系统,其步骤如下:三、应用系统数据库迁移方案1.应用服务器迁移到群集环境为满足企业不断的成长需求,实现企业服务器的高可伸缩性、高可用、高可靠性和高性能,提升服务器的SLA,Microsoft到目前为止,提出了五种解决方案:我们对于IIS等应用环境以及.net应用程序框架我们提出构建IIS环境的NLB群集,将当前系统不停机加入到NLB群集中,使之成为群集中的一个节点,而新环境则为另外一个节点。实施完成后再退出此迁移群集,将新环境加入到新的构建的NLB群集。微软的网络负载平衡可以提供最多32台主机的负载平衡,当我们的Web站点需要分担更多用户访问请求的时候,负载均衡无疑是值得考虑的一个解决方案。当然NLB也有相应的限制,像广域网环境中,我们就不能使用NLB进行设置,因为其网络不允许使用同一个MAC地址,也就违反了NLB的基本要求。在安全方面,除了我们进行的端口规则设定,Windows2003Server本身基于TCP/IP堆栈的集成是动态的,不用进行任何人工干预,这种设置有效的防止了DOS攻击等恶意攻击。除此之外,企业结合自身的网络安全,确保NLB站点的高效运作。NLB不但能实现均衡负载,而且还能实现多种形式的冗余。NLB主要用于那些文件改动不大,并且不常驻内存的环境,比如WEB服务、FTP服务、和VPN服务等。NLB不适合用于数据库、邮件等服务,因为不能保证每个节点的数据是一样的。当用户访问集群的时候,集群能将访问请求分摊到集群中的每个服务器上,以达到均衡负载的效果。这些服务器被称为集群节点。在负载平衡中,每个节点的文件一般都要求是一样的。这样每个节点返回给客户的结果都是一致的。一般来说组建一个NLB要求至少两个节点,其中一个节点不能使用,这全部负载将落入到剩下的那个节点上,即全载。Windowsserver2003最多支持32个节点。节点越多,可用性,可靠性就越高。NLB能提供三种冗余功能,软件冗余、硬件冗余、站点冗余。基于NLB集群的Web网站数据库设计1.MSCS,提供后端服务与应用程序的容错移转,可提升系统的可用性。常见的应用有SQLServer与ExchangeServer等。MSCS是由客户端来决定由谁来处理服务请求,所有服务器共享一个共享存储器来储存会话状态。当主动服务器挂了,则继续由被动服务器接手。被动服务器会从共享存储器取出会话状态,继续未完成的工作,以达到容错移转的目的。2.数据库是数据管理最有效的手段,要使用它来高效地管理和存取各种数据资源,必须设计出结构合理、功能完善的数据库。数据库设计时一项复杂的工作,它是一项涉及多学科的综合技术,要求数据库管理员既要懂得数据库知识,又要充分了解应用领域的专业知识。在进行数据库设计时,要根据企业组织中各类用户的信息要求和处理需求来对数据库进行设计。数据库设计的主要内容包过机构性设计和行为特性设计,设计的过程主要包括需求分析、概念设计、逻辑设计和物理设计四个阶段。1234(1)需求分析需求分析就是对现实世界要处理的对象进行详细调查,在了解原系统的概况、确定新系统功能的过程中,获得用户对数据库的数据要求、功能要求、安全要求和完整性要求。(2)概念设计概念设计时将需求说明中关于数据的要求,综合为一个统一的概念模型。概念模型是表达概念模型设计结果的工具,是设计人员对系统的抽象的概括,它能表达用户的需求,且独立于支持数据库的数据库的管理系统和硬件系统。(3)逻辑设计概念设计的结果是得到一个与数据库的管理系统无关的概念模型,而逻辑设计的目的是吧概念设计的概念模型,转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构。(4)物理设计物理设计的任务是确实数据库的存储结构,主要包括确定数据库文件和索引文件的记录格式和物理结构,悬着存取方法,决定访问路径和外存储器的分配策略,实现完整性和安全性以及程序设计等。对于一个比较大的网站来说,数据库集群也应该是以集群的方式建立,这样可以增强网站的性能,提高网站的可靠性。数据库可分为三类:故障切换集群、分布式数据库系统、共享磁盘系统。NLB集群系统的总体设计(1)环境下实现Windows2003服务器集群;(2)在域内环境内的windows2003webserver群集;(3)利用IIS搭建了一个WEB站点,域名为。由于业务的逐渐增加,网站速度也越来越慢,而且经常出现故障,为公司的利益带来了很多的不便;公司决定使用两台WEB站点为客户机提供访问。因此采用了网络负载均衡技术。NLB集群工作原理及算法1.NLB的工作原理当客户向NLB群集(NLB的虚拟IP地址)发起请求时,其实客户的请求数据包是发送到所有的NLB节点,然后运行在NLB节点上的NLB服务根据同样的NLB算法来确定是否应该由自己进行处理,如果不是则丢弃客户的请求数据包,如果是则进行处理。如何将请求数据包发送到所有的NLB节点是NLB运行的关键之处,单播和多播这两种操作模式就是用于实现这一需求。NLB不支持单个NLB群集中的单播/多播的混合环境;在每一个NLB群集中,该群集中的所有节点都必须配置为多播或单播,否则,此NLB群集将无法正常工作。2.负载平衡算法一个负载平衡算法都包含以下三个组成部分:策略:制定任务放置策略的制定者使用的负载和任务量,以及分配的方式。传送策略:基于任务和计算机负载,判定是否要把一个任务传送到其它计算机上处理。放置策略:对于适合传送到其它计算机处理的任务,选择任务将被传送的目的计算机。负载平衡的上述三个部分之间是以不同的方式相互作用的。放置策略利用策略提供的负载,仅当任务被传送策略判定为适于传送之后才行动。总之,负载平衡的目标是:提供最短的平均任务响应时间;能适于变化的负载;是可靠的负载平衡机制。(1)策略人们用来描述负载采用的参数有:运行队列中的任务数、系统调用的速率、CPU上下文切换率、空闲CPU时间百分比、空闲存储器的大小(K字节)、1分钟内的平均负载。对于这些单个的负载描述参数,第(1)个,即采用运行队列中的任务数作为描述负载的参数被证实是最有效的,即它的平均任务响应时间最短,并且已经得到广泛应用。但是,假如为了使系统更全面而采集了更多的参数,则往往由于增加了额外开销,却得不到所希望的性能改善。例如,采用将六个参数中的某两个进行"AND"或"OR"组合,得到的平均响应时间反而比单个参数的平均响应时间还要差一些。(2)传送策略为了简单起见,在选用传送策略时,多选用阀值策略。例如,Eager等人的方法是:在判定是否要在本地处理一个任务时,无需交换计算机之间的状态,一旦服务队列或等待服务队列的长度大于阀值时,就传送这个任务,而且传送的是刚刚接收的任务。而进程迁移能够迁移正在执行的任务,是对这种只能传送刚刚接收的任务的一种改进。在模拟研究七个负载平衡算法时,其传送策略都采用阀值策略。它的阀值策略基于两个阀值∶计算机的负载阀值Load和任务执行时间阀值TCPU。假如计算机的负载超过Load并且任务的执行时间超过TCPU时,就把此任务传送到其它计算机执行。(3)放置策略经过总结,共有以下四种放置策略①集中策略。每隔P秒,其中一个计算机被指定为"负载中心"(LIC),接受所有其它负载的变更值,并把它们汇集到一个"负载向量"中,然后把负载向量广播给所有其它的计算机。当一台计算机认为一个任务适于传送到其它计算机上执行时,它就给LIC发送一个请求,并告知当前负载的值。LIC选一台具有最短运行队列长度的计算机,并且通知任务所在的计算机把任务发送给它,同时,它把目的主机负载值增加1。②阀值策略。随机选择一台计算机,判定若把任务传送到那台计算机后,那台计算机的任务队列长度是否会超过阀值。假如不超过阀值,就传送此任务;否则,随机选择另一台计算机,并以同样方式判定,继续这样做直到找到一台合适的目的计算机,或探测次数超过一个静态值限制LP,当任务真正到达计算机以后,不管状态如何,必须处理该任务。③最短任务队列策略。随机选择LP台不同的计算机,察看每台计算机的任务队列长度,任务被传送到具有最短任务队列长度的计算机。当任务真正到达计算机,无论状态如何,目的计算机必须处理该任务。对此策略的一个简单改进时,无论何时,碰到一台队列长度为0的计算机时,不再继续探测,因为可以确定此计算机是一台可以接受的目的计算机。④保留策略。当一个任务从一台计算机离开时,该计算机检查本地负载,假如负载小于阀值T1,就探测其它计算机,并在R个负载大于T1的计算机中登记该计算机的名字,并把登记的内容保留到一个栈中。当一个任务到达一台超载的计算机时,就把这个任务传送到此台计算机栈顶的计算机上。假如一个计算机的负载低于T1,就清空栈里保留的所有计算机名。从论文中,比较了②和③两种策略,结论是:以简单(计算不昂贵)的方式,利用少量状态,第②中方法往往获得比第③种方法更好的效果。第③中方法比较复杂,它必须用性能的改善来补偿额外花费,所以取得的效果会稍差一些。12344.3地址分配在NLB群集中,每台服务器都会有一个属于自己的静态IP地址,同时NLB群集中的所有服务器还有一个共同的IP地址—NLB群集地址;当客户向NLB群集(NLB的虚拟IP地址)发起请求时,其实客户的请求数据包是发送到所有的NLB节点,即:NLB算法需要NLB群集中的所有主机都能看到发往群集的每一个数据包。然后运行在NLB节点上的NLB服务根据同样的NLB算法来确定是否应该由自己进行处理,如果不是则丢弃客户的请求数据包,如果是则进行处理。网络负载平衡使得单个子网上的所有群集主机可以同时检测群集IP地址的传入网络通信。在每个群集主机上,网络负载平衡驱动程序充当群集适配器驱动程序和TCP/IP堆栈间的过滤器,以便在主机间分配通信。在配置负载均衡的时候步骤主要有三个(1)启用网络负载平衡;(2)连接到现存的群集;(3)添加主机到群集。1.启用网络负载平衡:在开始——运行中输入nlbmgr,单击“确定”按钮,打开“网络负载平衡管理器”窗口。2.右击“网络负载均衡群集”,然后单击“新建群集”命令,然后在弹出如图5-2的对话框中的IP地址和其他群集信息,选择群集操作模式为“多播”,然后单击“下一步”按钮。在这里添加的IP地址是和DC所在在同一个网段的,在这里使用一个多播的原因是在客户端是同时能收到信息。3.在“群集IP地址”的对话框中可以添加IP地址,如果有多个群集的IP地址也可以来添加多个IP地址,如图5-3是添加的端口的IP地址,在本次实验中只有一个网络群集的IP地址所以在下面选择自动添加而不是选择所有的端口,而在解析的时候是通过DNS服务器解析而没有使用其他的协议因此所采用TCP协议的端口HTTP80;所以在这里选择80即可。4.在完成上面群集IP地址的规划之后,会出现如图5-4所示的端口规则:端口规则是可以按照群集中每一个成员的负载量来分派客户端的通信。当然在下面如图所示的界面中也可以来删除端口规则。删除端口规则也可以更加明显的看出群集的效果,删除端口规则可以按照端口的优先级来响应客户机请求,假设当优先级高的出现故障那么优先级低的主机会提供服务。当然对于客户机来说是感觉不到那个到底出现故障。5.完成上面的步骤在“连接”的对话框中来输入和服务器相连的IP地址;及,点击“连接”就会弹出如图5-5所示的对话框。然后在下面的接口中选择服务器的网络适配器(IP地址)。6.完成上面的步骤基本在DC上的配置就完成了,在这里所采用系统默认的自动状态,单击完成即可。但是要明白在配置优先级的时候最多可以配置32位,因为NLB网络负载均衡做多支持32台主机。默认情况下他的初始状态是“已启动”,设置更高的优先级的原因是当把“端口规则”删除的并且当其中的一台的出现故障的时候,优先级就会在这时候起到作用。如图5-6所示,把第一台主机的优先级设为1。7.启动网络负载平衡后,在下图中5-7所示:在群集中已经有了一台主机。根据实验的需求还需要添加一台主机到群集:如果在第二台上添加的时候首先会连接到“现存的群集”。8.把第二台主机连接到现存的群集,在这里连接时候是在第二个服务器上面添加。在第二台服务器上(IP地址为)的开始——运行中输入“nlbmgr”,单击确定单开“网络负载均衡管理器”窗口,右击“网络负载均衡平衡群集”,然后“选择连接到现存的”命令。在弹出的的对话框中输入第一台计算机的IP地址“”单击“连接”然后完成就可了!添加主机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论