学习并设计一个 AI-SaaS/Serverless 平台(大坑-持续更新-随时修改)

千年暗室,一灯即明.

——《剑来》网文/烽火戏诸侯

需要设计一个SaaS为我司提供服务,边学边做.目前和AWS(中国),阿里云,GCP(美)都有沟通/意向.

其中会涉及差分隐私,联邦学习,SaaS架构设计等一系列坑,希望有完结的一天哈哈,and,欢迎邮件探讨.

SaaS架构设计

在本篇文章中,我们将着重介绍SaaS架构设计,并围绕WHAT(是什么?)、WHY(为什么?)、WHERE(在哪里?)和HOW(怎么样?)这四个问题,对以下的几点进行阐述:

SaaS平台是什么(WHAT)

SaaS平台作为一种应用软件的新模式在国内慢慢侵入各个行业,它的发展过程虽然有曲折,但随着不断有新技术的加入SaaS平台,SaaS平台成为新的热点。但是有些新兴企业听说了SaaS平台,但是却不是很了解SaaS平台,如:SaaS平台是什么、SaaS平台的收费、SaaS平台的优点以及SaaS平台的未来等等。下面介绍下:SaaS平台是什么。

SaaS定义

SaaS即Software-as-a-service(软件即服务)是一种基于互联网提供软件服务的应用模式。所有网络基础设施及软件、硬件运作平台的所有前期实施、后期维护都由SaaS平台完成,用户只要租赁软件服务通过互联网托管、部署及接入就可以使用SaaS服务。

SaaS平台的收费

SaaS平台不在需要软件授权费用:SaaS平台厂商将应用软件部署在统一的服务器上,根据客户按照自己的需求租用相应的软件模块来收取费用,客户通过互联网获得所需要软件和服务。

SaaS平台的优点

用户不在需要任何硬件、IT方面的专业技术人员等方面费心思,而专注核心业务的发展;用户在软件方面的费用不需要一次到位,可以按月、或年等周期形式付费,维护、升级等费用也不用额外附加;按需要定购SaaS平台的相应服务,增加功能或减少自己不需要的模块更加自由;SaaS平台有专业人员对市场以及相应大数据进行研究,加快SaaS平台软件的更新速度;只需要通过浏览器或其他终端设备就可以随时随地应用软件服务。

SaaS平台的未来

SaaS平台在国内有非常良好的客户群,另外各行各业都有信息化意愿、使用正版软件的需求,这些都决定了SaaS平台的未来有广阔前景。对客户或SaaS平台厂商SaaS平台都有着非常强大的吸引力,SaaS平台将会给客户和SaaS平台厂商之间带来双赢的大好局面,因此SaaS平台将成为未来软件应用的发展趋势。

以上是对”SaaS平台是什么”的介绍,SaaS平台厂商不需要去用户现场安装调试、不用开发很多相同的功能,SaaS平台可以集中收集需求并升级维护。对于用户来说节省了软件方面的初步投入,减低了购买软件带来的风险,还可以较快速的应用新功能。

SaaS软件即服务的好处是什么

SaaS软件即服务相对传统软件来讲是顺应科技发展的新产物,还有部分企业刚接触SaaS软件即服务产品,他们不是太确定要不要使用SaaS软件即服务,如果使用了SaaS软件即服务能给自身企业带来好处吗,SaaS软件即服务是顺应时代的发展的,因此SaaS软件即服务必定有其明显好处来显示其存在和发展的必然性。下面介绍一下:SaaS软件即服务的好处是什么。

带动价值链新变化

在SaaS软件即服务模式下客户只需要与服务提供商发生关联,在向服务提供商定购业务后客户可以直接使用业务。从客户角度价值链从ASP模式发展到SaaS软件即服务模式。

拥有庞大的市场

如果以订单大小来分类客户,客户往往被分为大客户、典型客户和普通客户。一般典型客户与大客户虽然带来的利益大但却是有限的,每个普通客户虽然利小但却是无穷的。SaaS软件即服务的可复制性让SaaS软件即服务厂商不再细分客户类型让人人都可使用软件、个个都消费得起。因此SaaS软件即服务可以获得普通客户这个庞大的市场。

有效降低企业的成本

SaaS软件即服务为企业节省了昂贵的硬件设备、软件、通信设备、IT人力等成本。SaaS软件即服务的使用使企业能有更多的钱和精力专注自身的业务方面。

不断提高SaaS软件即服务产品性能

企业希望能随时使用最新技术、提高效率,所以要求SaaS软件即服务只有越来越好才能更多的留住客户。因此SaaS软件即服务市场的竞争也越来越激烈,所以SaaS软件即服务厂商不断加强专业的服务、不断更新最新技术,使客户也在最短的时间内享受新技术。

推动网络营销

SaaS软件即服务在线使用软件的服务因其显而易见的优势受到的关注度逐渐升高,传统软件供应商、互联网企业以及政府相关机构都意识到SaaS软件即服务的广阔前景,纷纷投身到SaaS软件即服务产业洪流。

