摘要:Everything is Serverless。
在众多云计算解决方案中,Serverless 逐渐崭露头角,受到了很多关注并且发展迅猛,今天就关于serverless 开源框架细说二三。
什么是serverless computingserverless computing = FaaS (Function as a Service) + BaaS (Backedn as a Service)
serverless是云原生应用的业务需求,是云计算形态的进一步发展,是云计算的下一代计算范式,Everything is Serverless
无服务器和传统云计算之间的三个基本区别是:解耦计算和存储;它们分别缩放并独立定价, 通常存储由独立服务提供,计算是无状态的
执行一段代码而不是分配执行代码的资源的抽象。用户提供一段代码,云端自动配置资源来执行代码(NoOPS,传统云计算是devops)
支付代码执行费用(Pay as you Run, 传统云计算是Pay as You Use),而不是支付为执行代码分配的资源。比如按执行时间计费,而不是按分配的虚机大小数量计费
Serverless 典型产品 函数服务主要开源项目 开源项目对比 ServerLess 框架比较 使用场景 架构以AWS为例
两条支持异构硬件的路径Serverless 包含多种实例类型,不同的硬件使用不同的价格
提供商自动选择基于语言的加速器和DSA(Domain Specific Architecture),比如GPU硬件用于CUDA代码,TPU硬件用于TensorFlow代码(对于python或者js等高级语言,软硬件co-design提供language specific 处理器; 对于编译型语言,编译器应该建议使用何种硬件架构)
当前技术局限 挑战计算抽象(屏蔽计算资源,解决数据依赖)
系统使能(函数状态的高速存储,函数间高速信令,函数极速启动)
安全性 (应用级隔离,分布式安全)
适应性 (异构硬件使能,微服务演进)
成本不可以预测: 需要提供成本预测能力
容易产生Vendor lock-in: 需要提供API标准规范,类似POSIX为操作系统做的事情,Google的Knative project在向这个方向努力
预测Serverless将成为云时代默认的计算范式,基于Serverless的应用将激增, on-promises应用由于监管约束和数据治理规则将长期存在,但是随着时间的推移会逐渐减少
https://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-3.pdf