探索云计算的未来:从SaaS到FaaS,你的业务将如何改变?
IaaS、PaaS、SaaS、BaaS、FaaS 都是云计算时代云计算服务的一种类型,分别提供了不同层次的服务给客户进行使用。
与云计算时代 相对应的,就是传统服务器。在传统服务器的时代,公司要提供产品,就要自己采购服务器,自己安装操作系统, 搭建网络、存储等等硬件基础设施,这就是公司的机房。然后将机房给公司的运维人员进行管理和维护。
公司的开发人员在公司服务器上进行公司产品的研发和迭代,将研发好的版本放到公司服务器上对外提供服务。
而云计算时代,云厂商将服务器、存储、网络等基础设施作为一种资源统一研发、管理、维护,作为一种服务提供给有开发能力甲方客户公司,甲方客户 公司购买厂商的云计算服务,就相当于购买了硬件基础设施,后续只需要公司研发人员根据基础设施进行开发就可以了。
甚至,云厂商将拿来即用的成品软件开发出来作为资源提供给没有开发能力的客户,客户只需要经过简单培训就可以作为自己的软件进行使用。
下图为传统服务器、IaaS、PaaS、SaaS的对比图。
下面我们来讲解一下这些概念。
众所周知,现在餐饮店大都提供扫码点餐,既节约了人工成本,又方便了顾客。但是,店家的点餐软件是哪里来的呢? 难道每个小店都需要自己开发一套软件来使用吗?这样的成本对于不懂软件开发流程的餐饮小店来说,必然是巨大的,而且对于陌生领域, 人都需要花费巨大的时间去适应和学习。
如果店家自己去开发一个点餐程序,需要什么呢?需要一个产品经理进行产品的设计,需要程序员进行后端逻辑的开发以及前端页面的编写, 同时需要采购服务器,聘请专业的运维人员进行服务器的维护和管理。
显然成本是巨大的,店家独立开发这个选项是不现实的。
而这就引出了SaaS的概念。
1、SaaS(Software as a Service):软件即服务
SaaS,即「软件即服务」。 对于我们举的例子,点餐软件就是软件,而软件即服务,则点餐软件就是服务。服务的客户就是餐饮店, 那服务的提供方是谁呢?就是云服务厂商,即开发SaaS的厂商。
厂商负责点餐软件的产品设计、流程设计、产品研发、后期维护、服务器运维等等,将这一系列的成本抽象出一个点餐软件,然后将 点餐软件给全国各地的餐饮店使用,软件运行在云厂商的服务器上,提供给客户账号及相应权限,客户可以使用自己的账号进行一系列的操作 来实现扫码点餐。
假如某个客户想要定制的功能。
客户找到云服务商请求在已有系统上增加一个抽奖的功能来增加用户活跃度,但是被云服务商告知:SaaS服务是一体化的,不接受定制,这时候就引出了PaaS的概念。
2、PaaS(Platform as a Service):平台即服务
PaaS,即「平台即服务」,是针对开发者提供的。 PaaS服务商不提供具体的软件,而是提供开发软件需要的平台。 比如,操作系统,软件运行环境,中间件环境等。具体到开发点餐软件,假如客户想要使用java来进行开发,则PaaS可以提供对应的java开发环境 来供客户进行快速开发和部署,客户只需要进行应用程序的开发,而不需要进行服务器的运维工作。
PaaS 中的"平台"是指编程语言生态系统或"技术堆栈"。流行的基于语言的应用技术堆栈包括 Ruby on Rails、Django Python、Node.js MEAN 堆栈、Java SpringMVC 等。
假如,客户想要使用的开发环境,服务商不能提供,或者不能满足要求,那么就需要用户自己配置开发环境,这时候用户就可以选择 更底层的IaaS服务。
想要详细了解PaaS可以查看阿里云的PaaS平台的相关文档。
3、IaaS(Infrastructure as a Service):基础设施即服务
IaaS,即「基础设施即服务」。 这是相对PaaS更底层的设施,比如服务器等硬件资源。IaaS厂商只提供基础的硬件设施,而操作系统及相应的应用开发部署环境由客户 自己进行安装。购买云厂商的IaaS服务器,在配置云服务器时,一般会提供操作系统的选择和预装应用的选择。同时,也会提供一些其它软件的预安装给用户选择。
例如:以下为阿里云ECS云服务器购买时可以选择的预装应用。
4、 FaaS(Function as a service):函数即服务
FaaS,即「函数即服务」。 根据云厂商提供的服务,开发者可以编写函数并在需要时自动触发执行。云服务厂商会将这段代码打包成镜像,放到容器里。而容器的创建、扩容/缩容都是由 云服务厂商来进行调控,客户不需要关心底层细节的计算资源管理。
客户需要支付函数调用需要消耗的GPU、CPU、内存等资源以及函数调用次数产生的费用。
5、 BaaS(Backend as a Service):后端即服务
BaaS,即「后端即服务」。 服务商为客户(开发者)提供整合云后端的服务,如提供文件存储、数据存储、推送服务、身份验证服务等功能,以帮助开发者快速开发应用。
持续更新go语言及K8S等go相关生态的文章、前沿技术趋势及概念,欢迎大家点赞收藏,关注后续文章。
参考链接: