对于 Serverless,咱们能够把它了解为一种架构,一种理念,甚至是一种思维。Serverless 的外围目标,就是在云计算的根底上,再向前迈进一步,彻底“包揽”所有的环境工作,间接提供计算服务。
在 Serverless 架构下,开发者只需编写代码并上传,云平台就会主动筹备好相应的计算资源,实现运算并输入后果,从而大幅简化开发运维过程。Serverless 是云计算的进一步延长,所以,它继承了云计算的最大特点——按需弹性伸缩、按需付费。
当初的互联网服务,基本上都是采纳微服务架构。也就是把一整套服务,拆分为多个细分服务,由不同的服务器实现运算。
Serverless 的特点是,这个服务足够“细小”,变成了“函数级”的颗粒度。从层级上来看,Serverless 在传统云计算 SaaS 的 Application(利用)层级之上,又加了一层——function(函数)。它的颗粒度更细,能够更灵便地满足用户的算力需要。
依照 CNCF 对 Serverless 的定义,Serverless 架构是采纳 FaaS(函数即服务)和 BaaS(后端服务)服务来解决问题的一种设计。FaaS 就是 Function as a service(函数即服务)。每一个函数都是一个服务,函数能够由任何语言编写,间接托管在云平台,以服务模式运行,通过事件触发。BaaS 则是 Backend as a service(后端即服务)。云平台提供的后端组件整合,开发者无需开发和保护后端服务,通过 API/SDK 的调用,便可取得例如数据存储、音讯推送、账号治理等能力。
Serverless = FaaS + BaaS
Serverless 的背地,仍然是虚拟机和容器。只不过,服务器部署、runtime 装置、编译等工作,都由 Serverless 计算平台负责实现了。对开发人员来说,只须要保护源代码和 Serverless 执行环境的相干配置即可。这就叫“无服务器计算”。
Serverless 架构的最大劣势,显然就是帮忙用户彻底解脱了基础设施治理这样的“杂事”,更加专一于业务开发,从而晋升了效率,升高了开发和经营老本。
依据业界的统计,在商业和企业数据中心里的典型服务器,日常仅仅只提供了 5%~15% 的均匀最大解决能力的输入。这是一种算力资源的微小节约。
2017 年,Serverless 开始在国内落地。这一年,阿里云和腾讯云先后推出了本人的 Serverless 平台。阿里云的 Serverless 平台,被间接命名为函数计算(FC,Function Compute)。
一年后的 2018 年,阿里云推出 Serverless 容器服务 ASK 和 Serverless 利用引擎 SAE。
Serverless 的呈现,能够让用户依照理论算力使用量进行付费,属于真正的“准确计费”。换言之,用户的每一分钱,都花在了刀刃上。
目前,阿里云曾经领有超过 20 款 Serverless 产品,包含函数计算 FC、Serverless 利用引擎 SAE、Serverless 容器服务 ASK、PolarDB 数据库、AnalyticDB 数仓等。其中函数计算日调用次数超过 200 亿次,整体规模位居国内首位。
Serverless 并不是没有服务器的计算,而是将算力环境和资源进行了“暗藏”,让用户不可见,无需操心。事实上,Serverless 不仅须要算力资源,而且对算力资源的要求比以往更高。