云计算服务类型IaaS,PaaS,SaaS,BaaS,FaaS

判断inputstream是否为空

Posted by John Doe on 2022-12-07
Words 3.4k and Reading Time 12 Minutes
Viewed Times

前言

最近学习AWS遇到了各种云计算服务类型IaaS,PaaS,SaaS,BaaS,FaaS特此记录各种云计算类型。

AWS官方文档介绍:Types of Cloud Computing

下图为本地架构,IaaS,PaaS,SaaS之间的区别

本地架构,IaaS,PaaS,SaaS之间的区别

概述:

  • 基础设施即服务 (IaaS):

基础设施即服务有时缩写为 IaaS,包含云 IT 的基本构建块,通常提供对联网功能、计算机(虚拟或专用硬件)以及数据存储空间的访问。基础设施即服务提供最高等级的灵活性和对 IT 资源的管理控制,其机制与现今众多 IT 部门和开发人员所熟悉的现有 IT 资源最为接近。

  • 平台即服务 (PaaS):

平台即服务消除了组织对底层基础设施(一般是硬件和操作系统)的管理需要,让您可以将更多精力放在应用程序的部署和管理上面。这有助于提高效率,因为您不用操心资源购置、容量规划、软件维护、补丁安装或与应用程序运行有关的任何无差别的繁重工作。

  • 软件即服务 (SaaS):

软件即服务提供了一种完善的产品,其运行和管理皆由服务提供商负责。人们通常所说的软件即服务指的是终端用户应用程序。使用 SaaS 产品时,服务的维护和底层基础设施的管理都不用您操心,您只需要考虑怎样使用 SaaS 软件就可以了。SaaS 的常见应用是基于 Web 的电子邮件,在这种应用场景中,您可以收发电子邮件而不用管理电子邮件产品的功能添加,也不需要维护电子邮件程序运行所在的服务器和操作系统。

IaaS(Infrastructure as a Service)基础架构即服务

AWS官方文档介绍:什么是基础设施即服务(IaaS)?

IaaS就是由云服务提供商,提供底层/物理层基础设施资源(服务器,数据中心,环境控制,电源,服务器机房),客户自己部署和执行操作系统或应用程序等各种软件。
最常见的形式,就是在阿里云、腾讯云购买ECS(Elastic Compute Service)云服务器、AWS上购买EC2(Amazon Elastic Compute Cloud)等。

PaaS(Platform as a Service)平台即服务

平台即服务是指将平台作为一种服务对外提供, 那么我们要学习的云平台, 就是一种PaaS服务PaaS处于中间层,服务商提供基础设施底层服务,提供操作系统(Windows,Linux)、数据库服务器、Web服务器、域控制器和其他中间件,以及服务模型中的备份服务等中件层服务。

下面用几款PaaS类型的AWS产品举例说明:

  • S3 - Amazon Simple Storage Service

S3官方文档

S3 是一种面向 Internet 的存储服务。您可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。您可以使用 AWS 管理控制台简单而直观的 web 界面来完成这些任务。

通俗的说,S3就是AWS提供的一款 分布式的对象存储服务。可以认为S3是AWS云上的HDFS。

我们可以将其当做是一个云上的私有网盘存储。

可以帮助我们存储公司内的业务数据,并支持各种编程语言对其进行开发

简单来说,就是云上的HDFS、或者网盘。

可以存储数据,同时S3支持编程开发,可以使用许多编程语言操作S3.

  • AWS Deep Learning AMI

AWS Deep Learning AMI(DLAMI)官方文档

AWS Deep Learning AMI 可以为机器学习专业人员和研究人员提供基础设施和各种工具,从而加速云中任意规模的深度学习进程。您可以在 Amazon Linux 或 Ubuntu(预先安装了流行的深度学习框架)上快速启动 Amazon EC2 实例。框架示例包括 Apache MXNet 和 Gluon、TensorFlow、Microsoft Cognitive Toolkit (CNTK)、Caffe、Caffe2、Theano、Torch 和 Keras。您可以使用这些框架训练复杂的自定义 AI 模型、试验新算法或学习新技能和技术。

  • Cloud Watch - 云监控平台