无盗版

SaaS软件即服务用户不需要软件只为自己所需的功能服务付费。软件只是对SaaS软件即服务服务商拥有,而SaaS软件即服务服务商大部分可以自己开发、升级和正版认证软件,软件的需求量变少使得盗版软件没有了生存的根本,因此SaaS软件即服务产品便形成了无盗版。

功能灵活应用

企业采用SaaS软件即服务时通常会使用基于订购的可以确定的定价模式,这让企业可以在需要时购买所需服务。而一旦企业规模缩小只要关闭连接即可。

以上是对”SaaS软件即服务的好处是什么”的介绍,SaaS软件即服务的好处丰富了SaaS的内涵,让更多的企业可以很好的理解SaaS软件即服务能为用户带来发展,小编建议企业想在新科技时代更好的发展,一定要抢先使用SaaS软件即服务这个有利工具。

SaaS平台架构分为哪几部分

SaaS平台架构需要完成从用户申请链接SaaS到用户对自己购买的功能模块的应用整个过程,用户用起SaaS看似简单快捷,但这个过程却需要SaaS平台架构默默完成的非常复杂的处理过程。通过对SaaS平台架构的了解,可以清晰的分化数据的处理过程,让用户也可以明白SaaS平台架构处理数据的优势。

呈现层

SaaS平台架构的呈现层可以使用的客户端可能都浏览器或本地客户端。如果是浏览器则需要Web界面技术、交互技术等技术(如:HTMl5技术、CSS3技术、Ajax技术等)的支持,如果是软件客户端则需要远程桌面技术、软件交互技术等技术支持。

调度层

SaaS平台架构的调度层体现分布式系统的特性之一。调度层首先负责识别并通过AAA认证每个用户请求,然后根据业务处理器的负载、业务特征进行合理的调度。通过应用这样的架构SaaS平台可以横向扩展。此外在存储、缓存等方面为了满足平台的横向扩展需求,调度层也必须具有良好的可扩展性。

业务层

SaaS平台架构的业务层负责接收调度层转发过来的请求,而且还要通过对接受到的请求执行真正的业务逻辑。一般来说业务逻辑的执行使用一台服务器就够了。因此业务层实际是由一排对等的服务器组成的,每台服务器都执行相同的业务逻辑。

数据层

SaaS平台架构的数据库集群用于处理存储关系性很强并且对事务性要求很高的业务数据,这类数据目前还要用传统的数据库集群技术来解决,SaaS平台架构的数据库集群主要是根据业务特征制定数据拆分方案。同时分布式数据库用于存放海量但关系性不强的数据(如:用户的操作日志等)。

以上是对”SaaS平台架构分为哪几部分”的介绍,从SaaS平台架构处理数据可以看出SaaS平台的应用有很强的优势,如用户使用SaaS非常方便简单只要浏览器或本地客户端接口,SaaS平台处理数据要经过层层认证SaaS产品安全可靠,SaaS平台优化处理数据提高SaaS性能。

SaaS设计有哪些注意事项

近期SaaS的优势越来越明显使得SaaS的应用越来越火,很多SaaS公司在创建企业级别的SaaS系统,SaaS要实现它的优势就要在SaaS设计时做好注意事项,避免为SaaS后期带来麻烦。随着企业的去求不断增大SaaS的可扩展性要强,因此在SaaS在设计之初就要为后期的二次开发以及升级做好准备。那么下面介绍下:SaaS设计有哪些注意事项呢?

采用分层设计

SaaS系统分层为租户识别>应用层>数据访问层>缓存层>数据库,一般的业务代码写在应用层,租户识别可以用SPRING拦截器通过THREADLOCAL传递给后端,数据库、缓存层数据设置对于应用层透明。程序员在写代码的时候只关心业务逻辑,不担心多租户的问题。

数据隔离要透明

在数据库访问层对SQL进行改写,在连接池根据TENATNCONTEXT改写SQL这样做好处是:程序员最多把系统搞DOWN了也不至于信息串了互相泄露;将来做分表分库也很方便上层应用不用修改。

租户识别方案

通过URL识别租户:系统给租户生成一个随机的三级域名,如果用户想使用自己的域名,可以在CNAME到我们生成的三级域名,管理系统绑定的域名、登录名判别租户。

租户管理系统

SaaS系统是必须考虑计费系统和租户控制系统。这个系统需要都是独立设计。比如用户选购的模块、每月费用、用户可创建的用户名数、计费到期邮件提醒等功能。

定制化开发

SaaS的优势在于一套系统多人使用,定制化开发尽可能分系统、分模块去做。然后通过控制台中配置不同租户订购不同模块并在前端页面上显示,不同的子系统需要分开部署,新功能尽量做的独立可以配置。

灰度升级

SaaS付费企业用户对系统问题一般比较敏感,为了减少升级出现问题的影响范围一般都采用灰度升级策略。

