ramostear.comramostear.com 谭朝红的技术分享博客

格言 编程是一门技术,也是一门艺术 !

总结:实施SaaS模型的11个关键步骤

总结:实施SaaS模型的11个关键步骤

总结:实施SaaS模型的11个关键步骤

前言:在SaaS模型中,应用程序是通过网络向用户提供服务。用户只需要通过网络访问应用程序便可完成自身的业务活动,而不需要安装和维护软件。任何的SaaS模型的实施,都应具备以下三个特征:

  1. 多租户架构:SaaS模型设定了多个用户共享一套应用程序源码,此源码被服务提供商统一托管
  2. 自定义可配置:不同用户共享一套应用程序源码,这就要求SaaS模型须具备一定的自定义和可配置功能,以便可以管理和维护用户的自定义业务
  3. 可访问:SaaS模型依赖于网络为用户提供服务,所以必须确保在任何的时间点都能为用户提供数据访问服务。

为了能够打造一款成功的SaaS软件,在实施SaaS模型的过程中,应该遵循以下的步骤:

1. 提前了解业务

​ 在考虑技术和架构的问题之前,清楚的了解业务非常重要。没有了解业务,任何应用程序的设计和开发工作都无从谈起。为了得到更好的SaaS模型实施效果,必须在很早的阶段就开展需求调研工作,明确软件的业务和设计目标。调研的范围应该是充足的、广泛的,以便更好的识别出SaaS模型的业务边界和核心内容。在调研时,应该包括以下的内容:

  1. 采用什么样的架构进行设计?
  2. 用户类型和用户规模分别是什么?
  3. 如何处理应用程序的可扩展性、安全性和稳定性这三个问题?

​ 业务先于设计和开发,在非常早的阶段便开展调研和需求分析工作非常重要,它有助于评估项目的成本、周期和风险。除此之外,还应该重视现有系统在改造工程中所面临的挑战。

2.选择能胜任的团队

​ 物尽其用,人尽其才,无论技术和架构如何,选择适合SaaS模型的技术团队尤为重要。在实施SaaS模型之前,决策者应该选择一支由经验丰富的开发人员组成的团队,他们必须对SaaS模型的概念有深入的了解,且该团队应该拥有多种专业技术的人员,同时对SaaS行业中应该遵循的最佳实践有充分的了解。

3.设计可扩展的基础架构

一旦技术团队了解完业务需求,下一步的重点就是构建可扩展的基础架构组件:

  1. 数据中心
  2. 网络设施:网络安全(如HTTPS加密、认证和鉴权)
  3. 硬件设施:操作系统和存储
  4. 数据备份和系统监控工具

​ 除了上述之外,内部的评审工作也应该同步进行,以便在构建基础架构是评估应用系统的总体成本,在最终决定实施SaaS模型前,还需考虑一下因素(成本驱动):

  1. SaaS软件的成熟度模型
  2. 可伸缩性和可用性
  3. 客户端兼容性
  4. 数据备份和恢复
  5. 网络带宽和存储空间
  6. 安全管理(加密级别和安全证书)

4.网络带宽和应用服务器

​ 这点非常重要,为了达到良好的用户体验效果,用户规模和类型决定了带宽的大小和应用服务的数量。因此需要综合考虑SaaS模型的带宽大小和应用服务器的数量,合适的搭配能够消除数据中心的网络瓶颈问题。如果不自行构建数据中心,选择外包托管(如阿里云,腾讯云,亚马逊)方式,则应该考虑以下因素:

  1. 数据中心是否高可用(7x24x365)?
  2. 是否具备监控和灾备能力(容灾和数据恢复)?
  3. 是否具备数据安全防护能力(防攻击,防破解)?
  4. 是否具备可测试能力(完备的API测试接口,沙盒测试环境,SDK开发包)?

5.构建基础架构组件

​ 基础设施设计完成后,我们须准备可靠的、稳定的、经过实际验证的功能组件,此过程对于确保SaaS模型的高可用性能指标尤为重要。在评估这些硬件指标时,我们还需要确保其能够在项目交付日期范围内交付所有的硬件组件并确保调试正常。

6.向基础设施中持续部署SaaS应用

​ 一旦基础设施可用,开发团队就应该持续构建和部署SaaS应用。此时应对服务器进行统一的管理和配置,根据不同的业务需要安装对应的操作系统,分配指定的IP,设置用户访问策略以及配置防火墙等。

7.容灾和数据恢复

​ 现在,SaaS应用程序已经准备就绪,下一步应该考虑的问题是如何容灾和数据恢复的问题。面对容灾和数据恢复,需要考虑一下几点:

  1. 如何应对灾难的发生(不可抗拒因素不在考虑范围)
  2. 如何缩小受灾范围以及如何减小受灾带来的影响
  3. 如何在灾难发生时,应用程序还可以局部可用
  4. 如何在有限的时间范围内完成数据恢复

8.系统监控

​ 系统监控子系统对于SaaS模型特别重要,好的应用监控子系统有助于更早的发现问题,及时的避免灾难的发生。在SaaS模型中,监控子系统应该对一下的参数进行监控:

  1. 内存和CPU的使用率
  2. 磁盘的I/O读写速率
  3. 操作系统和应用程序日志
  4. 其他应用组件(数据库、Web容器、TCP等)性能参数

9.建立客服中心

​ 一旦SaaS应用成功投放市场,它就需要有一个客户支持服务中心(面向业务或者技术)。客户支持服务中心应该具备适当的票据处理和在线沟通能力,一个优秀的SaaS模型,客户支持服务是必不可少的,它有助于提升SaaS软件的服务质量。客户支持服中心应当适时地提供邮件、短信、电话、票据等服务能力,如果SaaS模型中有需要技术团队继续关注的问题,还应该提供工单处理服务,以便在发生技术故障时,能够以最短的时间将故障信息以邮件或者短信的形式发送给相关的技术人员。

10.SaaS成熟度模型

​ 在实施SaaS模型时,选择何种等级的成熟度模型,直接决定了你需要为此付出的资金成本,同时也影响着软件的交付周期和开发风险。因此,在面对此问题时,可以先考虑第二级或者第三级SaaS软件成熟度模型,然后根据业务量和用户规模,逐步满足高性能、可配置、自定义等更高级别成熟度模型的要求,以降低实施SaaS模型的风险。SaaS软件成熟度模型评估对照表如下图所示:

11.规范化的文档

​ 在完成上述10个关键步骤后,需对整个SaaS模型做出详细的记录。如需求文档,设计文档,组件文档以及接口文档等。这些文档将帮助运维人员在运维过程中快速定位系统故障。如果SaaS模型在后期有任何的修改和升级操作,这些文档也可以帮助工作人员了解SaaS模型。

(转载本站文章请注明作者和出处:谭朝红-ramostear.com,未经允许请勿做任何商业用途)

发表评论