what's next? Serverless & IaaS, PaaS, SaaS, DaaS, BaaS, Faas

 

什么是Serverless无服务器架构?

  Serverless不代表再也不需要服务器了,而是说:开发者再也不用过多考虑服务器的问题,计算资源作为服务而不是服务器的概念出现。Serverless是一种构建和管理基于微服务架构的完整流程,允许你在服务部署级别而不是服务器部署级别来管理你的应用部署,你甚至可以管理某个具体功能或端口的部署,这就能让开发者快速迭代,更快速地开发软件。

  以亚马逊的AWS Lambda为案例,Lambda能让不用思考任何服务器,也就是说,不用你处理服务器上的部署、服务器容量和服务器的扩展和失败容错,还有服务器上选择什么OS操作系统,语言的更新,日志等等问题。你的应用程序只需要和多个第三方的API或服务打交道,也可以自我创建一个无服务器的API。

  Serverless有以下几个特点:

  1. Serverless意味无维护,Serverless不代表完全去除服务器,而是代表去除有关对服务器运行状态的关心和担心,它们是否在工作,应用是否跑起来正常运行等等。Serverless代表的是你不要关心运营维护问题。有了Serverless,可以几乎无需Devops了。
     
  2. Serverless不代表某个具体技术,有些人会给他们的语言框架取名为Serverless,Serverless其实去除维护的担心,如果你了解某个具体服务器技术当然有帮助,但不是必须的。
     
  3. Serverless中的服务或功能代表的只是微功能或微服务,Serverless是思维方式的转变,从过去:“构建一个框架运行在一台服务器上,对多个事件进行响应。”变为:“构建或使用一个微服务或微功能来响应一个事件。”,你可以使用 django or node.js 和express等实现,但是serverless本身超越这些框架概念。框架变得也不那么重要了。
     

  Serverless规模扩展性方面由于充分利用云计算的特点,因此其扩展是平滑的,同时由于Serverless是基于微服务的,而一些微功能微服务的云计算是零收费,这样有助于降低整体运营费用。

  将来下述具体应用将可能使用Serverless架构:

  • 静态网站的管理
  • 替代WordPress(Serverless Blog Project)
  • 个人媒体服务器(less!)
  • 物联网Iot或家庭自动框架或项目 (使用 AWS IoT)

无服务器架构

  无服务器架构是传统的云计算平台延申,是 PaaS向更细粒度的BaaS和FaaS的发展,Serverless=BaaS+FaaS+...! Serverless 真正实现了当初云计算的目标!

BaaS是后端即服务,FaaS是函数即服务!根据Martin Fowler网站无服务器架构定义:

  1. BaaS:无服务器首先用于描述显着或完全包含第三方云托管应用程序和服务的应用程序,以管理服务器端逻辑和状态。这些通常是“富客户端”应用程序 - 认为单页网络应用程序或移动应用程序 - 使用庞大的云可访问数据库生态系统(例如,Parse,Firebase),身份验证服务(例如,Auth0,AWS Cognito),以及等等。这些类型的服务以前被描述为“ 后端即服务 ”。
  2. FaaS:无服务器也可以指服务器端逻辑仍然由应用程序开发人员编写的应用程序,但是,与传统体系结构不同,它在无状态计算容器中运行,这些容器是事件触发的,短暂的(可能只持续一次调用),并且完全由第三方。想到这一点的一种方法是“作为服务的功能”或 “FaaS”。AWS Lambda是目前功能即服务平台最受欢迎的实现之一,但还有很多其他也是。

  Serverless是在传统容器技术和#服务网格上发展起来,更侧重让使用者只关注自己的业务逻辑即可。

  2018年Google推出Serverless世界的利器:#Knative ,可在任何公有私有云上实现无服务器架构,这样用户使用无服务器编程可以不限于特定的云平台如亚马逊AWS。

  

无服务器Serverless架构(Martin Fowler) 

中立观点:无服务器架构的特点 | ThoughtWorks

无服务器使用场景举例

什么是云原生cloud native应用?

云计算与无服务器有什么区别?

幽默:容器派与无服务器派的争斗

无服务器是一种学说,而不是技术

云原生是一个营销词语!

营销谎言:微信小程序目前并不是Serverless!

中台是一个营销概念!

#Serverless无服务器

#Kubernetes    #Docker #服务网格 

微服务专题 云计算专题 EDA事件驱动架构

 

*aaS

aaS 是 As-a-Service 即为服务 的意思。

what's next? Serverless & IaaS, PaaS, SaaS, DaaS, BaaS, Faas_第1张图片

IaaS (Infrastructure as a Service)

what's next? Serverless & IaaS, PaaS, SaaS, DaaS, BaaS, Faas_第2张图片

wikipedia:基础设施即服务

服务商提供底层/物理层基础设施资源(服务器,数据中心,环境控制,电源,服务器机房),客户自己部署和执行操作系统或应用程序等各种软件。

云端公司把IT环境的基础设施建设好,然后直接对外出租硬件服务器或者虚拟机。消费者可以利用所有计算基础设施,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署的应用,也有可能获得有限制的网络组件(例如路由器、防火墙、负载均衡器等)的控制。