(Cloud Watch官方文档)[https://aws.amazon.com/cn/cloudwatch/?nc2=type_a]

AWS Cloud Watch 是一个统一的指标收集、监控、报警等功能一体的监控处理平台。

全部AWS服务均可无缝对接CloudWatch(系统内置功能),所有服务均可从CloudWatch上进行指标查看、报警配置等。

对于自定义需求,CloudWatch也支持SDK进行定制开发。

总结:PaaS优于IaaS的地方在于,高层级的应用程序服务已经通过设计与测试考验,并能够有效的集成。平台的操作系统,平台的应用补丁,产品的测试运维有云服务厂商全部承担职责。常见的PaaS服务平台如:腾讯地图开发平台,小程序开发平台,物联网设备开发平台。

SaaS(Software as a Service)软件即服务

软件即服务, 是指将软件作为一种服务对外提供。服务商提供基于软件的解决方案,满足客户最终需求;如OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud、G Suite等应用,客户不需考虑任何形式的专业技术知识,获得完整的软件包,使他们的日常工作和生活变得更轻松。
SaaS实际上是提供了具体的软件服务,细化到了具体的分类,相比IaaS和PaaS面向程序员,SaaS是直接面向产品经理甚至用户的。

AWS SaaS相关产品:

  • RDS - 云上关系型数据库RDS全称:Amazon Relational Database Service

是一种 Web 服务,可让用户更轻松地在云中设置、操作和扩展关系数据库。

同时,RDS也是一款Serverless(无服务器化、全托管)的服务,也就是,不需要准备服务器,只需要鼠标点击几下即可在云上得到一款可用的数据库。

用户只需要通过网络连接到数据库就可开展业务开发和应用。

同时,关于数据库的维护、高可用、异常处理等均无需用户管理,这些交由AWS进行管理

简单来说就是在云上创建关系型数据库,然后通过网络连接使用。

  • DynamoDB - 云上的KV型NoSQL数据库

DynamoDB是AWS提供的一款KV型、列式存储的NoSQL数据库。

它也是一款Server Less的服务,用户只需要通过web页面简单的配置,即可得到一款可用的DynamoDB数据库。

通过网络连接到DynamoDB之上,即可进行业务的开发和构建。

DynamoDB 的架构和HBase有一定的相识度,它继续分区键来确定数据分区,基于排序键来确定数据排序

同时支持二级索引,可以为一个DynamoDB表增加最多5个二级索引来加速检索。

  • RedShift - 云上的数据仓库服务

Amazon Redshift 是一种快速、完全托管的 PB 级数据仓库服务,它使得用现有商业智能工具对您的所有数据进行高效分析变得简单而实惠。它为从几百 GB 到 1PB 或更大的数据集而优化,且每年每 TB 花费不到 1 000 USD,为最传统数据仓库存储解决方案成本的十分之一。

Redshift是AWS提供的一款:快速、大容量、分布式、完全托管(非Serverless)的PB级数据仓库服务。

Redshift底层基于Postgresql而构造,可以认为是一款分布式的Postgresql数据库,并且Redshift为数仓应用进行了单独的优化,完全适合作为公司内的PB级的大型数仓来使用。

同时,在市面上,Redshift很受欢迎,许多数仓的生态都加入了Redshift的支持,比如常见的BI领域,许多BI工具都可以直接对Redshift进行BI分析。如:Tableau、PowerBI等。

Serverless无服务模型

Serverless 是一种云原生开发模型,允许开发人员构建和运行应用程序而无需管理服务器。 Serverless 并不意味着不需要服务器,只是服务器由云厂商提供服务器的维护,更新,扩展等无差异化的服务器管理的日常工作。开发人员可以将其代码简单的打包部署在无服务器,最大化利用云的弹性可扩展性构建自己的应用程序。IT 的整个发展历程,我们可以看出是从本地为中心,最后到以应用为中心的 Serverless 架构的一系列变革。云计算类型BaaS,FaaS属于Serverless模型。

Serverless 优势

  • 以应用为中心,无需运营基础架构

以应用为中心,无需管理和运营基础架构,部署和升级,IT 人员只需要专注于核心的业务和代码,大大缩短开发周期,同时也大大节省管理基础架构的成本。

  • 自动伸缩

底层基础架构根据业务需求,自动伸缩。企业不需要考虑预置多少服务器,比如说 Lambda 会根据业务的负载自动增加和减少 Lambda 实例的个数,保证在极致负载情况下业务的连续性,同时在负载减少时,lambda 也会自动减少实例,没有服务器空跑的情况。

  • 为价值付费

Serverless 为价值付费,节省成本。比如说 Lambda 的付费模式,是根据 lambda 函数的运行时长和调用次数来收费的,每一次调用和运行,都是一次真正的客户请求,业务和费用直接关联,没有成本浪费;EventBridge 根据发不到事件总线的事件数量收费,SNSSNS 根据请求的数量收费,等等。

  • 内置高可用和高安全

Serverless 内置高可用和高安全,不需要再为此设计再高可用的架构和定期打安全补丁,高可用方面,lambda 函数都是垮可用区扩展,在安全方面比如说每个 lambda 函数都是运行在独立的 firecracker 虚拟机中,lambda 函数实例会被自动回收,杜绝感染,也可以及时更新安全补丁,保证性能的,减少开发工作,提高效率。举个例子,2021 年 12 月很多开发和运维人员花了几周或者上月的时间升级 java Log4j CVE 的安全补丁,但是对于 lambda 的客户来说,他们不需要做任何的事,亚马逊云科技自动更新了 lambda 的 java 安全补丁,客户不需要花费人力和时间管理更新,保证安全性的同时提高了生产效率。

AWS Serverless F&Q: Serverless F&Q

BaaS(Backend as a Service)后端即服务

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

国外比较知名的BaaS服务提供商是StackMob和Parse。
在国内,Talking Data、友盟、Bmob、百度和新浪开发平台均有相关业务。

事实上google的Firebase也是一个BaaS。Firebase提供了广泛的功能列表,这些功能分为三个阶段,即开发,获取和成长。 开发阶段包括实时数据库,身份验证,云消息传递,存储,托管,测试实验室(用于在设备上测试应用程序)和崩溃报告。 作为商业提供商,它还集成了AdMob平台,可通过您的应用获利。 在发展之路上,您会发现诸如App Indexing,AdWords,Notifications等功能。

也可以理解为BaaS = IaaS + PaaS + APIs + SDKs,即服务提供商提供了大量的功能,使用方只需要接入sdk,然后使用其api即可。

补充:区块链即服务,这个简称同名,也是BaaS。

常见产品: Amazon Managed Blockchain,阿里云Hyperledger Fabric

FaaS(Function as a service)函数即服务

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

无服务器计算,当前使用最广泛的是AWS的Lambada。AWS lambda官方文档
腾讯Serverless云函数:Serverless新手体验
阿里云:产品 函数计算
FaaS实例最佳实践

一般情况下,云平台的计算费用取决于调用次数,执行时长,内存消耗。所以如果这个函数的功能代码写得不好,调用次数非常多,执行时间特别长,或者消耗了大量的内存,那么价格就会很贵。
一般和BaaS结合,开发一些项目所需的特殊计算,只为实际计算量付费。
那么这种服务适合用于计算量偶尔比较高,但是一般情况没有计算量,或者计算量低的服务。


This is copyright.

...

...

00:00
00:00