走好这四步,再将遗留组件迁移到SaaS应用程序

遗留系统含有成千上万个执行一大批业务功能的服务组件。比如说,假设贵企业运行的一个内部遗留系统中的一套组件向企业高管提供一份统计报告。为了赶在截至日之前获得这份每周提交的报告,该高管应该考虑将必要的组件迁移到新的软件即服务(SaaS)应用程序。

如果经济可行性研究表明这种迁移是明智的决策,他应该与其他高管以及由开发人员、系统工程师和业务分析人员组成的一个团队合作,将遗留系统细分成多个组件,然后着手开发那个应用程序。

1. 识别遗留系统资产

开发团队、高管和遗留系统负责人需要识别遗留系统的资产。这些资产包括如下:

说明文档,包括遗留系统的描述和流程图以及灾难恢复计划;公司内部数据中心所在的设施;与遗留系统有关的利益相关者;这包括当前用户(包括高管)、开发人员、系统管理员和业务分析人员;遗留系统运行在上面的IT基础设施;以及开发人员的技术技能,比如在平台即服务(PaaS)上开发SaaS应用程序,让开发人员能够在虚拟环境共享技能。

2. 发现必要的组件及依赖关系

开发人员应该扫描源代码,查找供以后提取的服务组件。源代码包括主程序及其与子例程之间的接口,子例程可能采用了不同于主程序语言的编程语言编写而成。

下一步是,开发人员识别主程序和子例程中的组件之间的依赖关系。服务组件的依赖关系可能与其他服务组件的依赖关系之间存在多对多的关系。

在识别组件的过程中,开发人员还应该设计一份流程图,帮助自己将服务组件彼此之间的依赖关系具象化。

3. 提取组件

开发人员应确定应该从遗留系统提取哪些组件。提取服务组件的简易性取决于下面五个因素:

源代码一开始编写得有多好;源代码打补丁、再打补丁有多频繁,以修复软件错误;遗留系统的说明文档是否定期更新;开发人员的技术技能(比如,遗留系统的原始开发人员可能再也找不到);以及服务组件的依赖关系具有的复杂性。

4: 接受或拒绝提取的组件

一旦开发人员厘清了依赖关系,他可以接受或拒绝依赖关系。接受依赖关系并不总是意味着按原状接受服务组件。开发人员可能需要重新设计服务组件的结构,以满足新的业务需求。结合依赖关系有望消除重复或类似的服务功能,因而减少了服务组件的数量。开发人员把所有被接受的服务组件放入到一个组件库,以便在构建SaaS应用程序时使用。

构建和安装SaaS应用程序

在PaaS上构建SaaS应用程序时,开发人员应该确定:

1. 用户、开发人员、系统管理员和业务分析人员期望从SaaS应用程序获得什么样的东西,然后选择SaaS应用程序运行所需的云部署类型:私有云、公有云还是混合云。

2. 根据用户、开发人员、系统开发人员和业务分析人员的预期要求构建应用程序时,使用哪些被接受的服务组件。

3. 什么方法将服务组件编排到松散耦合的SaaS应用程序最经济高效,并测试该应用程序的结果是否满足预期目标。松散耦合是指,应用程序在等待用户响应的同时,应用程序的其余部分可以继续运行。

安装应用程序后,开发人员应该监控SaaS应用程序的性能以及业务需求方面出现的任何变化,这些变化可能需要更新及重新设计应用程序的服务组件。

原文发布于微信公众号 - 云计算D1net(D1Net02)

原文发表时间:2015-03-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏软件测试经验与教训

客户端流畅度测试

37010
来自专栏JAVA烂猪皮

微服务写的最全的一篇文章

今年有人提出了2018年微服务将疯狂至死,可见微服务的争论从未停止过。在这我将自己对微服务的理解整理了一下,希望对大家有所帮助。

4042
来自专栏恰童鞋骚年

《大型网站技术架构》读书笔记一:大型网站架构演化

此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。

1201
来自专栏张红林的专栏

常见机器学习效果调优思路整理

实际工作中,对模型和算法的效果如果不满意,需要进行调优,但往往不知道该怎么下手,本文是一篇博客的学习笔记,分享给大家。

8240
来自专栏腾讯大数据的专栏

HBase在腾讯大数据的应用实践

前言随着腾讯产品与技术的发展,几乎任何一个与用户相关的在线业务的数据量都在亿级别,每日系统调用次数从亿到百亿,对海量数据的高效插入和快速读取变得越来越重要。而传...

3476
来自专栏静晴轩

快应用之开发体验纪要

何谓「快应用」呢?它是基于手机硬件平台的新型应用形态,标准是由主流手机厂商组成的快应用联盟联合制定。其标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准...

1382
来自专栏Linyb极客之路

模块化与微服务比较

本文比较了微服务和模块化整体架构(modularized monolith )的区别。现在大家一股脑从整体单片monolith迁移到微服务,但是这种转变真的适合...

4903
来自专栏编程

Android程序员的救赎之路(二)

上回说到要举一个例子来说明,在看例子前,我们先来说说问题,有时我们会在工作中遇到很难的专业问题,如设计一个业务算法或用OpenGL做3D特效,这类的问题虽然不简...

1988
来自专栏极乐技术社区

『教程』来自小程序开发者的实例教程第二期

最近全国各地很多城市都出现了高温天气,极乐蜀黍温馨提醒,高温天气小心热感冒,各位程序猿们这样的天气空调冷饮西瓜和电脑键盘代码更配哟~ 这周继续为大家带来的是来自...

19810
来自专栏云计算D1net

如何应对混合云网络的复杂性?

在经过一番艰苦努力的之后,我最终调试解决了一个非常棘手的混合云网络问题。 虚拟私有云(VPC)提供了一个包含免费虚拟机(VM)使用时间的培训项目,学生可以跟随一...

3586

扫码关注云+社区

领取腾讯云代金券