以上是对”SaaS设计有哪些注意事项”的介绍,SaaS设计为满足一套系统多用户应用,且满足每个用户的个性化需求,时时提供SaaS系统新功能而进行SaaS系统升级,SaaS系统升级时不影响用户的正常使用,因此在做SaaS设计一定要做好以上注意事项。

SaaS推广需要从哪几方面入手

SaaS推广成为SaaS被更多企业了解、认识、使用必不可少的手段,SaaS是随着时代的发展而诞生的,是先进的产品。但如果企业并不知道SaaS产品的存在,不知道SaaS产品比传统的应用软件有哪些优势、是不是更适合企业的发展、能不能给企业自身带来利益,那又何来使用呢。因此SaaS推广就显得非常重要了。那么,SaaS推广需要从哪几方面入手呢?

确保SaaS本身品质着手

在使用中的方便性、安全性、稳定性和成熟度、先进性。

经销商对行业、对经营、对产品都有一定判断能力的。SaaS产品如果要赢得经销商的认可并且不断地推动,首先要将SaaS本身的方便性、安全性、稳定性和成熟度、先进性进行提升来吸引他们,让经销商们主动投入大量地人力、物力、财力去展开经营,同时考虑降低经销商伙伴的实施难度、方便伙伴快速交付、方便客户使用。有了高品质的SaaS后经销商就会形成自我驱动之力,主动经营、主动投入并且将SaaS当成一项事业来做。

需要树立SaaS服务商的品牌

除了提高市场认知、推广力度等问题外,提高SaaS服务商的诚信、数据安全以及保密性也很重要,这也是树立SaaS服务商响亮品牌重要因素。树立SaaS服务商的品牌能提高SaaS服务商知名度和美誉度,用户的忠诚度也就自然会提高。响亮品牌树起后经销商的经销以及SaaS服务商的直销都会变得更加顺利,大多经销商在选择SaaS品牌时是非常看重SaaS服务商的知名度和影响力的。

需要提高SaaS的市场认知

只有提高SaaS的市场认知SaaS服务商才有机会做大做强,这不仅需要SaaS服务商做大量的广告、新闻报道等方式推广,更需要大量地经销商去推动市场。SaaS服务商率先加大推广的力度、采用创新的营销办法、在产品上形成领先性的优势等,让SaaS服务商在SaaS市场中受到的客户认知度提高,让经销商相信自己的工作会带来预期的收获,从而吸引经销商加入到SaaS场市场的普及的运动中来。

需要选择好经销商

SaaS服务商在选择经销商上可以广撒网、非独代、经销商多元化。经销商本身做互联网业务的经销商、地方电信运营商、行业协会、行业网站等的,他们与互联网业务有紧密联系,这些经销商多数都拥有一定的客户资源,SaaS推广可以植入其原来的产品中相对比较方便。

以上是对”SaaS推广需要从哪几方面入手”的介绍,只有做好SaaS推广,让越来越多的企业使用。才能让立SaaS服务商获更多的利润,才有能力继续做好SaaS产品,提高企业的满意度,也才能让SaaS经销商更快速的把SaaS销售出去。

SaaS云的发展需要哪几方面长期积累

逐步完善SaaS云信用体系

SaaS云的安全、信用方面的风险因素影响用户决定是否使用SaaS云重点。这需要SaaS云厂商建立完备、高效、强大的安全保障措施、建立商业信用制度.降低用户契约风险,让企业放心的把企业核心数据与商业信息放在SaaS运营商的服务器上而不被泄露,SaaS云就要将数据与商业信息将变成高度保护的资产。

形成按需付费的商业文化

按需付费在国内企业还是新产物还没有形成商业文化,商业文化让用户形成按需付费的习惯。

提升运营商的管理水平与服务质量

需要SaaS云通过市场推广与销售促进等刺激、推动手段建立行业品牌。通过准确的行业定位、个性化的产品功能与服务、快速响应、提升服务质量等保证在线软件系统高效率运行来维护SaaS云品牌,赢得客户信赖提高客户忠诚度。

形成一体化的云信息解决方案

信息技术基础条件是SaaS云的发展保障,SaaS运营商需要加大系统集成技术的研发实现跨平台、跨语言、跨系统的功能整合并充分集成传统软件与第三方软件平台,从而大大提升系统的集成性、融合性,并为一些典型行业提供一体化的解决方案。

提供定制化、个性化的功能服务

在功能与性能提升的基础上SaaS云的发展经过对行业与企业实际应用需求缺乏深入分析与研究、融入具备现代管理思想提供定制化、个性化的功能服务。

以上是对”SaaS云的发展需要哪几方面长期积累”的介绍,SaaS云的发展一定要提高SaaS云的管理水平与服务质量、提供一体化的云信息解决方案、提供新融入现代管理思想的定制个性化功能服务、提高SaaS云的口碑品牌。

SaaS云服务平台的发展趋势有哪些

