飞道的博客

项目管理 | 应用系统适配迁移方法论

372人阅读  评论(0)

应用系统适配迁移是一个艰巨、繁杂的过程,需要在充分调研的基础上统筹规划推动,在长期的项目适配过程中总结出一套行之有效的方法论,简单归纳如下:

1、 系统现状评估

2、 系统适配

3、测试验证、迁移

1、系统现状评估

系统现状的评估包含三个方面的内容:硬件评估、基础软件评估和应用软件调研。

1.1 硬件评估

硬件包括整机和关键元器件。整机主要是PC终端、服务器、交换机、存储设备;关键元器件有CPU、磁盘、显卡等。其中的核心是CPU,它是计算机系统的心脏。而国产化对于CPU的设计、代工、生产、封测各环节都有相应的要求。在PC机和服务器CPU中,x86架构占据了绝对优势地位。

1.2 基础软件评估

基础软件评估对象主要有操作系统、数据库、中间件。

1.3 操作系统

操作系统是计算机系统的内核与基石,主要管理硬件与软件资源,对于上层软件的架构、开发等有决定性影响,可以说操作系统决定了整个软件生态。由于历史的原因,目前PC机领域几乎被windows垄断,服务器领域主要是linux或其他类unix系统。

1.4 数据库

数据库主要提供了数据存储和管理功能,是现代信息系统的核心组成部分,为其提供数据支撑服务。数据库的配置(cpu/内存/存储)、并发度、主备架构、读写分离等功能特性对于整个信息系统的功能、性能有着决定性的影响。目前信息系统中最常用的数据库主要有Oracle、SQL Server、MySQL。

1.5 中间件

中间件是介于应用程序和操作系统之间的一类软件,它屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,将注意力集中在自己的业务上,减少了程序设计的复杂性。中间件种类繁多,最常用的主要有消息中间件和应用服务器中间件。

1)消息中间件

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并给予数据通信来进行分布式系统的集成。其最突出的特点是提供数据传输的可靠性与高效性,主要解决分布式系统的数据传输需求。其主要作用如下:

应用解耦——将传统的紧耦合(如函数调用)方式用松耦合(消息发布/订阅)方式代替,确保服务调用方的问题不会扩散到服务提供方(或反之),最大限度提升系统整体可用性。

异步调用——尽量用异步掉头代替同步调用,提高效率。

流量削峰——在访问量急剧增加的情况下,利用消息中间件的缓存能力,保证程序不会因为突发的超负荷请求而崩溃。

2)应用服务器中间件

应用服务器又称为应用服务器软件平台,是为应用程序提供业务逻辑的代码,通常基于组件,位于以服务器为中心的架构的中间层,该架构主要基于web,与应用服务器相对应的还有web服务器。简单来说,web服务器只负责处理http协议,只能发送静态 页面的内容;而jsp、asp、php等动态内容需要通过CGI等接口交给其他程序去处理,这个其他程序就是应用服务器,也就是能实现动态网页技术的服务器。

1.6应用软件调研

应用软件调研主要是了解软件的架构、插件、开发语言等,以便对应用软件适配难度进行初步评估。应用软件调研结果可记录如下表:

序号

应用名称及版本

应用用途

应用使用范围

B/S、C/S或单机应用

浏览器控件

配套外设(品牌、型号)

应用来源

应用开发商

开发语言

所需环境(数据库、)

1

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

注:

1)B/S模式:终端用浏览器方式打开;C/S模式:终端用客户端软件打开

2)控件(或插件、组件):使用过程中浏览器需要加载的程序

3)配套外设:使用过程中需要用到的打印机、扫描仪、扫码枪等外设

4)应用来源:本单位应用/上级单位应用/平行单位应用

1.7 应用架构

通常应用架构主要分为C/S、B/S两种架构,简要介绍如下:

1) C/S架构

C/S架构即客户机-服务器(Client-Server)架构。C/S为两层结构,服务器负责数据的存储和管理,客户机负责完成与用户的交互。客户机通过网络与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作;服务器接受客户机的请求,将数据提交给客户机,客户机将数据进行计算并将结果呈现给用户。

