软件即服务 架构师必备技能指南:SaaS架构设计( 三 )


安全组件解决了用户数据安全可靠的问题,但数据往往还需要解决隐私问题,各企业之间的数据必须相互不可见,即相互隔离 。在SaaS产品中,如何识别、区分、隔离个租户的数据时你在实施SaaS平台架构设计时需要考虑的第二个问题 。
7.3、可配置组件
尽管SaaS产品在设计之初就考虑了大多数通用的功能,让租户开箱即用,但任然有为数不少的租户需要定制服务自身业务需求的配置项,如UI布局、主题、标识(Logo)等信息 。正因为无法抽象出一个完全通用的应用程序,所以在SaaS产品中,你需要提供一个可用于自定义配置的组件 。
7.4、可扩展组件
随着SaaS产品业务和租户数量的增长,原有的服务器配置将无法继续满足新的需求,系统性能将会与业务量和用户量成反比 。此时,SaaS产品应该具备水平扩展的能力 。如通过网络负载均衡其和容器技术,在多个服务器上部署多个软件运行示例并提供相同的软件服务,以此实现水平扩展SaaS产品的整体服务性能 。为了实现可扩展能力,就需要SaaS展示层的代码与业务逻辑部分的代码进行分离,两者独立部署 。例如使用VUE+微服务构建前后端分离且可水平进行扩展的分布式SaaS应用产品 。对于可扩展,还有另外一种方式,即垂直扩展,其做法比较简单,也比较粗暴:通过增加单台服务器的配置,如购买性能更好的CUP、存储更大的内存条、增大带宽等措施,让服务器能够处理更多的用户请求 。但此做法对于提升产品性能没有质的改变,且成本很高 。
7.5、0停机时间升级产品
以往的软件在升级或者修复Bug是,都需要将运行的程序脱机一段时间,等待升级或修复工作完成后,再重新启动应用程序 。而SaaS产品则需要全天候保障服务的可用性 。这就需要你考虑如何实现在不重启原有应用程序的情况下,完成应用程序的升级修复工作 。
7.6、多租户组件
要将原有产品SaaS化,就必须提供多租户组件,多租户组件是衡量一个应用程序是否具备SaaS服务能力的重要指标之一 。SaaS产品需要同时容纳多个租户的数据,同时还需要保证各租户之间的数据不会相互干扰,保证租户中的用户能够按期望索引到正确的数据,多租户组件是你必须要解决的一个问题 。其余的组件都将围绕此组件展开各自的业务 。
总结
本文将软件应用程序的发展历程作为切入点,并围绕WHAT(是什么?)、WHY(为什么?)、WHERE(在哪些领域实施?)和HOW(怎么样?)这四个问题对SaaS展开了介绍 。文中详细的阐述了基于SaaS架构的软件设计需要注意的问题,并分析了SaaS产品的特性、有点、缺点 。最后还介绍了基于SaaS架构的软件产品应该具备的几个核心组件以及他们各自的作用 。希望本次能够让你对SaaS平台架构有一个全面的了解,并且在你准备实施SaaS平台架构设计前能够提供一些价值的参考信息 。




推荐阅读