SaaS云服务平台通过租赁模式为各类企业提供软件服务,SaaS云服务平台已经成为各软件企业的发展趋势,如今互联网也越来越广泛的覆盖,SaaS云服务平台可以满足企业随时随地应用服务,使企业的营销变得跟快捷快捷、SaaS云服务平台可以为企业提供安全且保密的服务、让企业的运营变得更省心,下面介绍:SaaS云服务平台的发展趋势有哪些呢?

应用智能加人工服务模式

智能机器人和人工共同为客户提供服务的模式符合企业的高效服务需求,智能加人工服务模式也是SaaS云服务平台未来的发展方向之一。在未来的企业SaaS云服务平台竞争中,智能机器人的应用技能也将是核心能力之一。

需要满足个性化需求

各个企业的需求是多样化的,SaaS云服务平台供应商也要能提供的产品和功能实现多样化。这就需要SaaS云服务平台应用的开放形式的接口,让使用SaaS云服务平台的企业可轻松实现软件的定制和接入,来满足企业的个性化需求。

需要大数据处理技术

企业需要通过使用SaaS云服务平台大数据处理技术,来实现对客户信息数据和交易数据的分析、统计并收集反馈,这些大数据即将成为企业对未来的决策作参考依据。

提供精准营销

企业需要通过SaaS云服务平台大数据分析,企业的销售人员可能会承担更多精准营销的功能,才能从以往的利润中心转为营利中心。

以上是对”SaaS云服务平台的发展趋势有哪些”的分析,随着市场逐渐扩大SaaS云服务平台企业将逐步进入高速发展阶段,SaaS云服务平台的发展趋势是应了传统企业的互联网化的需求,SaaS云服务平台的发展趋势也正影响着旧的营销体系。

AI-SaaS 公司(值得关注)

人工智能似乎是每个人的口头禅,这是有充分理由的。机器学习垂直平台具有从根本上改变效率的能力,同时大大增加了输出可能性。每个企业都在寻找将自己推向极限的竞争优势。对于许多有远见的公司来说,人工智能似乎是圣杯。许多企业面临可以通过自动化解决的问题,许多成功的自动化工作都得到了先进的AI软件的支持。

以下列出2020年值得关注的5家 AI-SaaS 公司:

EnsoData

随着患者人数的增长越来越超过我们临床工作人员的规模,人工智能将在赋予临床医生以可扩展并扩大其为更多患者提供服务的能力的工具中发挥关键作用。

这种变化将有助于解决当前未诊断的睡眠呼吸暂停流行病以及医疗保健中的其他挑战和机遇。EnsoData的使命是为直接的病人护理和培养有意义的病人关系创造更多时间。医学的这一方面是大多数临床医生所报告的最令人满意的部分。

EnsoData通过使用功能强大的人工智能软件自动执行大量手动数据任务来帮助实现平衡。FDA由威斯康星大学的研究生研究人员于2015年创立,FDA于2017年批准,目前已在全球300多个睡眠中心使用,似乎没有什么可以阻止不断增长的EnsoData。

Excelion

Excelion源于IoT解决方案的专业服务,最初帮助构建了全球设备,云,数据和应用程序解决方案。因此,他们非常擅长处理超大型数据集并从该数据中发现见解。

现在,他们可以帮助公司获取嘈杂的大数据并将其转变为明智的业务决策。为了实现此目标,他们专注于端到端IoT实施,从设备上的应用程序到全球云IoT实施。他们的核心信念是数据科学是组织保持竞争力所需的能力。就像十年前商业智能已成为必不可少的能力一样,数据科学在当今的环境中至关重要。

他们通过人员,流程和工具建立能力来协助组织。在我们的采访中,他们提到市场上最大的竞争对手是围绕人工智能的噪音。如今,许多组织只是想出售一种可以做出预测的算法,但是这些解决方案并不能解决更大的挑战,也不能带来更大的机会:能够针对自己的数据构建自己的数据科学解决方案。这个事实似乎在许多提供AI解决方案的公司中引起共鸣。取得切实成果的公司不需要困扰整个行业的未经过滤的喧嚣。

RCM Brain

我们生活在这样一个现实中,管理费用正在压低提供商和付款人。这导致患者和保险订户的费用更高。新技术能力正在以可以真正破坏这些组织的成本结构的方式融合在一起。

RCM Brain是该行业的先驱破坏者之一。他们是唯一将机器人自动化与AI规则引擎和文档提取相结合的收入周期技术公司,从而大大降低了提供商的人工成本。他们的解决方案是针对收入周期管理公司和部门的需求量身定制的,具有足够的灵活性来管理任何情况,同时还具有足够的标准化程度以作为产品销售。

通过使用AI规则引擎和文档提取进行打包自动化,与大多数竞争对手相比,他们能够处理更为复杂的情况。他们目前正在完成一个客户的实施过程,其中他们的自动化和规则引擎正在从10个不同的软件系统中读取和写入数据,并且已将11名员工的部门缩减至4名。交易量,该项目利用了其平台的所有功能。他们在复杂的实施中发现了一个利基市场,这为营收周期技术的令人振奋的未来让路。