2) B/S架构

B/S架构即浏览器-服务器(Browser-Server)架构,是从C/S架构改进而来,可以说是三层C/S架构。

第一层是浏览器,相当于客户端,只有简单的输入输出功能,处理极少部分的事务逻辑。由于客户不需要安装客户端,只需浏览器就能上网流量,所以它面向的是大范围的用户,界面设计简单、通用。

第二层是web服务器,扮演着信息传送的角色。当用户想要访问数据库时,就会首先向web服务器发送请求,web服务器同意请求后会向数据库服务器发送访问数据库的请求,这个请求是以SQL语句实现的。

第三层是数据库服务器,它存放着大量的数据。当数据库服务器收到了web服务器的请求后,会对SQL语句进行处理,并将返回的结果发送给web服务器,接下来web服务器将收到的数据结果转换为html格式发送给浏览器,于是呈现我们打开浏览器看到的界面。

B/S架构浏览器请求、服务器响应的工作模式。用户可以通过浏览器去访问Internet上由web服务器产生的温备、数据、图片、动画、声音和视频等信息,而每一个web服务器有可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。

B/S架构下,应用的主要事务逻辑在Server端实现,极少部分事务逻辑在Browser实现,其最大的优点是总体 拥有成本低、维护方便、分布性强、开发简单,无需安装任何专门的软件就能实现在任何地方进行操作,客户端零维护,系统扩展性非常强。随着web技术的飞速发展以及人们对网络的依赖程度加深,B/S一举成为当今最流行的应用架构。

1.8 插件

在B/S架构下,浏览器基本只承担最基本的输入输出功能,总会出现一些web端解决不了的情况,比如操纵硬件或本地文件,浏览器插件是上述情况下一种有效的解决手段。即使html5的出现增强了web端的功能,但是就目前技术和发展趋势来看,浏览器插件技术无法被替代。

插件是一种遵循一定规范的应用程序接口编写出来的程序。很多软件都有插件,插件有无数种。例如在浏览器中安装相关插件后,web浏览器能够直接调用插件程序,用于处理特定类型的文件。浏览器插件,是基于浏览器的原有功能,另外增加新功能的工具,常见的插件有flash插件、RealPlayer插件、MMS插件、ActiveX插件等。

插件的定位是开发一个实现原有纯净系统平台、应用软件平台不具备的功能的程序,其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行,因为插件需要调用原有纯净系统提供的库函数或者数据。

2、 系统适配

2.1 终端适配

终端作为日常办公的载体,除了常用的办公软件之外,还需要访问一些后台应用,或者连接打印机等一些外设。因此终端的适配可分为终端常用工具软件适配、应用系统客户端适配和外设适配。

2.2 常用工具软件适配

PC终端经过多年发展,已经拥有了种类繁多的通用工具软件,要实现终端的国产化,必须做到常用工具软件的国产化,为此需要对工具软件一一进行适配。终端上工具软件的适配本质上是对操作系统的适配,目前PC终端的操作系统基本上被windows占据,所以需要相关的软件厂商针对国产类linux操作系统重新开发、编译并打包发布相应的国产化软件包。

经过多年的发展,目前大致完成了以下对多种工具类软件的适配工作:

Ø 办公软件

Ø 输入法

Ø 安卓兼容

Ø 网络软件

Ø 邮件

Ø 即时通讯软件

Ø 图片类软件

Ø 影音软件

Ø 光盘刻录

Ø 扫描工具

Ø 杀毒软件

Ø 压缩/解压缩

Ø 文件管理类

Ø 远程工具

Ø 开发工具

Ø 备份还原

Ø 文档处理

Ø 安全类软件

2.3应用系统客户端适配

终端访问后台应用主要可分为以下几种方式:

1)客户端访问——应用为C/S架构,以往x86平台上,操作系统绝大部分为windows系统,替换为国产化终端后,CPU架构和操作系统都发生了变化,应用客户端软件的适配需要应用开发厂商深度参与,通常需要修改远吗并重新编译打包,适配成本较大。

