说说越来越火的 Serverless 是什么及应用场景。

1. 无服务器(Serverless)计算是什么

云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机、容器、微服务,无论这些技术应用在哪些场景,降低成本、提升效率是云服务永恒的主题。

过去十年来,我们已经把应用和环境中很多通用的部分变成了服务。Serverless的出现,带来了跨越式变革。Serverless把主机管理、操作系统管理、资源分配、扩容,甚至是应用逻辑的全部组件都外包出去,把它们看作某种形式的商品——厂商提供服务,我们掏钱购买。

过去是“构建一个框架运行在一台服务器上,对多个事件进行响应”,Serverless则变为“构建或使用一个微服务或微功能来响应一个事件”,做到当访问时,调入相关资源开始运行,运行完成后,卸载所有开销,真正做到按需按次计费。这是云计算向纵深发展的一种自然而然的过程。

Serverless是一种构建和管理基于微服务架构的完整流程,允许你在服务部署级别而不是服务器部署级别来管理你的应用部署。它与传统架构的不同之处在于,完全由第三方管理,由事件触发,存在于无状态(Stateless)、暂存(可能只存在于一次调用的过程中)计算容器内。构建无服务器应用程序意味着开发者可以专注在产品代码上,而无须管理和操作云端或本地的服务器或运行时。Serverless真正做到了部署应用无需涉及基础设施的建设,自动构建、部署和启动服务。

国内外的各大云厂商 Amazon、微软、Google、IBM、阿里云、腾讯云、华为云相继推出Serverless产品,Serverless也从概念、愿景逐步走向落地,在各企业、公司应用开来。

Serverless 历史


发轫之始

2012年云基础设施服务提供商Iron.io的副总裁Ken 提出软件的未来 ,首次提出来Serverless概念, 以下是原文的一段摘录:

Even with the rise of cloud computing, the world still revolves around servers. That won’t last, though. Cloud apps are moving into a serverless world, and that will bring big implications for the creation and distribution of software and applications.


初出茅庐

AWS Lambda产品的发布可以认为是Serverless的里程碑,再此之前Serverless几乎是停留在概念期,直到14年Lambda发布,让“Serverless”这一范式提高到一个全新的层面,为云中运行的应用程序提供了一种全新的系统体系架构,Serverless开始正式走向云计算的舞台。

崭露头角

在AWS发布Lambda之后,众多IaaS及Pass厂商争相入市,Google Cloud Functions, Azure Funcions, IBM OpenWhisk,阿里云函数计算,短短数年时间Serverless产品已遍地开花。

未来已来

随着容器技术,IoT,5G,区块链等技术的快速发展, 技术上对去中心化,轻量虚拟化,细粒度计算等技术需求愈发强烈,而Serverless必将借势迅速发展,未来Serverless将在云计算的舞台上大放异彩!


2、云计算发展看Serverless

首先,抛一个总结性观点:云计算的发展从IaaS,PaaS,SaaS,到最新的BaaS,FasS,在这个趋势中serverless(去服务器化)越来越明显,而Serveless的完善带给云计算将会是一次完美进化!

总所周知,云计算经历了从IDC -> IaaS -> PaaS -> Serverless/FaaS 的发展历程,下面对这些概念做一些基本介绍。

IaaS

nowjava.com

IaaS(Infrastructure as a Service) 基础设施即服务,__服务商提供底层/物理层基础设施资源(服务器,数据中心,环境控制,电源,服务器机房),用户需要通过IaaS提供的服务平台购买虚拟资源,选择操作系统,安装软件,部署程序,监控应用。

目前知名的IaaS平台有AWS,Azure,Google Cloud Plantform,阿里云以及开源的OpenStack等。

PaaS

nowjava.com

PaaS(Platform as a Service) 平台即服务,服务商提供基础设施底层服务,提供操作系统(Windows,Linux)、数据库服务器、Web服务器、负载均衡器和其他中间件,相对于IaaS客户仅仅需要自己控制上层的应用程序部署与应用托管的环境。

目前知名的PaaS平台有 Amazon Elastic Beanstalk,Azure,Google App Engine,VMware Cloud Foundry等。

SaaS

nowjava.com

SaaS(Software as a Service) 软件即服务, 服务商提供基于软件的解决方案,如OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud等,客户不需考虑任何形式的专业技术知识,只需要通过服务商平台获取软件使用即可。

BaaS

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

FaaS

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

IaaS,PaaS,FaaS 对比

举个例子,比如小明想开一个水果店

IDC:如果盖房子,装修,然后上架水果这些工作都是小明自己来做。

IaaS:如果小明房子是租的,装修,上架水果是自己做。

PaaS: 如果小明房子是租的,可是房子已经装修好了,但是上架水果要自己来做。

FaaS:如果有一个商家提供装修好的水果店,小明只负责把水果送过来,其余上架工作都由商家来做。

总结

从IDC → IaaS,用户不用关注真实的物理资源。

从IaaS → PaaS,用户不再关注操作系统,数据库,中间件等基础软件。

从PaaS → BaaS/FaaS, 用户可以很少甚至不用关注backend,app可以简化为一个单页面程序。

可以说,Serverless是云计算发展到一定阶段的必然产物,云计算作为普惠科技,发展到最后一定是绿色科技(最大程度利用资源,减少空闲资源浪费),大众科技(成本低,包括学习成本及使用成本)的产品,而Serverless将很好的诠释这些!


3、Serverless价值与影响

低成本

运营成本,Serverless将用户的服务器,数据库,中间件委托于BaaS/FaaS,用户将不再参与基础设施及软件的维护,尤其在大规模的集群运营上成本大幅度降低。

展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java