CognitiveScale

凭借对创新的热情和具有技术头脑的领导Matt Sanchez,CognitiveScale旨在将人与机器配对以增强人的潜力。该公司屡获殊荣且经过验证的Cortex软件和专家团队使金融服务,数字商务和医疗保健组织能够从根本上简化其AI系统的开发,部署和管理。

Cortex可以在公共,私有,混合和多云环境中无缝运行。CognitiveScale实现了认知代理建模和执行语言(CAMEL),该语言定义了一种用于编程认知代理的开放语言和与平台无关的规范。企业可以利用CAMEL创建AI代理,技能,模型和数据集,从而避免供应商锁定。

他们最强大的资产似乎是能够将其软件应用到各种客户的能力。拥有几乎通用的技术似乎是实现率之间的关键区别。

Neurala

希望显着减少执行外观检查所需的时间,成本和技能?Neurala正是致力于这一工作。Neurala Brain是其屡获殊荣的专利AI技术,可以在最轻巧的设备上运行,并且基于为NASA,DARPA和空军研究实验室进行的高级研究工作共同创始人Versace,Gorshechnikov和Ames建立。

2013年,Neurala从隐身模式中脱颖而出,加入Techstars计划,以商业规模部署其AI。现在,他们与世界上一些最具创新力的公司合作,将智能技术引入无人机和智能手机等各种产品和设备。他们利用大脑的力量来寻找解决问题的解决方案,这些问题以有意义的方式改变了世界。

Neurala的突破性技术已被包括Draper Ventures,CB Insights,爱迪生奖,Netexplo / UNESCO,Softech INTL,AUVSI,BostInno和MassTLC在内的多个组织誉为世界上最具创新性的技术之一。受Lifelong-DNN™技术支持,Brain Builder使得AI模型能够在云中不断学习。凭借制造,工业,机器人技术和智能设备垂直行业的客户,Neurala的技术已在全球5300万台设备上部署。这是您无法否认的成功。

Serverless 的初心、现状和未来 (阿里技术WX公众号)

源起

回望整个计算机技术发展史,我们会发现 “抽象、解耦、集成” 的主题贯穿其中。产业每一次的抽象、解耦、集成,都将创新推向新的高度,也催生出庞大的市场和新的商业模式。

大型机时代,硬件和软件都是定制化的,使用专有的硬件、操作系统和应用软件。

PC 时代,硬件被抽象解耦成 CPU、内存、硬盘、主板、USB 设备等标准化的部件,不同厂商生产的部件可以自由组合,组装成整机。软件被抽象解耦为操作系统、库等可复用组件。硬件和软件的抽象解耦,创造了新的商业模式,释放了生产力,造就了 PC 时代的繁荣。

云的时代,硬件软件化和软件服务化成为最显著的两个趋势。

硬件软件化的核心在于硬件功能中越来越多的部分由软件来呈现,从而在迭代效率、成本等方面获得显著优势。以软件定义存储(Software Defined Storage,SDS)为例,SDS 是位于物理存储和数据请求之间的一个软件层,允许用户操控数据的存储方式和存储位置。通过硬件与软件解耦,SDS 可运行于行业标准系统或者 X86 系统上,意味着用户可以无差别的使用任何标准的商用服务器来满足不断增长的存储需求。硬件与软件解耦也让 SDS 能够横向扩展,消除容量规划,成本管理等方面的复杂性。

云时代的另一趋势是软件服务化。应用软件的功能通过网络以远程调用的模式被海量用户使用。服务成为应用构建的基础,API 被实现为服务提供给开发者,微服务架构获得广泛的成功。服务也成为云产品的基本形态。过去 10 年,云已经证明了它的成功。用户只需要通过调用 API 就能获取服务器,而无需自己建设数据中心。算力以前所未有简洁的方式提供给用户。

还记得 Google 那篇著名的 “Datacenter as a computer “ 论文吗?如果我们把云看作是 DT 时代的计算机,那么一个很自然的问题是:随着云的 API(全托管服务)越来越丰富,什么才是适合于云的编程模型?我们应当以何种 “抽象、解耦、集成” 的方式构建基于云的应用?

在回答上述问题之前,让我们首先将目光转向 SaaS 领域。Salesforce 是 SaaS 领域的明星企业,在平台化能力建设方面的布局为我们提供了一个绝佳的案例。早期的 SaaS 产品采用标准化的交付模式,通过开放 API 接口实现被集成的能力。随着 Salesforce 产品越来越丰富,客户规模日益增长,企业开始面临新的挑战:

  • 如何更快地推出新产品,加强产品间的整合和协同?
  • 客户迅速增长,需求多样。如何高效地满足客户的定制化需求,增加客户粘性?
  • 如何提高产品被集成的能力,更好的衔接上下游资源?
  • 当产品能力和 API 完整度到达一定水准后,如何让开发者快速整合 API,围绕 Salesforce 能力便捷地开发应用?
  • 如何设计好的商业模式,让客户、企业和开发者共赢?

