在PaaS上构建SaaS应用程序时先搞清这些

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

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

1、识别遗留系统资产

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

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

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

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

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

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

3、提取组件

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

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

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

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

构建和安装SaaS应用程序

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

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

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

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

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

本文分享自微信公众号 - 云计算D1net(D1Net02)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-03-10

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

39860
来自专栏云加头条

腾讯云 API 网关产品发布

腾讯云已在近期上线了 API 网关产品,协助开发者通过简单方式即可完成 API 配置管理、发布版本、访问控制等功能,并可进一步对接腾讯云云市场中的 API 市场...

1.5K20
来自专栏云计算D1net

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

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

36760
来自专栏云计算D1net

云应用:混合云需要混合网络来支撑

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

31440
来自专栏Linyb极客之路

模块化与微服务比较

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

75430
来自专栏极乐技术社区

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

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

223100
来自专栏ascii0x03的安全笔记

物联网通信架构总结

 本文从宏观上介绍IoT的通信架构,让大家都日渐频繁的物联网设备工作原理有一个初步的理解,主要分为了直连、网关、云三种模式。 1. 直连模式(direct in...

67250
来自专栏安智客

Fuchsia与微内核

The BOOK ? Fuchsia,是由Google公司开发的继Android和Chrome OS之后的第三个系统,与之前谷歌开发的基于Linux内核的操作系...

74770
来自专栏编程

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

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

20780
来自专栏Android 开发者

应用崩溃了?Android vitals 帮您精确诊断

辛苦开发的应用终于顺利在 Play Store 上线了? 恭喜!—— 但您的开发工作还没有结束。

18530

扫码关注云+社区

领取腾讯云代金券