仅为代码实际运行资源付费 解构国内首个函数计算

  • 时间:
  • 浏览:0

2017-05-03 12:20:29  牛华网    

我能评论(

)

字号:T|T

4月26日,在云栖大会・南京峰会上,阿里云发表声明函数计算(Function Compute)启动邀测。这是国内首个事件驱动的无服务器计算平台。用户按需调用、按需付费,不不管理服务器等基础设施,不怎样适用于应用场景含有明显波峰波谷的企业。

通过函数计算,用户不不再管理服务器等基础设施,只需编写代码并上传。函数计算会为用户准备好计算资源,以弹性、可靠的法子 运行代码,并提供日志查询,性能监控,报警等功能。

借有利于函数计算,上能 快速构建任何类型的应用和服务,不不管理和运维。更棒的是,只都要为代码实际运行消耗的资源付费 ——代码未运行则不产生费用。

以构建4个多多视频补救后端服务为例,来体验以serverless的法子 开发应用的高效。

在示例场景中,用户将生成的高清视频文件上传到阿里云对象存储(OSS)上,哪几次视频文件都要转码为不同码率的文件(3150P,720P,……)以适配不同的播放设备。最终结果文件被存储到OSS上,由用户消费。

或者以传统的server-based法子 构建系统,用户都要购买和设置服务器,编码实现高性能服务器软件。或者要考虑一系列容量预估、容错、运维监控等方面的问题。类式,都要几次台服务器、哪几次规格?怎样配置网络/操作系统?怎样部署升级?怎样补救服务器宕机?怎样负载均衡?怎样根据负载实时动态伸缩?怎样对系统监控报警?

……

server-based后端服务

或者以serverless的法子 构建系统,用户只都要编写补救单个请求的视频转码函数,并设置相应的OSS触发器即可,函数计算系统会保证函数被可靠的执行。大大提高了开发传输波特率。

serverless后端服务

架构总览

从安全性,可用性和可扩展性的厚度来审视函数计算的架构,看看它是怎样帮助用户构建弹性高可用的应用。

整个系统架构如下图所示。API服务层完成身份验证,元数据的读写等功能。或者是同步函数调用请求,则API Server从资源调度模块获取可用的函数执行引擎并发送请求,最后注销结果。或者是异步调用,则将事件写入到消息队列后即返回。由事件分派模块分派事件,整个流程和同步调用类式。

函数计算架构

安全性和访问控制

作为4个多多通用的计算服务,函数计算允许用户运行任意代码。或者保证用户信息安都在函数计算最高优先级的目标。在系统设计中坚持以下4个多多原则:

1.使用最高级别的安全隔离技术,提供与阿里云ECS同等级的安全隔离性。

2.访问用户的任何资源均需得到用户的显式授权。

整个计算环境的隔离分为4个多多层面:

1.执行用户函数的计算资源和函数计算系统的网络是相互隔离的。

2.不同用户的计算资源和网络是相互隔离的。

通不多层次,多维度的安全隔离,确保用户和函数计算服务本身的信息安全性。

此外,或者用户的函数被有些用户或服务调用或者访问有些资源会涉及到费用和数据安全,或者函数计算要求用户授权。类式,用户想使用阿里云对象存储服务(OSS)触发器时,都要授权OSS服务调用相关函数的权限。通过对触发器的管理,用户上能 非常方便的了解指定函数或者被哪几次事件源服务调用。关于函数计算的授权模型,请参阅相关文档。

高可用

要保证用户函数被可靠的执行,函数计算都要补救以下两类场景:

1.非预期中断。类式系统进程运行崩溃,机器宕机,网络分割故障(network partition)等等。

2.预期中断。类式用户函数、函数计算系统的升级等等。

非预期中断的补救能力是任何分布式系统都在具备的基本能力,相关技术或者非常心智成长期的句子是什么是什么 是什么是什么是什么是什么的句子的句子的句子期的句子,细节没这麼 人不再赘述。函数计算本身和依赖的阿里云服务都具备高可用的底部形态。在有条件的区域,函数计算的系统会跨多个可用区部署,提供更高级别的容灾能力。

对于预期的中断,函数计算系统自身和用户函数都上能 做到平滑升级。当升级占据 时,正在执行的请求不不被终止,系统会等待歌曲请求补救完成,再执行升级操作。未来没这麼 人将支持函数的多版本(帮助用户快速回滚)、灰度发布等功能,进一步减轻用户的运维负担。

实时弹性伸缩

实时弹性伸缩是函数计算的核心优势,当用户负载总出 波峰时,系统能实时扩张资源,平滑应对峰值访问。以异步事件补救为例,整个补救流程分为三步:

1.事件写入函数计算的事件队列。

2.事件分派器从队列中读取事件,并调用对应的函数补救事件。

3.用户函数补救事件。

函数计算系统会监控用户的负载变化,各组件均上能 根据用户负载动态伸缩。如上图所示,当用户A的事件产生传输波特率变大时,系统会自动在每个环节给A分配更多的资源,以匹配事件补救的能力。

函数计算采用多级资源调度策略,系统会根据用户负载和资源池水位预判需求,提前准备好计算资源。依托于飞天分布式平台多年的积累,在调度的实时性和准确性上取得了很好的平衡,具备毫秒级弹性伸缩的能力。

买车人面,实时弹性伸缩也是一柄双刃剑,函数有或者被错误触发,不但影响服务可用性,也给用户造成财务损失。以上述视频转码系统为例,每当有新的视频被上传到对象服务(OSS)的指定目录后,函数就会被触发进行转码。但或者用户不小心把补救后的结果文件也写入到了源目录,则形成了4个多多事件触发的环,意味着着函数会以指数级传输波特率被错误触发,且永远不上能 终止。或者系统都要上能 控制和隔离错误函数的影响。

函数计算在用户粒度设置了函数最大并发调用限制(允许用户自定义),保证用户的费用不不超过4个多多上限。并肩,整个系统从不同层次,不同维度对用户使用的资源进行流控,确保在多租户的环境中,用户不不互相影响。此外,提供充足的监控和报警功能,上能 及时通知用户补救。

总结

云的第一阶段,是基础设施的云化,使得用户有能力使用大规模的计算能力。云的下一阶段的发展,是要补救用户使用云的成本和传输波特率问题,帮助用户实现业务能力的云化。本文从分派的厚度,剖析了函数计算原先的无服务器计算服务(serverless computing)是怎样帮助用户快速构建低成本、高可用、实时伸缩的cloud-native应用。当哪几次通用的问题在平台层面补救后,用户就能以很高的传输波特率专注于业务层的创新。欢迎没这麼 人使用阿里云函数计算,进入无服务器计算的世界。