云端公司一般都会有一个自助网站,用户可以向云端公司签订租赁协议以获取一个账号,登录之后可以管理自己的计算设备:开关机、安装操作系统、安装应用软件等。 IaaS型租用方式对用户来说优点很明显,就是非常灵活,也是自由度最大的一种类型。用户可以决定安装什么操作系统,以及是否需要安装或者安装什么类型的数据库,安装什么软件等等。就像自己买了台电脑,如何使用是你全权做主。 不过缺陷也很明显,除了管理维护量大之外,还有一个缺陷就是:计算资源严重浪费。操作系统、数据库以及中间件本身就要消耗大量的计算资源,而这些消耗对于租户而已是必须的但是又是无用的,因为用户只是想要运行软件。


PaaS (Platform as a Service)

what's next? Serverless & IaaS, PaaS, SaaS, DaaS, BaaS, Faas_第3张图片

wikipedia:平台即服务

服务商提供基础设施底层服务,提供操作系统(Windows,Linux)、数据库服务器、Web服务器、域控制器和其他中间件,以及服务模型中的备份服务等中件层服务。例如IIS,.NET,Apache,MySQL …,客户自己控制上层的应用程序部署与应用托管的环境。

云端公司要做事情就是运行软件所需要的下7层部署完毕,然后再PssS上划分小块(习惯称之为容器)对外出租,租户只需要安装和使用软件就可以了。 平台软件层包括操作系统、数据库、中间件和运行库,但是并不是每一个软件都需要这4部分的支持,需要什么是由软件决定的。所以PaaS又分为2种,半平台PaaS和全平台PaaS。

1、半平台PaaS:只安装操作系统,其他的租户自己去解决。这样会比较麻烦,因为你需要有较强的技术实力,而且需要耗费部分资源去安装软件运行需要的、的中间件、运行库、数据库。

2、全平台PaaS:安装应用软件依赖的全部平台软件,也就是4部分全部准备完毕。不过大家也知道,世界上的应用软件如此庞大,支撑他们的语言、数据库、中间件、运行库可能都不一样,PaaS云端公司不可能全部都去安装,所以他们支持的软件是有限的。

相对于IaaS来说,PaaS租户的灵活性降低了,只能在云端提供的有限平台范围内做软件,但是有点也很明显,能够最大化利用租用的资源和不需要租户有高深的IT技术。


SaaS (Software as a Service)

what's next? Serverless & IaaS, PaaS, SaaS, DaaS, BaaS, Faas_第4张图片

wikipedia:软件即服务

服务商提供基于软件的解决方案,满足客户最终需求;如OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud、G Suite等应用,客户不需考虑任何形式的专业技术知识,获得完整的软件包,使他们的日常工作和生活变得更轻松。

对比PaaS略微有一点不同,应用软件是云端公司来安装、运维的,租户使用软件,需要管理的是这些软件产生的数据信息。

一般来说SaaS适用的软件都有如下的特点:
(1)复杂:软件庞大、安装复杂、使用复杂、运维复杂,单独购买架构昂贵,例如ERP、CRM、BI等。
(2)模块化:按功能模块划分,需要什么功能就组什么模块。
(3)多租户:多个企业用户同时操作,使用同一个软件而不是互相干扰。当然,数据是逻辑隔离的,不同用户的数据检索字段之一必然是用户身份信息。
(4)I18N & L10N:多币种多语言多时区的支持


BaaS(Backend as a Service)

后端即服务

服务商客户(开发者)提供整合云后端的服务,如提供文件存储、数据存储、推送服务、身份验证服务等功能,以帮助开发者快速开发应用。


FaaS(Function as a service)

函数即服务

无服务器计算,当前使用最广泛的是AWS的Lambada。

服务商提供一个平台,允许客户开发、运行和管理应用程序功能,而无需构建和维护通常与开发和启动应用程序相关的基础架构的复杂性。 按照此模型构建应用程序是实现“无服务器”体系结构的一种方式,通常在构建微服务应用程序时使用。


DaaS(Data as a service)

数据即服务

云端公司负责建立全部的IT环境,收集用户需要的基础数据并且做数据分析,最后对分析结构或者算法提供编程接口,让数据成为服务。

what's next? Serverless & IaaS, PaaS, SaaS, DaaS, BaaS, Faas_第5张图片

DaaS是大数据时代的象征,能做DaaS服务的云端公司需要从数据积累、数据分析和数据交付三方面积累自身的核心竞争力。


NaaS(Network as a service)

网络即服务

指客户可以通过互联网访问第三方网络传输服务,并采用基于订阅模式的付费方式。

在中国移动“5G+发布会”上,中国移动发布了网络即服务(NaaS, Network as a Service)能力体系,,通过打造一个核心基石、六大创新能力,实现开放化的网络即服务。,从而为各行各业数字化转型升级注入“5G+”新动能,助力社会、经济高质量发展。

中国移动副总裁李正茂解释到全面诠释了一个核心基石、六大创新能力的网络即服务理念:网络即服务能力体系所包含的一个核心基石是打造覆盖全国、技术先进、品质优良的5G精品网络。六大创新能力则是在构建5G精品网络的基础上,推动5G与“AICDE”(人工智能、物联网、云计算、大数据、边缘计算)紧密融合,提供人工智能即服务(AIaaS)、物联网即服务(IoTaaS)、云计算即服务(CloudaaS)、大数据即服务(DataaaS)、边缘计算即服务(MECaaS)、安全即服务(SecurityaaS),从而向各行各业提供开放化的网络即服务。


what's next? Serverless & IaaS, PaaS, SaaS, DaaS, BaaS, Faas_第6张图片


  • wikipedia:As a service
  • IaaS, PaaS, SaaS or BaaS? It’s up to you!

你可能感兴趣的:(服务架构)