掌握Serverless:运行原理与组件架构
Posted 云加社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了掌握Serverless:运行原理与组件架构相关的知识,希望对你有一定的参考价值。
| 导语 从行业趋势看,Serverless 是云计算必经的一场革命。2019 年,Serverless 被 Gartner 称为最有潜力的云计算技术发展方向,并被赋予是必然性的发展趋势。Serverless 从底层开始变革计算资源的形态,为软件架构设计与应用服务部署带来了新的设计思路。
前言
FaaS 和 IaaS、PaaS 的区别
云函数如何解决问题
这里需要重点解释下,函数形态和服务形态的差异,因为服务的形态可以大大降低复杂业务迁移的成本。
服务形态支持直接部署基于框架开发的核心业务,如node.js的express、koa等框架,而不用为了应用Serverless而拆分成函数。平台会帮用户启动服务进程、端口监听,同时服务形态不会限制业务的实际运行时长。
函数形态和服务形态在收到用户请求的时候,均能实现自动扩缩。函数形态会针对用户的每个请求都分配一个运行实例,因此所有请求的执行体验是一样的。当没有请求的时候,平台是没有实例在运行的,所以可以做到按需请求,但是这也会造成所谓的冷启动,即当用户的首次请求进入平台的时候,平台会临时拉起资源,而这个过程会消耗一定的时间。为了消除冷启,云函数平台会预先初始化一批不同规格的实例放在资源池中,当用户有请求进入时,可以快速从资源池申请一个实例,直接挂载用户的代码运行,从而降低了资源申请时间。同时,针对函数形态,平台会根据历史并发数据进行预测,帮用户预留一定量的实例,这些实例会预先分配到用户的账号下并且加载好了用户的代码,从而不仅直接消除了冷启,也增加了实例复用几率。
而服务形态可以至少帮用户预留一个常驻实例,并且把用户的所有请求都投递到首个实例,根据实例的使用情况,自动的动态扩缩。
函数形态更适合新建项目,可以敏捷迭代,业务按照函数的粒度开发,不仅可以轻松实现云上多产品的联动,也可以享受函数的高并发及性能一致体验。服务形态更适合已有项目的迁移、重度复杂业务、需要长时运行的业务。
Serverless 2.0 的组件架构
最后再来看下,Serverless 2.0 的组件架构。如下图所示,用户虽然只用关注绿色部分和业务相关的代码实现,但是平台也需要提供强大的开发者工具来保障开发和使用体验。如云函数推出的 Serverless 本地开发工具、VS Code 插件,和 Coding 联合推出的 WEB IDE、DevOps 平台等,均能很大程度上提升开发、部署效率,实现本次开发、本地调试、联动云端调试、本地部署、版本发布等能力。
同时云函数也完善了配套的监控和告警机制,提供如调用次数、内存使用、并发使用、超时、代码错误等多维度的监控和告警能力。对于基础设施、资源管理、安全、容灾等能力,是云函数平台必备的基础能力,也是开发者关心的核心能力。
---------下方更多精彩----------
活动推荐
点击阅读原文即可免费报名
关注云加社区,回复 3 加读者群
以上是关于掌握Serverless:运行原理与组件架构的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot Serverless 实战 | Serverless 应用的监控与调试
我的 Serverless 实战 — Serverless 架构理念 ( 后端服务器发展 | Serverless 与 ServerFul | Serverless 定义 | 架构优缺点 )