概叙
基本概念
IaaS, PaaS, SaaS, BaaS, 和 FaaS 是云计算服务的不同类型,它们各自提供了不同的服务层次和功能。
IaaS (Infrastructure as a Service基础设施即服务) 提供基础设施服务,包括服务器、存储、网络等硬件资源。用户可以在这些基础设施上运行自己的应用和数据,从而大大降低了基础设施的购买和管理成本。这种服务模式让用户能够专注于应用开发,而不必担心基础设施的管理和维护。
PaaS (Platform as a Service平台即服务) 提供了一个平台和环境,用户可以在这个平台上开发、运行和管理自己的应用。PaaS解放了用户从基础设施管理的困扰,让他们可以专注于应用的开发。这种服务模式通过提供开发工具、运行时环境等,简化了应用的开发和部署过程。
SaaS (Software as a Service软件即服务) 通过网络提供软件应用,用户无需购买和安装软件,只需通过互联网使用。SaaS大大简化了软件的获取和使用,降低了成本,使得软件的使用更加便捷。
BaaS (Backend as a Service后端即服务) 提供了一系列的后端服务,如数据库、用户管理、推送通知等。BaaS帮助开发者快速开发应用,通过提供文件存储、数据存储、推送服务、身份验证服务等,减少了开发应用的复杂性和时间。(可以看作是云厂商提供的SaaS)
FaaS (Function as a Service函数即服务) 提供了一个平台,用户可以在这个平台上运行自己的函数。FaaS允许用户无需管理服务器,只需关注自己的代码,实现了一种“无服务器”的计算模式,通常在构建微服务应用程序时使用。(可以看作是自定义的SaaS)
这些服务模式共同构成了云计算的不同层次,满足了企业和个人用户在不同场景下的需求,从基础设施的提供到应用的开发和运行,再到软件的交付使用,提供了灵活且高效的解决方案。
这些云计算的服务模型起源于21世纪初,随着互联网技术的发展和普及,计算能力和数据存储的需求大大增加,这促使了云计算技术的出现。这些服务模型经历了从初期的基础设施即服务(IaaS)和平台即服务(PaaS),到后来的软件即服务(SaaS)、函数即服务(FaaS)、数据即服务(DaaS)和后端即服务(BaaS)的发展。
这些云计算的服务模型为我们提供了一种新的计算和服务的方式。我们可以利用这些服务模型来获取和使用我们需要的资源和服务,如软件、平台、基础设施、函数、数据和后端服务,而无需自己购买和管理这些资源。这大大简化了我们的工作,提高了效率,降低了成本。
然而,我们在使用这些云计算的服务模型时,也需要注意一些问题。
首先,我们需要确保服务的稳定性,因为我们的工作依赖于这些服务。
其次,我们需要注意数据的安全性,因为我们的数据存储在云端,可能会被黑客攻击。
此外,我们还需要注意服务的价格,因为云服务可能会产生高昂的费用。
最后,我们需要了解和遵守服务提供商的服务协议,因为违反协议可能会导致服务被终止。
总的来说,云计算的服务模型为我们提供了很大的便利,但也带来了一些新问题。我们需要学习和理解这些服务模型,才能更好地利用它们,同时避免可能的问题。
IaaS、PaaS和SaaS是三种被广泛使用的云服务模式,它们服务的对象及包含的内容描述如下:
aaS
是 As-a-Service
即为服务
一套软件通常包含以下九个层次:
应用(application)
数据(data)
运行库(runtime)
中间件(middleware)
操作系统(OS)
虚拟化技术(virtualization)
服务器(servers)
存储(storage)
网络(networking)
我们可以根据自己的需求情况,选择不同的云计算厂商服务,来完成我们自己的软件或者功能。
IaaS (Infrastructure as a Service)
IaaS,全称 Infrastructure as a Service(基础设施即服务),它是将计算基础设施作为按需服务提供的方法。用户购买服务器、软件数据中心空间或网络设备,并通过完全外包的按需服务模式租用这些资源。
服务商提供底层 / 物理层基础设施资源(服务器,数据中心,环境控制,电源,服务器机房),客户自己部署和执行操作系统或应用程序等各种软件。
IaaS的特点
灵活性和控制力:IaaS 提供虚拟化计算资源,如虚拟机、存储和网络,方便用户控制操作系统和应用程序。
降低硬件开支:IaaS 通过消除物理基础设施投资来节省业务成本,使其具有成本效益。
资源的可扩展性:云提供根据需求扩展或缩减硬件资源的功能,从而实现最佳性能和成本效益。
IaaS 的优点
提供商可以在任何给定时间将资源部署到客户的环境中。
它能够为用户提供根据他们的需求扩展业务的能力。
提供商在部署资源(包括虚拟机、应用程序、存储和网络)时有多种选择。
它有可能处理大量用户。
它易于扩展并节省大量资金。公司可以承受与实施先进技术相关的巨额成本。
云提供了架构。
增强的可扩展性和相当的灵活性。
支持动态工作负载。
IaaS 的缺点
安全问题
在 IaaS 中,服务和网络延迟是一个相当大的问题。
IaaS 示例
EC2 (Elastic Compute Cloud):提供可扩展的虚拟服务器实例,用户可以根据需求选择不同配置的实例类型。
云存储,比如 阿里 OSS((Object Storage Service)),腾讯 COS(Cloud Object Storage)
EBS (Elastic Block Store):提供持久块存储卷,可以附加到 EC2实例上,用于存储文件系统、数据库等。
PaaS (Platform as a Service)
PaaS,全称 Platform as a Service(平台即服务),它是一种云交付模型,适用于由第三方管理的服务组成的应用程序。它提供应用程序的弹性扩展,使开发人员可以通过 Internet 构建应用程序和服务,部署模型包括公共、私有和混合。
服务商提供基础设施底层服务,提供操作系统(Windows,Linux)、数据库服务器、Web 服务器、域控制器和其他中间件,以及服务模型中的备份服务等中件层服务。例如 IIS,.NET,Apache,MySQL …,客户自己控制上层的应用程序部署与应用托管的环境。
PaaS的特点
简化开发:平台即服务通过将底层基础架构保留为抽象来提供应用程序开发。它帮助开发人员完全专注于应用程序逻辑(代码),后台操作完全由AWS平台管理。
提高效率和生产力:PaaS 通过简化开发流程,降低了基础架构管理的复杂性,加快了执行时间,并将更新快速推向市场。
扩展自动化:管理资源扩展,保证程序的工作负载效率由 PaaS 保证。
PaaS 的优势
程序员无需担心应用程序是用什么特定的数据库或语言编写的。
它为开发人员提供了构建应用程序的方法,而无需底层操作系统或基础设施的开销。
为开发人员提供了专注于应用程序设计的自由,而平台则负责语言和数据库。
它既灵活又便携。
经济实惠。
它非常有效地管理云中的应用程序开发阶段。
PaaS 的缺点
数据不安全,存在很大风险。
由于数据既存储在本地存储中,也存储在云中,因此在集成数据时,很有可能出现数据不匹配。
PaaS示例
AWS Lambda,ServerLess服务
谷歌云
IBM 云
Alibaba Cloud Elastic Compute Service (ECS):提供按需可扩展的计算资源,支持多种操作系统和应用环境。
SaaS,全称 Software as a Service(软件即服务),它允许用户运行现有的在线应用程序,它是一种模型软件,部署为托管服务,并通过输出改写/重写文本,互联网或软件交付模型进行访问,在此过程中,软件及其相关数据被集中托管并使用其客户端(通常是网络上的在线浏览器)进行访问。
SAAS 服务用于现代应用程序的开发和部署。它允许从具有良好互联网连接设备和浏览器的任何地方访问软件及其功能。应用程序集中托管,还通过互联网为不同位置的多个用户提供访问权限。
服务商提供基于软件的解决方案,满足客户最终需求;如 OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud、G Suite 等应用,客户不需考虑任何形式的专业技术知识,获得完整的软件包,使他们的日常工作和生活变得更轻松。
SaaS的特点
协作和可访问性:软件即服务 (SaaS) 可帮助用户轻松访问应用程序,而无需本地安装。它完全由 AWS 软件管理,作为互联网上的服务工作,鼓励轻松合作和轻松访问。
更新自动化:SaaS 提供商通过自动最新更新管理软件维护的处理,确保用户获得最新功能和安全补丁的体验。
成本效益:SaaS 通过消除对单个软件许可证的需求来减少 IT 支持的开销,从而成为一种具有成本效益的解决方案。
SaaS的优势
它是一种云计算服务类别,提供广泛的托管功能和服务。这些可用于构建和部署基于 Web 的软件应用程序。
与本地软件相比,它提供了更低的拥有成本。原因是它不需要购买或安装硬件或许可证。
可以通过瘦客户端上的浏览器轻松访问它。
初始设置不需要任何费用。
维护成本低。
安装时间较短,因此时间管理得当。
SaaS的缺点
性能低下。
它的自定义选项有限。
它有安全和数据问题。
SaaS示例
Adobe Creative Cloud
BaaS(Backend as a Service)
后端即服务
服务商为客户 (开发者) 提供整合云后端的服务,如提供文件存储、数据存储、推送服务、身份验证服务等功能,以帮助开发者快速开发应用。
后端即服务(BaaS)英文全称为“Backend as a Service”,它是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储、账户管理、消息推送、社交媒体整合等。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成上述功能。当前国内有多个BaaS云服务商,主要分为三种类型:
垂直型,面向特定场景。比较知名的有:融云面向 IM 消息场景,声网 agora面向音视频通信场景等。
矩阵型,有不同产品分别服务多个场景。比较知名的有:leancloud主要面向游戏场景,同时支持IM和部分自定义储存;极光主要面向消息推送场景,同时也支持 IM、短信等功能。
通用型,提供高度自定义能力和应用生态,能够满足企业应用大部分场景。比较知名的:清林云,有应用市场多种现成应用供用户使用,也有高度自定义的API编辑器支持个性化场景。
后端即服务(BaaS)的优势
在通常情况下,应用程序分为两个部分:前端和后端。
前端以Web网页或APP等形式展现,而后端则是通过API的方式,提供数据储存、逻辑计算、安全防护等功能。
由于后端涵盖了服务器、网络、数据库、防火墙、业务程序等多个方面,所以一般来说开发耗时和人力投入占整体的大半。而BaaS服务能够以多租户的方式向所有人提供现成的后端服务,节省了人力和资金成本,带来的效率提升和价值极大。
概括而论,后端即服务(BaaS)能够为开发人员带来以下三个优势:
名列前茅,BaaS将给开发者赋能,通过将后端能力服务化提供给开发者,来帮助开发者快速构建应用。BaaS同时是一种开发架构的进化,能够缩短开发链路,全面提高开发效率。
第二,BaaS让开发者更注重于前端,将目光注视在业务实现上,而后端是成熟强大的服务,确保无后顾之忧,可以更快的将创意转换为产品,将资金、人力、时间等成本降到最低。
第三,BaaS将形成开发生态,后端能力可以很简单被共享,你可以根据需要采购第三方的后端服务。所有的服务都有一致的标准,降低开发者的学习成本。
一般是指一个个的API调用后端或预先实现好的程序逻辑(如身份验证服务Auth),这些BaaS通常会用来管理数据,还有很多公有云上提供的我们常用的开源软件的商用服务,如亚马逊的RDS可以替代自己部署的MySQL,还有各种其它数据库和存储服务等。
BaaS和PaaS有哪些联系与区别
BaaS可以说是PaaS(平台即服务)在移动垂直领域的延伸,更可以说是移动中间件和云的融合。基于PaaS平台,开发人员可利用服务后端功能来开发软件解决方案。作为PaaS和SaaS之间的中间架构,创建BaaS的本质是满足移动互联网的快速发展需求,并提供后端功能作为服务。
虽然,BaaS属于PaaS的范畴,但两者也有明显的区别:PaaS需要参与应用的生命周期管理,BaaS则仅仅提供应用依赖的第三方服务。具体来讲,典型的PaaS平台需要提供手段让开发者部署和配置应用,例如自动将应用部署到Tomcat容器中,并管理应用的生命周期;而BaaS不包含这些内容,BaaS只以API的方式提供应用依赖的后端服务,例如数据库和对象存储。
BaaS可以是公共云服务商提供的,也可以是第三方厂商提供的,例如Facebook收购的Parse就是知名的MBaaS提供商(Mobile Backend as a Service)。因此,从功能上讲,BaaS可以看作PaaS的一个子集,即提供第三方依赖组件的部分。
FaaS(Function as a service)
函数即服务
无服务器计算,当前使用最广泛的是 AWS 的 Lambada。
服务商提供一个平台,允许客户开发、运行和管理应用程序功能,而无需构建和维护通常与开发和启动应用程序相关的基础架构的复杂性。 按照此模型构建应用程序是实现 “无服务器” 体系结构的一种方式,通常在构建微服务应用程序时使用。
FaaS,全称为 Function as a Service(函数即服务),是一种云计算服务模式,使开发者可以部署和运行代码的单个函数或片段,而不需要管理底层的服务器和基础设施。FaaS 是无服务器架构(Serverless Architecture)的一部分。
FaaS的特点
自动伸缩:FaaS 平台可以根据需求自动扩展或收缩计算资源,处理高峰流量和低负载时的不同需求。
事件驱动:FaaS 函数通常由事件触发,如 HTTP 请求、数据库变更、文件上传等。
成本效益:FaaS 通过为所使用的计算资源提出“按运行付费”原则来提高成本效益。
可扩展性和敏捷性:无服务器架构在处理工作负载时毫不费力地扩展,从而促进了开发和部署的敏捷性。
FaaS的优点
无需管理服务器:开发者可以专注于代码本身,而不必担心底层基础设施的管理和维护。
成本效益高:按实际使用量收费,减少了为闲置资源付费的情况。
自动伸缩:平台会根据需求自动扩展和收缩资源,能够有效应对流量高峰和低谷。
快速部署:代码可以快速部署和更新,缩短了开发和发布周期。
高可用性和容错性:云服务提供商提供高可用性和容错机制,减少了应用停机的风险。
事件驱动架构:支持基于事件的触发机制,可以灵活应对各种事件源,如HTTP请求、数据库变更、文件上传等。
FaaS的缺点
冷启动延迟:第一次调用或长时间不调用后的第一次调用,函数启动可能会有延迟。
状态管理困难:由于函数是无状态的,管理和维护应用状态可能需要依赖外部存储,增加了复杂性。
供应商锁定:不同云服务提供商的FaaS实现存在差异,可能导致迁移困难和供应商锁定。
限制执行时间:多数FaaS平台对函数执行时间有严格限制,长时间运行的任务可能不适合使用FaaS。
调试复杂性:本地调试和测试可能比传统应用更复杂,特别是涉及多个服务和事件源的情况下。
FaaS 示例
Serverless 服务,比如 AWS Lambda
DaaS(Data as a Service,数据即服务)
是继IaaS、PaaS、SaaS之后发展起来的一种新型服务。通过对数据资源的集中化管理,并把数据场景化,为企业数据共享提供了一种新的方式,发挥数据的最大价值,通过分工协作提高企业竞争力。
FaaS(Functions as a Service,函数即服务)
FaaS是无服务器计算的一种形式,当前使用最广泛的是AWS的Lambada。FaaS本质上是一种事件驱动的由消息触发的服务,FaaS供应商一般会集成各种同步和异步的事件源,通过订阅这些事件源,可以突发或者定期的触发函数运行。
CaaS(Communications as a Service,通讯即服务)
CaaS是将传统电信的能力如消息、语音、视频、会议、通信协同等封装成API或者SDK通过互联网对外开放,提供给第三方使用,将电信能力真正作为服务对外提供。
MaaS(M2M as a Service,物联网即服务)
这个概念是伴随着物联网产生的,物联网常见的两种业务形式就是MAI(M2M Application Integration)与MaaS,因此MaaS属于物联网业务形式的一种。
NaaS(Network as a Service,网络即服务)
通过网络虚拟化,安全设备虚拟化,SDN等网络技术,为各种用户提供不同的虚拟化网络服务。NaaS在现代云计算当中扮演着至关重要的一环,充当各元素的桥梁的角色。在传统的IT网络架构中,系统部署或者升级时,需要同时调整相应的网络设备(路由器,交换机,防火墙)是一件非常繁琐并且成本很高的事情。这并不满足当前应用对稳定性和敏捷性的要求。而NaaS则可以很好的解决这些问题,通过虚拟的网络层使用户的应用和服务摆脱对底层硬件的束缚,用户可以快捷并廉价的部署网络服务如IP-Sec,负载均衡,