Salesforce 的策略是让整个业务、技术和组织平台化。平台放大了企业的价值,让企业、客户、开发者三方受益。通过不断提升平台的应用交付能力,对内大幅提高产品的研发效率,加强产品的集成和整合;对外则大幅提高了产品的被集成能力,建立开发者生态。

从 2006 年开始,Salesforce 在平台化能力建设上大力投资,推出了 Apex,Visualforce 等编程语言,允许客户、合作伙伴和开发者在多租户环境下编写和运行自定义的逻辑代码。在此基础上,2008 年推出自研 Force.com PaaS 平台,客户能够在该平台上围绕 Salesforce 的能力构建自己的应用程序。2010 年收购了流行的 PaaS 服务商 Heroku,2019 年推出 Serverless 计算平台 Evergreen,进一步加强应用构建和集成与被集成能力。除了应用的构建能力,Salesforce 近几年来也在应用的移动化、数据化和智能化方面进行了大量的投资,延伸平台在相关领域的能力,帮助客户实现管理流程的数据化和智能化,并通过数据分析和交易撮合为客户带来增量业务。

总结 Salesforce 的发展历程,我们可以得出一些观点:

  • API 已成为价值交付最重要的形式。
  • 把 API 作为价值交付形式的产品或组织,当 API 丰富度和能力完整度达到一定水准后,会升级为平台,通过平台突破能力瓶颈,实现业务、产品和技术新的进化。
  • 平台能力高低体现在其编程模型上,即是否能帮助用户高效、低成本的构建新一代应用。
  • 平台除了大幅提升企业价值交付的能力,更重要的是建立起应用开发生态。

虽然云远比上述 SaaS 案例复杂,但遵循着类似的发展逻辑。几乎所有云服务的产品功能都通过 API 体现,云服务商也把发展平台编程模型,提升用户价值交付能力和建立应用开发生态作为最重要的目标。当我们从编程模型的视角去审视云的产品体系,纷繁复杂的云服务各自的定位逐渐清晰。

基础设施即服务(IaaS)和容器技术是云的基础设施,以 K8S 为代表的容器编排服务是云原生应用的操作系统,面向特定领域的后端服务(BaaS)则是云的 API。为了实现更高的生产力,在存储、数据库、中间件、大数据、AI 等领域,大量的 BaaS 服务是全托管、Serverless 的形态,这一趋势已持续多年。例如现在客户已经非常习惯使用 Serverless 化的对象存储,而不是自己基于服务器搭建数据存储系统。当云提供了丰富的 Serverless BaaS 服务后,需要一种新的通用计算服务,能够屏蔽基础设施的复杂度,基于云服务快速构建应用。因此 Serverless 计算应运而生,它包含了以下要素:

  • Serverless 计算是全托管的计算服务,客户编写代码构建应用,无需管理和运维服务器等底层基础设施。
  • Serverless 计算是通用、普适的,结合云 API(BaaS 服务)的能力,能够支撑云上所有重要类型的应用。
  • Serverless 计算不但实现了最纯粹的按需付费(为代码实际运行消耗的资源付费),也应当支持预付费等计量模式,使得客户成本在各种场景下,与传统方式相比都极具竞争力。
  • 不同于虚拟机或容器等面向资源的计算平台,Serverless 计算是面向应用的。要能整合和联动云的产品体系及其生态,帮助用户在价值交付方式上实现颠覆式创新。

现状:当下 Serverless 在哪些场景落地?

随着用户心智的建立,产品本身能力的完善,Serverless 近年来呈加速发展的趋势。我们看到在很多场景下,用户使用 Serverless 架构在可靠性、成本和研发运维效率等方面获得显著的收益。

  1. 小程序/Web/Mobile/API 后端服务

    在小程序、Web/Moible 应用、API 服务等场景中,业务逻辑复杂多变,迭代上线速度要求高,而且这类在线应用,资源利用率通常小于 30%,尤其是小程序等长尾应用,资源利用率更是低于 10%。Serverless 计算的免运维,按需付费的特点非常适合构建小程序/Web/Mobile/API 后端系统,通过预留计算资源+实时自动伸缩,开发者能够快速构建延时稳定、能承载高频访问的在线应用。在阿里内部,使用 Serverless 构建后端服务是落地最多的场景,包括前端全栈领域的 Serverless For Frontends,机器学习算法服务,小程序平台实现等等。

  2. 大规模批处理任务处理

    典型的离线任务批处理系统,例如大规模音视频文件转码服务,包含计算资源管理、任务优先级调度、任务编排、任务可靠执行、任务数据可视化等一系列功能。如果从机器或者容器层次开始构建,用户通常使用消息队列进行任务信息的持久化和计算资源的分配,使用 K8S 等容器编排系统实现资源的伸缩和容错,自行搭建或集成监控报警系统。如果任务涉及多个步骤,还需要整合工作流服务实现可靠步骤执行,而通过 Serverless 计算平台,用户只需要专注于实现任务处理逻辑,而且 Serverless 计算的极致弹性能很好的满足突发任务对算力的需求。

  3. 基于事件驱动架构的在线应用和离线数据处理

    典型的 Serverless 计算服务通过事件驱动的方式广泛的与云端各种类型服务集成,用户无需管理服务器等基础设施和编写集成多个服务的胶水代码,轻松构建松耦合、分布式的事件驱动架构的应用。

    以阿里云函数计算为例,通过 API 网关和函数计算的集成,用户可以快速实现 API 后端服务。通过对象存储和函数计算的事件集成,函数能实时响应对象创建、删除等事件,实现以对象存储为中心的大规模数据处理。通过消息中间件和函数计算的事件集成,用户能快速实现海量消息的处理。通过和阿里云 EventBridge 的集成,无论是一方云服务,还是三方的 SaaS 服务,或者是用户自建的系统,所有的事件都可以快速便捷的被函数计算处理。

  4. 运维自动化

    通过定时触发器,用户能够用函数快速实现定时任务,而无须管理执行任务的底层服务器。通过云监控触发器,用户可以接收 ECS 重启/宕机,OSS 对象存储流控等 IaaS 层服务的运维事件,并自动触发函数处理。

