可能是说的最分明的IaaS,PaaS,FaaS,SaaS,MicroService,Serverless了

后端的架构总是傻傻分不清

Posted by hughnian on January 8, 2021

絮语

如果说哪个行业最会起名字,那么互联网和软件行业称第二的话,估计没人敢称第一,比如什么复盘,赋能,组合拳,引爆点,泛用型,强化认知…. 等等这些让你听了是耳濡目旋的,高大上,我完全不知道啥意思。其实在我看来都是新瓶装旧酒,换个马甲,包装了下、或者说就是不说人话,强行装X了。 今天我们来说说同样也是几个高大上的名词,但是他们其实很好理解,但又相互联系,所以经常让人傻傻分不清。

云服务

从以前还望而却步的云计算到现在我们哪哪都是云服务,云的概念已经从概念落到地上,说到云其实也是个不说人话的装X词,说白了就是我们以前和现在 不停使用的服务器罢了,云计算、云服务就是一种更优化的服务器功能,从只是个服务器硬件本身,升级到在这个硬件中集成了很多方便使用,或者开箱即用的 服务,不需要你知道怎么安装,怎么配置,你只要花钱买了,就开箱即用。即有硬件使用,也有服务提供,这就是云服务。如果云服务还有分类的话,那么就是 下面要说的几个既有区别又有联系的分类了,但是不管这些分类怎么变,名字怎么起,怎么高大上,其实在我看来,就是作为客户的你(软件开发者)花钱享受不同 服务,统统都是简化了你要做的事情,把复杂的事情简单了,花钱就行了。看着很憷人,其实很简单。

IaaS

基础设施服务,Infrastructure as a service,如果把软件开发比作厨师做菜,那么IaaS就是他人提供了厨房,炉子,锅等基础东西, 你自己使用这些东西,自己根据不同需要做出不同的菜。

PaaS

平台服务,Platform as a service,还是做菜比喻,比如我做一个黄焖鸡米饭,除了提供基础东西外,那么PaaS还给你提供了现成剁好的鸡肉,土豆,辣椒, 你只要把这些东西放在一起,加些调料,用个小锅子在炉子上焖个20分钟就好了。

FaaS

函数服务,Function as a Service,同样是做黄焖鸡米饭,这次我只提供酱油,色拉油,盐,醋,味精这些调味料,其他我不提供,你自己根据不同口味是多放点盐, 还是多放点醋,你自己决定。

SaaS

软件服务,Software as a service,同样还是做黄焖鸡米饭,这次是直接现成搞好的一个一个小锅的鸡,什么调料都好了,已经是个成品了,你只要贴个牌,直接卖出 去就行了,做多是在炉子上焖个20分钟。

MicroService

微服务,Micro service,微服务是服务整体的细化,如果还是做黄焖鸡米饭,就好比一家供应商提供好了所有调料,一家供应商提供好了所有的鸡块等食材,你只要把这两 家供应商提供的东西做成黄焖鸡米饭就行了。

Serverless

无服务,Server less,说是无,其实有,无服务就是一种没有感知的服务,你不需要知道它怎么实现的。如果还是做黄焖鸡米饭,无服务在这里可以比喻为买一袋已经调味好的调料包,你直接往黄焖鸡里倒 就行了,至于怎么调出的口味你不需要知道。

下面就没有黄焖鸡了😄,我下面需要重点说说几个架构的实体

Serverless的历史

Serverless的概念并不清晰,乍见之下,很容易让人混淆硬件服务器及软件上的服务与其所谓的“服务器”差别,在这里强调的所谓“无服务器”指的是我们的代码不会明确地部署在某些特定的软件或者硬件的服务器上。 运行代码托管的环境是由例如阿里云或者腾讯云这样的云计算厂商所提供。其实这听上去又很像Paas,SaaS,FaaS,不错,所以他们之间也充满了联系。

Serverless 与 PaaS

PaaS是平台即为服务,Serverless相当于平台提供了更加细粒度和碎片化的服务,从这个层次来说,Serverless=PaaS。

Serverless 与 SaaS

SaaS是软件本身即为服务,Serverless相当于软件提供了更加细粒度和碎片化的服务,因为Serverless也是一种软件,从这个层次来说,Serverless=SaaS。

Serverless 与 FaaS

FaaS是函数即为服务,Serverless相当于提供的更加细粒度和碎片化服务是一种函数,从这个层次来说,Serverless=FaaS。

Serverless 与 MicroService

MicroService是微服务,是一种专注于单一责任与功能的小型服务,Serverless相当于更加细粒度和碎片化的单一责任与功能小型服务,他们都是一种特定的小型服务, 从这个层次来说,Serverless=MicroService。

这几个之间有这么多联系,但是从架构的定义范围也有个包含关系,PaaS > SaaS > FaaS > MicroService > Serverless

最后还有个 ServiceMesh

ServiceMesh叫做服务网格,他是依存于MicroService微服务架构存在的,因为微服务之间需要通信,需要数据交换同步等操作。在没有ServiceMesh之前微服务的 通信,数据交换同步也存在,也有比较好的解决方案,如Spring Clould,OSS,Double这些,但他们有个最大的特点就是需要你写入代码中,而且需要深度的写 很多逻辑操作代码,这就是侵入式。而ServiceMesh最大的特点是非侵入式,不需要你写特定代码,只是在云服务的层面即可享受微服务之间的通信,数据交换同步等操作, 这里的代表如,docker+K8s,istio,linkerd等。
从这里你也可以看出,所有新出来的高大上的东西,都是在简化你的工作。以前可能需要你造轮子才可以,然后到用现成的轮子就可以,再到连轮子你都看不见花钱就可以了🙂。