Serverless Openwhisk&FnProject&OpenFaas&Fission&Kubeless调研

概述

什么是serverless

云计算背景下的serverless

“无服务器架构是基于互联网的系统,其中应用开发不使用常规的服务进程。相反,它们仅依赖于第三方服务,客户端逻辑和服务托管远程过程调用的组合。”

serverless是一种执行模型,其中云提供商负责通过动态分配资源来执行一段代码。并且只收取用于运行代码的资源量。代码通常在无状态容器内运行,可以由各种事件触发,包括http请求,数据库事件,排队服务,监视警报,文件上载,预定事件(cron作业)等。其业务层面的状态则被开发者使用的数据库和存储资源所记录。

serveless架构的意义在于,使得开发者更关注于业务逻辑的核心代码,不必关心IaaS层的基础设施的购买、运维、配置,也不关心自己应用的配置、部署、高可用这些PaaS层的东西。这种架构里,开发者自己并不接触Server,所以有了Serverless这个词。该模式下,开发者的效率是最高的,基本是100%的核心业务+0的业务支撑,而传统的IaaS架构里,我们在用20%的时间开发核心业务 + 80%的时间提供周边业务支撑。

IBM给出的serverless定义为:

  • A cloud-native platform
    云原生应用就是让渡一部分功能给云,以实现弹性,高可用,故障恢复,降低研发运维成本的应用
  • For short-running, stateless computation 短期运行,无状态计算
  • And event-driven applications 事件驱动
  • which scales up and down instantly and automatically 自动缩放、扩容
  • And charges for actual usage at a millisecond granularity 以毫秒粒度收取实际使用费用
原理

以amazon的lambda为例演示
在这里插入图片描述

Serverless架构里使用到了两种技术:

  • BaaS:Backend as a Service,BaaS可以认为是PaaS中提供纯服务的那部分Service。
  • FaaS:Function as a Service。

FaaS 全称 Function-as-a-Service,可以理解成给 Function 提供运行环境和调度的服务。Function 可以理解为一个代码功能块,这个功能块具体包含多少功能,无法明确给出定义,但有一个明确的指标:冷启动时间需要在毫秒数量级。因为 FaaS 的本质上是以程序的快速启动来实现正真的按需运行,按需伸缩,以及高可用。Function 配合调度系统,就可以完全做到开发者对服务运行的实例无感,真 Serverless。

从编程模型上,FaaS 本质上要处理的事情其实是两个,一个是计算量的度量,另外一个是并发。也就是说,理想状态下,FaaS 系统应该可以让系统达到一个最佳状态,所有资源的利用率都达到最高。计算的度量,当前只能按时间度量,理想状态应该可以度量 cpu 执行指令数之类的。而并发处理上,理想状态下应该可以避免 IO 等待的并发资源消耗,类似于全异步 IO 模式,但对开发者透明。

发展

Serverless架构是云的自然延伸,无论是 IaaS,PaaS,FaaS,SaaS,都是 IT 的服务平台。这些变革的本质目的,无外乎两方面的原因:提高效率、减少成本。

优势劣势

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值