未来:Serverless 将向何处去?

近年来,Serverless 一直在高速发展,呈现出越来越大的影响力。主流的云服务商也在不断地丰富云产品体系,提供更好的开发工具,更高效的应用交付流水线,更好的可观测性,更细腻的产品间集成,但一切才刚刚开始。

  1. Serverless 将无处不在

    任何足够复杂的技术方案将被实现为全托管、Serverless 化的后端服务。不只是云产品,也包括合作伙伴和三方服务。云及其生态的能力将通过 API + Serverless 来体现。事实上,对于任何以 API 作为功能透出方式的平台型产品或组织,例如钉钉、微信、滴滴等等,Serverless 都将是其平台战略中最重要的部分。

  2. 和容器生态将更加紧密融合

    容器在应用的可移植性和交付流程敏捷性上实现了颠覆式创新,是现代应用构建和交付的一次重要变革。

    绝佳的可移植性。通过操作系统虚拟化技术,应用及其运行环境被虚拟化为容器,实现了 build once,run anywhere。容器化的应用能够无差别的运行在开发机,on-premise,以及公有云的环境中。
    敏捷的交付流程。容器镜像已经成为应用封装和分发事实上的标准。今天全世界的开发人员都习惯将容器作为应用交付和分发的方式。围绕容器,已经建立了完整的应用交付工具链
    容器已经成为现代应用运行的基础,但用户仍然需要负责服务器等基础设施的管理,包括水位预估、机器运维等等。因此业界出现了 AWS Fargate,阿里云 ECI 等 Serverless container 服务,帮助用户专注于容器化应用的构建,而无需负担基础设施的管理成本。从 Serverless 视角来看,函数计算等 Serverless 计算服务为用户带来了全自动的伸缩模式、极致弹性以及完全按需的计量方式,却在用户开发习惯的兼容性、可移植性、完工具链和生态等方面面临挑战,而这正是容器的优势。相信随着技术的发展,未来容器镜像也将成为函数计算等更多 Serverless 应用的分发方式,容器庞大的工具生态和 Serverless 免运维、极致弹性结合在一起,为用户带来全新的体验。

  3. Serverless 将通过事件驱动的方式连接云及其生态中的一切

    我们已经在前述章节中讨论了函数计算通过事件驱动和云服务连接的意义,这样的能力也会扩展到整个云的生态。无论是用户自己的应用,还是合作伙伴的服务;无论是 on-premise 环境,还是公有云,所有的事件都能以 Serverless 的方式处理。云服务及其生态将更紧密的连接在一些,成为用户构建弹性高可用的应用的基石。

  4. Serverless 计算将持续提高计算密度,实现最佳的性能功耗比和性能价格比

    虚拟机和容器是两种取向不同的虚拟化技术。前者安全性强,开销小,后者则相反。Serverless 计算平台一方面要求最高的安全性和最小的资源开销,鱼与熊掌必须兼得;另一方面要保持对原有程序执行方式的兼容,比如支持任意二进制文件,这使得适用于特定语言 VM 的方案不可行。因此 AWS Firecracker,Google gVisor 这样新的轻量虚拟化技术应运而生。以 AWS Firecracker 为例,通过对设备模型的裁剪和 kernel 加载流程的优化,实现了百毫秒的启动速度和极小的内存开销。一台裸金属实例支持数以千计的实例运行。结合应用负载感知的资源调度算法,云服务商有望在保持稳定性能的前提下,将超卖率提升一个数量级。

    当 Serverless 计算的规模和影响力变得越来越大,从应用框架、语言、硬件等层面,根据 Serverless 的负载特点进行端对端优化就变得非常有意义。新的 Java 虚拟机技术大幅提高 Java 应用的启动速度,非易失性内存帮助实例更快被唤醒,CPU 硬件和操作系统协作对高密环境下性能扰动实现精细隔离,所有新技术正在创造崭新的计算环境。

    实现最佳性能功耗比和性能价格比的另一个重要方向是支持异构硬件。长期以来,X86 处理器的性能越来越难以提升。而在 AI 等对算力要求极高的场景,GPU、FPGA、TPU(Tensor Processing Units) 等架构的处理器的计算效率更具优势。随着异构硬件虚拟化、资源池化、异构资源调度、应用框架支持的成熟,异构硬件的算力也能通过 Serverless 的方式释放,大幅降低用户使用门槛。