2)浏览器访问——应用为含插件的B/S架构,适配主要考虑插件的适配,如果采用的是商业插件,还需支付插件的购买费用,同时需要应用开发厂商参与,可能需要修改远吗,难度相对较小,适配成本不大。

3)浏览器访问——应用为不含插件的B/S架构,基本可以直接跨平台迁移,适配较少需要应用开发厂商参与,适配成本小。

2.4外设适配

外设适配主要进行外设硬件驱动程序和操作系统的适配。以往x86平台上,windows驱动程序居多,而linux驱动程序较少。终端国产化以后,在PK体系下,CPU采用arm架构,操作系统为类linux系统,驱动程序需要厂家深度参与,修改并重新编译,适配成本较大。

2.5服务端适配

 适配内容

服务端适配指应用系统在国产平台上的部署适配,涉及CPU架构、操作系统、数据库、中间件和应用软件的适配。

目前,针对国产CPU平台、国产操作系统、国产数据库、国产中间件已经完成了三类基础软件的适配。另外,开源软件在许多业务系统中广泛使用,国产CPU平台也完成了业界主流基础软件的适配,比如开源操作系统Debian、Ubuntu、Fedora、CentOS、开源数据库MySQL、开源中间件tomcat等。

服务端适配的关键取决于应用的跨平台移植性,而移植性主要与开发框架、编程语言有关:

1).Net架构

.Net是微软开发并主推的软件开发平台,主要应用在windows操作系统上而且未使用虚拟机机制,强烈依赖于windows操作系统。由于国产CPU平台上的操作系统都是类linux系统,.net应用程序的适配基本上要重新开发,适配成本较高。

2)C/C++语言

C/C++语言具有较高的可移植性,基于C/C++开发的应用程序,可以少量修改源代码,编译后平滑移植到国产CPU及国产操作系统上,适配成本较低。

3)Java语言

使用Java语言开发的应用程序是运行在Java虚拟机上的,不论什么操作系统,只要有java虚拟机都是可以运行的,与操作系统无关,因此java开发的应用程序具有良好的平台移植性,无需修改(或少量修改代码)就可以直接运行在国产化CPU平台上。除java外,还有其他跨平台开发语言,比如python、perl、ruby等,这些跨平台开发语言开发的应用软件,可以平滑移植到国产化CPU和国产操作系统上,适配成本低。

适配模式

服务端适配根据规模和预算情况可以分为物理机模式和云模式。

1、物理机模式

IT基础资源采用物理服务器承载的优点是部署简单,运维技术难度低,在规模比较小的时候投入成本小;缺点是系统可靠性不高,后续系统扩容困难,在规模比较大的时候资源浪费严重。所以IT基础资源采用物理服务器承载的方式适用于规模小预算有限的情况。

2、云模式

IT基础资源采用私有云平台承载的优点是系统可靠性高,后续扩容简单,随着规模的扩大,资源利用率高;缺点是初始投入成本高,初期运维技术难度大。所以IT基础资源采用私有云平台承载的方式适用于规模较大、预算充足的情况。

考虑到很多用户当前已经部署了基于x86的私有云或是vmware的虚拟化集群,为了降低运维管理的复杂度,可以采用国产PK云与现有x86云融合部署的方式。PK云具备纳管x86异构资源池和vmware虚拟化集群的能力,随着业务系统的适配迁移逐渐完成,x86云最终被PK云替换。

2.6 应用适配

应用系统软件架构可分为C/S架构和B/S架构,无论何种架构,适配内容都可分为终端适配和服务端适配。

用户可根据应用系统技术栈的实际情况结合自身技术、预算等综合规划考虑采用何种方式推进适配进程。通常的适配方式有:1)终端适配现行,服务端适配暂缓;2)终端适配和服务端适配同步进行。

3、 测试验证、迁移

适配完成后,按照生产环境要求搭建验证环境,将现有应用系统的数据导入验证环境进行高仿验证。

高仿验证完成后,导入业务流量试运行,试运行后将验证环境转为生产环境。

 

作者:申志超


转载:https://blog.csdn.net/m0_46573967/article/details/111942387
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场