对于SaaS软件开发,可以将敏捷方法和RUP过程方法结合起来,敏捷过程能够保持快速、稳定的开发速度,RUP过程可以保证系统的灵活架构、良好的扩充性和移植性,促进开发过程达到一个最佳的平衡状态,以获得很高的满意度。
软件服务模式的产品发布程序比一般软件产品的发布要复杂得多,要涉及到软件产品部署和实施的前期活动和后期活动,其中增加了“软件产品的部署(Deployment)规划、部署设计、部署设计的验证和实施、监控”等活动。
在开发中,要考虑到网站或数据的迁移、多种升级方式、多版本共存的运行环境等需求,对数据/系统的兼容性要进行充分的讨论和分析,保证用户升级过程中,所获得服务没有受到影响,数据受到保护,一切使用正常。
而且,要处理好客户之间的关系,对于功能变化较大的新版本升级,一般要事先得到用户的许可或同意。
对于软件服务模式,当产品发布到运行环境(服务器)中,在用户开始使用之前,还要进一步验证。所以,对软件服务模式的产品发布中最后实施阶段,其时间性非常强,一般放在周末或晚上时间(9:00pm~6:00am)。如果提供7x24不间断的软件服务,就需要采用DNS、服务器、目录等快速切换方式来实现无缝升级。
部署的规划、设计和验证
软件部署(Deployment) 是SaaS一个必不可少的、关键的环节。软件部署是通过整合的、虚拟化的或逻辑化的资源和进程的集中管理,对所要运行的程序提供技术和环境的支撑,从而保证软件系统被部署到合适的运行环境中能具有最优的、最可靠的性能表现,并能对用户和系统的各种数据进行有效的存储、备份和恢复等。
在软件部署的技术分析上,就是以业务目标为出发点,将这些要求转化为可用来设计部署体系结构的技术规范。而在部署设计中,必须考虑多种质量因素。
逻辑体系结构 它能决定服务分配的最佳方式和系统扩充性、维护性等。
服务质量要求 必须满足服务质量 (QoS) 要求,建立在逻辑体系结构和QoS要求的映射关系,从而达到性能、可用性、可伸缩性、可维护性等软件服务的质量目标。
用量分析 有助于通过系统负载的使用模式来隔离性能瓶颈,开发出满足 QoS 要求的策略,用于部署设计中。
用量分析因素主要有:用户数量及类型、活动和非活动用户、管理用户、使用模式、用户增长、用户事务和用户/历史数据等。
使用案例 尽管使用案例已包含在用量分析中,但评估部署设计时,应参考使用案例,确保任何案例中所揭示的问题在设计中得到处理或解决。
根据性能指标,对一些关键的使用案例进行研究,以确定在系统层次如何保证该要求得到实现的结构、技术或方式。
服务级别协议 指定了最低性能要求以及未能满足此要求时必须提供的客户支持级别和程度,相当于设计的底线(Bottom Line)。
成本 有必要设计2-3个软件部署方案,通过分析、比较,对资源优化,采用平衡策略,能够在业务约束范围内达到业务要求,并获得成本最优化。
业务目标 是软件部署的最终目标,包括这些目标实现的业务要求或约束。软件部署设计的质量好坏,最终取决于对满足业务目标的能力的评估。
除此之外,下面还要着重讨论可用性、可伸缩性和安全性的影响因素和规划策略,保证部署设计成功。对可用性、可伸缩性和安全性等的验证,也是至关重要的。
可用性的规划策略
当可用性的要求达99.99%或99.999%,通常要求系统必须是一个容错系统。容错系统必须能够在硬件或软件出现故障时继续运行,其实现手段是为提供关键服务的硬件(如 CPU、内存和网络设备)及软件配置冗余组件。
可用性设计将考虑到可用性降低或组件丢失时所发生的情况,其中要考虑连接的用户是否必须重新启动会话和一个区域内的故障对系统的其他区域的影响程度。QoS 要求应考虑这些方案并指定部署如何对这些情况作出反应。
单一故障点(Single-point failure)是指没有备用的冗余组件的硬件或软件组件,而这些组件是重要路径的组成部分,即该组件出现故障会使系统无法继续提供服务。设计容错系统时,必须确定并消除潜在的单一故障点。
其常用的可用性策略有:
负载平衡 使用冗余硬件(如服务器集群-Server Cluster)和软件组件来分流处理负载。
负载平衡器(如NetScaler LoadBalance) 把对某个服务的任意请求引导至该服务的服务器集群中当前负载最小的某个服务器上。如果任一实例发生故障,其他实例可以承担更大的负载。
故障转移 涉及对冗余硬件和软件的管理,在任何组件发生故障时提供对服务的不间断访问并保证关键数据的安全。如Sun Cluster 软件为后端组件管理的关键数据提供了故障转移解决方案。
复制或备份服务 为同一数据的访问提供多个源,如目录服务器为LDAP目录访问提供多个复制和同步策略。
可伸缩系统的规划
可伸缩性是指增加系统容量的能力,而且要求在增加系统资源时不改变部署的体系结构。
在系统需求分析、设计阶段,系统容量的预测往往只是估计值,可能与部署系统的实际情况存在较大差异,所以部署具体设计时,应考虑到必然存在的偏差,引入系统部署可伸缩性的策略,使部署后的系统具备足够的灵活性,具有足够的处理合理时间内(如系统运行后 6~12 个月)增加负载的潜在容量,以便在出现异常峰值负载时能够从容应对。
可伸缩系统的规划,一般有以下3个策略,可从中选择一个或多个组合策略。
高性能设计策略 在性能要求的确定阶段加入潜在容量,以处理可能会随时间推移而增长的负载,并在预算控制内尽可能提高系统的可用性。这一策略可使系统具有一定的缓冲时间来应付增长的负载,所以可以相对从容地制订更大的系统扩展方案。
渐增式部署 基于负载的要求以及评估,事先明确系统扩展的条件以及条件可能达到的时间,对每一个重大的系统扩展特定日期/时间有一个估计和安排,从而建立部署的整个日程表。
文章来源于领测软件测试网 https://www.ltesting.net/