大型公有云服务商针对Serverless的技术实践

AWS Lambda。

作为AWS针对Serverless架构推出的FaaS云服务,AWS Lambda自2014年上线以后就受到广泛关注,除了满足大家对Serverless的期望之外,更重要的是AWS平台的成功。AWS Lambda的优势可以简单总结为:

  • 成熟度高:第一个在主流公有云平台上的Serverless FaaS平台,已经有数年的发展和沉淀
  • 用户基数大:AWS Lambda有较大的用户基数,参考案例很多
  • 活跃的社区:目前开源社区有很多围绕AWS Lambda展开的开源项目
  • AWS的整合:AWS Lambda天然和AWS平台上的服务有良好集成

Azure Functions

紧随其后,Microsoft Azure也在2016年推出了事件驱动的函数式云计算服务Azure Functions。其支持用户以多种语言进行函数开发,包括Java、Node.js、PHP、C#、F#、Bash及Microsoft Windows的PowerShell脚本等。此外,Azure Functions除了提供公有云的版本之外,还提供私有化(On-premises)部署的版本Azure Functions Runtime。产品功能也是可圈可点:

  • 完整性:Azure Functions是一个功能比较完备的Serverless FaaS平台
  • 整合:Azure Functions天然与Azure云平台上各类服务有良好的集成
  • 平台:对于使用微软体系产品和工具构建IT能力的企业而言,Azure Functions是Serverless转型的首选平台
  • 私有化:提供带有商业支持的私有化部署版本,可满足不同层面的用户的需求

Google Cloud Functions

同样是在2016年,Google Cloud Platform推出了Google Cloud Functions平台,也同时加入Serverless领域的竞争序列。同为FaaS平台,Google Cloud Functions与AWS Lambda和Microsoft Azure在功能上最大的区别有啥?细数以后,可能在于Google Cloud Functions目前仅支持JavaScript作为函数开发语言,运行环境为Node.js。2018年7月,Google又顺势公布了开源项目Knative,定位为Kubernetes的Serverless插件,推出后得到了Pivotal、IBM以及Red Hat的大力支持。

阿里云函数计算

国外争先恐后,国内也是蜂拥而至。阿里云作为国内第一批推出Serverless平台的公有云厂商,其FaaS平台产品被称为阿里云函数计算。如果从事件触发、支持语言以及用户体验等方面考量,该产品也有很多数据值得关注:

  • 事件触发:阿里云函数计算可以被阿里云上的服务事件触发,例如阿里云对象存储(OSS)
  • 支持语言:阿里云函数计算目前支持的开发语言为Node.js,并计划后续将支持Java及Python
  • 整个函数代码的部署包大小不能超过50MB,部署包解压后的代码不能超过250MB
  • 用户体验:阿里云函数计算提供了基于Web的控制台和SDK;用户可以通过Web控制台管理函数应用,也可以通过交互式的命令行来操作
  • 服务规格:一个服务下最多包含50个函数和10个触发器。在运行时,函数最长的运行时间为300s,即5min,一个函数的最大并发数为100

腾讯 Serverless Cloud Function

同为国内云计算竞争的翘楚,无服务器云函数(Serverless Cloud Function,SCF)是腾讯云推出的函数式计算平台,根据官方的资料,其发布时间是2017年4月26日。总结下腾讯云Serverless平台的特点:

  • 函数运行时:腾讯云SCF目前支持Python、Java及Node.js作为函数的开发语言
  • 用户可以以压缩包的形式从本地上传代码,也可以引用腾讯云对象存储中的代码文件
  • 事件触发:目前腾讯云SCF支持的事件触发源有腾讯云对象存储COS、定时器、腾讯云消息服务CMQ,以及用户手动通过API及控制台触发
  • 服务规格:每个函数将在一个基于CentOS Linux的环境中被执行。函数执行的内存范围为128MB至1536MB,单个区域支持的最大函数定义数量为20个,函数执行的最大时长为300秒,最大的并发数为5

Reference

  1. saas平台架构分为哪几部分
  2. 5 AI & MACHINE LEARNING SAAS COMPANIES TO WATCH IN 2020
  3. Serverless 的初心、现状和未来 - 阿里技术
  4. 一文看懂当红Serverless:为何AWS、阿里云和腾讯云都在发力「无服务器架构」