2017年7月11日,阿里云生态、阿里云研究中心、移动信息化研究中心携手数百位SaaS合作伙伴,共同发布《2017中国SaaS用户研究报告》,阿里云研究中心主任田丰现场分享中国SaaS市场的最新研究成果。

SaaS是Software-as-a-Service(软件即服务)的简称,SaaS并不是指代一个行业或者一种技术,它是一种2B的专业型软件租赁使用模式。

Saas是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demandsoftware”(按需软件),theapplication service provider(ASP,应用服务提供商),hostedsoftware(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。

在这种模式下,客户不再象传统模式那样花费大量投资用于硬件、软件、人员,而只需要支出一定的租赁服务费用,通过互联网便可以享受到相应的硬件、软件和维护服务,享有软件使用权和不断升级,这是网络应用最具效益的营运模式。

SaaS软件应用服务经过多年的发展,已经开始从SaaS1.0的阶段慢慢进化到SaaS2.0的阶段。类似于Web1.0与Web2.0的概念,SaaS1.0更多地强调由服务商本身提供全部应用内容与功能,应用内容与功能的来源是单一的;而SaaS2.0阶段,服务运营商在提供自身核心SaaS应用的同时,还向各类开发伙伴、行业合作伙伴开放一套具有强大定制能力的快速应用定制平台,使这些合作伙伴能够利用平台迅速配置出特定领域、特定行业的SaaS应用,与服务运营商本身的SaaS应用无缝集成,并通过服务运营商的门户平台、销售渠道提供给最终企业用户使用,共同分享收益。

不同的岗位工作环境有不同适用的应用技术:对于一线现场(如生产制造、仓储物流配送),一般采取扫码POS或微信小程序,扫码后简单操作几下就把业务关键点记录了下来;对于一线零售店面收银,现在大多数白牌平板App;对于来回跑中间分销、渠道、采购、督导的外勤,基本是手机App来处理业务;对于坐在后端的运营人员、人事法务财务,基本用的就是台式电脑Web应用来处理业务。

因为客户端是不同岗位、不同素质能力水平、不同业务重心、不同工作环境,所以功能不一样、用户体验不一样,所以后端的服务层业务逻辑也都不一样。

这层因为涉及到客户端接入,所以需要API网关中间件,因为比较轻(因为还有一层公共业务逻辑处理层),所以采取微服务中间件(如SpringCloud),这些不同的微服务都打包在一个个的Docker中,为了快速弹性启动扩容。前面有API网关中间件可以做分流限流、路由导流,这样后面微服务容器怎么扩容,对前端都透明。

但是总有一些业务逻辑是这四种端应用都要处理的,所以还得分出一层叫做公共业务逻辑处理层。这些公共业务逻辑处理层按功能职责也分成一个个的服务,放在Docker容器中,受Swarm或Kubernetes集群管理。

API网关中间件就属于这一层,只不过客户端来的请求都首先经过它再路由到业务逻辑微服务。另外一个重要的分布式技术中间件是数据传输。可以采取Kafka分布式消息队列来做数据管道。我们也可以使用ZooKeeper分布式中间件进行各种后端处理服务的配置以及执行调度。这些分布式中间件也都部署在DockerSwarm集群管理下,用API形式供上下层调用。

有些数据需要放在内存里为了快速查询,所以我们需要用到分布式Redis集群。

有些数据需要持久性放在关系型数据里,我们可以用MySQL关系数据库。为了分布式存储,我们可以在MySQL之前再放一个MyCAT分库分表分布式中间件。为了读写分离提高性能,我们可以在MyCAT之前再放一层MySQLProxy,用于主备读写分离。

有些数据是文件形式,如图片、音频视频,我们可以用分布式文件系统和对象存储系统来存放。我们还可以使用CDN技术来做这些静态文件的分发加速。

有些数据是特殊的数据结构,如时间序列数据(IM消息一般是这样特点)、如图数据(社交网络一般是这样特点)、如大文本数据(点评评论一般是这样特点),为了加快这些特殊结构的数据存取,我们可以用时序数据库、图数据库、文档数据库等等。

这些数据库引擎可以为了加快性能,部署在物理服务器上。而这些数据库引擎存取的数据,可以放在块存储云硬盘卷上。

这是个模块,会用到后端业务逻辑层、分布式中间件层、数据存储层的各项技术。这个模块主要有两大功能:

在API网关这样的纯技术中间件基础上,我们还需要研发一个用户登录网关,用于辨别不同的企业用户登录进来,进行身份认证、路由指定。这个用户登录网关需要和API网关进行配合使用。因为登录是每个用户访问的第一步,这块最容易会成为性能瓶颈,所以要尽量做到高性能编码、分布式扩容/分流负载均衡。

主数据管理有以下主要动作:主数据同步复制、主数据分发、主数据更新(有先后顺序有存取锁问题)。所以主数据需要独立出来,供各个系统使用。为了防止主数据存取成为瓶颈,数据库这块也需要注意主备读写分离、分库分表、可方便分布式部署。当然也需要有后台图形化的主数据管理系统来做人工的干预维护。

不仅仅是要计算资源分开,还要存储资源也分开。因为对于大数据,存储容量要大(但不一定存储访问性能要高),内存要大(要进行大量数据取出进行计算),CPU性能要高(要密集计算)。所以对于统计、查询、分析这些功能,服务器云主机和云存储都要和应用业务处理分离。

分离后,就需要从应用业务处理系统中抽取数据。所以,对于数据抽取层:我们有一系列的ETL工具,还有数据爬虫引擎用于爬内外静态数据,还有用Flume、Logstash、Splunk收集IT资源日志和应用系统运行日志。

抽取来的数据可以放在大数据仓库中,我们可以采用HadoopHDFS、Hbase、Hive等等开源中间件。要计算处理时,我们可以在YARN或MapRedurce计算调度框架下使用Spark、Storm来进行内存计算和流式计算。处理后的数据,我们可以用presto查询,我们也可以用ElasticSearch来搜索。最后,我们使用一些可视化工具把结果用图表形式输出出去。

按照这样的技术架构搭建好后,每一个客户要在公有云上专属独立部署,那么给它用DevOps工具新启几个服务层Docker,如果公共业务逻辑模式也要变化,那就新启几个公共业务逻辑Docker。毕竟我们有分布式用户登录验证网关和API网关,所以不管是公有云专属部署还是私有云部署,都没问题。

根据企业用户数量分析,2017年中国SaaS热点区域市场TOP5是上海、北京、广东、江苏、浙江,共占全国66.3%市场份额,政府主导的江苏“1+30+300”和浙江“十万企业上云”项目为SaaS提供发展良机。从服务行业看,上海银行业、北京教育培训、广东制造业、江苏制造业、浙江电商是热门中的热门。

针对未来一年计划应用SaaS的企业数量分析,“2017年中国SaaS潜力区域市场排行榜”TOP5是湖北、天津、河南、山东、四川五省市,占明年增量市场的21%。

可以看出,天津、山东、四川基本以制造业作为SaaS重点部署的领域:天津原属中国老工业基地,拥有像天津铁厂、渤海钢铁集团这样的大型企业,“中国制造2025”目标出台后积极部署智能制造,并政府出面计划三年投入1亿元的科技经费支持产业发展;山东不仅重工业等大型企业聚集,且轻工业十分发达。而湖北作为中国承东启西、连接南北的交通枢纽,中国内陆重要的空港坐落在武汉天河国际机场,水、陆、空三运发达,数据显示,湖北计划一年内应用SaaS的企业中交通运输行业比例最高。

中国的SaaS企业正借生态之力加速发展,通过iDST和阿里云平台,SaaS企业将快速低成本获得数个场景化人工智能解决方案;同时,统一的API通路和生态平台也将原先企业之间遭遇的数据孤岛逐渐打通。

相关SaaS企业已在开放生态的帮助下赶超美国同行的技术和市场水平。如小能客服以AI为海尔节省了1000名人工客服的成本;华栖云基于阿里云产品体系搭建视频SaaS,一档综艺节目只要1个人1台笔记本就能代替过去86人的采编团队;Kuickdeal、云客等新型细分领域的SaaS企业也在迅速发展。

中国SaaS行业头部区域市场初现,上海、北京、广东雄踞金融、教育、制造、房地产、软件开发、住宿餐饮、零售、政府、电商、医疗、文化传媒、咨询中介12个行业区域市场排行榜榜首,而湖北是交通运输业SaaS市场榜首,山西是能源业SaaS市场榜首,浙江是信息通讯业SaaS市场榜首,山东是农林牧副渔业SaaS市场榜首,河北是采矿业SaaS市场榜首。

参考链接: