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

1、介绍
从计算机诞生开始,就伴随着计算机应用程序的演变 。简短的回顾历史,我们可以清楚的看到应用程序发生的巨大变化 。上世纪70年代中期,随着个人PC机的爆炸式增长以及程序员的崛起,让计算机的计算能力得到了大跨越的提升,个人PC机上可以运行非常复杂的应用程序 。
进入上世纪80年代,随着Bulletin Board System(简称:BBS)电子公告板系统的兴起,它可以为广大PC机用户提供基本的在线服务,如在线聊天、电子邮件、消息发送和文件下载 。由于受到那个时代计算机网络传输速度的限制,在线服务的响应速度慢,交互体验差是最大的通病 。
【软件即服务 架构师必备技能指南:SaaS架构设计】进入90年代中后期,随着万维网的出现,计算机的计算能开始进入快速提升阶段,加之网络基础设施的持续完善,计算机网络技术也随之发展起来,这让Web网站可以提供功能多元化和更为复杂的在线服务,直到今天,我们所看到的互联网(或云)开发的在线服务应用程序 。
在这段计算机技术快速成长的时间里,计算机软件到底发生了哪些变化?从历史的发展中,我们可以看到,应用程序本身没有发生本质的变化(程序=数据结构+算法),变化的是软件的供需方式发生了改变 。现在,应用程序消费者不需要再在他们的PC机上下载和安装特定的应用程序,即可获得软件所提供的计算服务 。在云计算技术的支持下,消费者(企业或个人)只需要使用Web工具(浏览器)访问并登录软件提供商的Web系统,通过简单的配置,就可以获得自己所需应用程序服务 。这种通过网络即可使用软件的服务,即使SaaS(软件即服务) 。

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

文章插图
 
图 1-1 2015中国SaaS生态
在本篇文章中,我们将着重介绍SaaS架构设计,并围绕WHAT(是什么?)、WHY(为什么?)、WHERE(在哪里?)和HOW(怎么样?)这四个问题,对以下的几点进行阐述:
软件即服务 架构师必备技能指南:SaaS架构设计

文章插图
 
图 1-2 文章结构
  • 1、什么是SaaS平台?
  • 2、为什么需要使用SaaS平台架构?
  • 3、SaaS平台主要的特性和优势有哪些?
  • 4、SaaS平台适合在什么领域进行实施?
  • 5、SaaS平台有哪些先天性的缺陷?
  • 6、SaaS平台有哪些核心的组件?
  • 7、实施SaaS架构设计时的注意事项有哪些?
2、什么是SaaS平台?
软件即服务 架构师必备技能指南:SaaS架构设计

文章插图
 
图 2-1 SaaS组成结构
在你决定实施SaaS品台架构设计前,你有必要先了解SaaS平台是什么 。从宏观的角度来看,SaaS是一种软件应用程序交付方式,软件提供商集中化托管一个或多个软件应用程序,并通过互联网向租户体用这些软件应用程序 。从分类上看,SaaS(软件即服务)也是云计算重要的一部分 。目前国内主流的云服务提供商如阿里云、百度云、腾讯云等,为广大用户提供了不同业务需求的云服务,它们大致可以分为以下几类:
  • 1、基础设施即服务:如CPU、Network、Disk和Memory等
  • 2、平台即服务:如阿里云服务器和云数据库等
  • 3、软件即服务:阿里短信、阿里邮箱等
  • 4、数据即服务:如阿里云对象存储,七牛云存储等
  • 5、其他软件服务:机器学习、人工智能等
SaaS应用程序的任何更新或者修复漏洞操作都是由软件提供商负责实施和处理的,由于租户是通过互联网获取软件服务,所以租户端无需下载任何的升级包或者修复补丁,是一种开箱即获取最新软件产品的服务方式 。
通过对什么是SaaS的介绍,接下来,我们了解一下选择SaaS作为软件架构来设计产品的一些理由 。
3、为什么选择SaaS?
我们将从不同的角度来阐述几个为什么选择SaaS的理由 。透过对这些因素的分析,为你是否需要将自己的软件SaaS化提供一定的参考依据 。
3.1、消费者角度
获取软件服务的方式足够简单,SaaS也许是迄今为止使用软件最简单的方式之一,租户只需要动动鼠标和键盘,即可在几小时甚至几分钟内获得一个大型的软件服务 。相比于传统使用软件的方式,租户省去了研发、部署、运维等一系列繁复的过程,且获得软件的时间和费用成本都大幅度降低 。
3.2、商业角度
SaaS可以体用跨地域、跨平台的软件服务 。与此同时,软件服务商可以统一对软件进行版本管理,这将带来以下几点好处(包括但不限于):


推荐阅读