2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Serverless 系列(二):运行原理与组件架构

  • 2019-09-04
  • 本文字数:2332 字

    阅读完需:约 8 分钟

Serverless 系列(二):运行原理与组件架构

随着越来越多的开发者开始关注并使用 Serverless 技术,开发者也对 Serverless 提出了更高的要求。上一篇文章中我们已经了解到 Serverless 相关的基本知识以及 Serverless 所带来的一些优势,本文就不再赘述。接下来,我们重点探讨下现阶段,开发者在使用 Serverless 时经常遇到的一些问题,以及腾讯云 Serverless,尤其是云函数为此所做出的一些探索。


在过去一年多的时间里,我和大量的 Serverless 用户做过线上、线下交流,了解他们的业务场景、以及对 Serverless 的看法或者使用上的体验。大部分用户认为 Serverless 会是云计算下一阶段的必然趋势,但不是现在。为什么呢?因为构成 Serverless 架构的云函数虽然有引以为傲的自动扩缩能力,但是糟糕的开发体验、让人畏惧的冷启动、原有业务需要改造等等,均降低了使用者的信心。这也是当前不少用户虽然认可 Serverless 的价值,但是认为很难承载核心业务的原因。针对这些关键问题,腾讯云在今年 6 月份的上海 KubeCon & CloudNativeCon 上发布了 Serverless 2.0,全面升级了产品形态、系统调度以及开发者工具。 为了便于大家理解,我们就从云函数的运行原理作为切入点,一步一步解释问题产生的原因以及云函数的应对方法。


首先,我们先来看下云函数,或者说 FaaS 和 IaaS、PaaS 的区别。如下图所示,FaaS 不仅给用户提供了标准的 Runtime,同时在应用层,也帮用户管理了请求的调度。开发者只用聚焦在核心业务逻辑开发上,按照函数的粒度去编写代码。而底层硬件相关的资源维护,则交给更加专业的云厂商来搞定。因此,对于用户来讲,则可以把更多的精力和时间放在业务上。而 IaaS 和 PasS,则均需要用户去运维云主机或者容器集群、搭建业务所需的运行环境。​​


​​




其次,我们再来看下云函数是怎么构成 Serverless 架构,以及云函数是怎么帮用户做的资源管理和请求调度,在这里也将会回答云函数是怎么解决冷启、降低核心业务迁移复杂度的。如下图所示,开发者在实际使用时,可以借助 WEB IDE 或者本地 IDE 完成代码开发,然后通过在线或者插件、工具的方式把代码以及所用到的相关依赖,一起打包部署到云函数平台,用户可以自行选择部署成函数的形态或者服务的形态。


在代码里,用户需要自己实现业务逻辑,比如访问数据库、对象存储、消息队列、第三方服务接口等。计算逻辑和后端服务共同构成了所谓的 Serverless 应用架构。而终端用户根据平台提供的请求方式,去触发部署在云函数平台上的业务代码,比如发送 http 请求,平台会根据用户的请求量去拉起相应的计算资源去运行用户代码。


​​



这里需要重点解释下,函数形态和服务形态的差异,因为服务的形态可以大大降低复杂业务迁移的成本。


服务形态支持直接部署基于框架开发的核心业务,如 node.js 的 express、koa 等框架,而不用为了应用 Serverless 而拆分成函数。平台会帮用户启动服务进程、端口监听,同时服务形态不会限制业务的实际运行时长。


函数形态和服务形态在收到用户请求的时候,均能实现自动扩缩。函数形态会针对用户的每个请求都分配一个运行实例,因此所有请求的执行体验是一样的。当没有请求的时候,平台是没有实例在运行的,所以可以做到按需请求,但是这也会造成所谓的冷启动,即当用户的首次请求进入平台的时候,平台会临时拉起资源,而这个过程会消耗一定的时间。为了消除冷启,云函数平台会预先初始化一批不同规格的实例放在资源池中,当用户有请求进入时,可以快速从资源池申请一个实例,直接挂载用户的代码运行,从而降低了资源申请时间。同时,针对函数形态,平台会根据历史并发数据进行预测,帮用户预留一定量的实例,这些实例会预先分配到用户的账号下并且加载好了用户的代码,从而不仅直接消除了冷启,也增加了实例复用几率。


​​



而服务形态可以至少帮用户预留一个常驻实例,并且把用户的所有请求都投递到首个实例,根据实例的使用情况,自动的动态扩缩。


函数形态更适合新建项目,可以敏捷迭代,业务按照函数的粒度开发,不仅可以轻松实现云上多产品的联动,也可以享受函数的高并发及性能一致体验。服务形态更适合已有项目的迁移、重度复杂业务、需要长时运行的业务。


最后,再来看下,Serverless 2.0 的组件架构。如下图所示,用户虽然只用关注绿色部分和业务相关的代码实现,但是平台也需要提供强大的开发者工具来保障开发和使用体验。如云函数推出的 Serverless 本地开发工具、VSCode 插件,和 Coding 联合推出的 WEB IDE、DevOps 平台等,均能很大程度上提升开发、部署效率,实现本次开发、本地调试、联动云端调试、本地部署、版本发布等能力。同时云函数也完善了配套的监控和告警机制,提供如调用次数、内存使用、并发使用、超时、代码错误等多维度的监控和告警能力。对于基础设施、资源管理、安全、容灾等能力,是云函数平台必备的基础能力,也是开发者关心的核心能力。​​



Serverless 不仅仅是计算,还需要不断完善周边生态。随着用户量的增加,Serverless 必然会面临更多的挑战,怎么帮助用户组织管理代码,怎么解决带状态的业务诉求,怎么实现数据库连接数管理,怎么实现应用级部署等等。我们也在不断探索和优化用户的使用体验,计划提供诸如 Serverless DB、性能监控、日志分析、Serverless 框架、函数编排、高性能调用等功能。后续的文章也会陆续推出更多的核心能力解读,帮助开发者更好的理解和使用 Serverless。


Serverless is more!


相关文章:


《Serverless 系列(一):基本概念入门》


作者介绍:


黄文俊,腾讯云高级产品经理,负责腾讯云 serverless 产品规划。经历过企业级存储、企业级容器平台等产品的架构与开发,对容器、微服务、无服务器、DevOps 都有浓厚兴趣。对 Serverless 技术感兴趣的读者可关注 ServerlessCloudNative(ID:ServerlessGo)公众号了解最新技术与动态。


2019-09-04 08:3914136

评论

发布
暂无评论
发现更多内容

用通义灵码全新智能体+MCP实现从设计稿到前端代码,个人免费用

阿里云云效

阿里云 云原生 通义灵码

国内远程控制安全性天花板?ToDesk、向日葵、UU远程、RayLink深度对比

小喵子

远控工具 向日葵 远控软件 ToDesk

PET口语APP的开发流程

北京木奇移动技术有限公司

软件外包公司 AI口语学习 PET考试

HTTP接口数据也能定时同步入湖?用DolphinScheduler×SeaTunnel快速搞定!

白鲸开源

大数据 开源 Apache DolphinScheduler 任务调度

开源之夏2025 | DolphinScheduler邀你挑战技术任务,赢取丰厚奖金!

白鲸开源

大数据 开源 大数据任务调度 Apache DolphinScheduler 开源之夏

用通义灵码全新智能体+MCP实现从设计稿到前端代码,个人免费用

阿里巴巴云原生

阿里云 阿里云云原生 通义灵码

PET口语练习APP的技术框架

北京木奇移动技术有限公司

软件外包公司 AI口语练习 PET考试

最新版LangChain4j发布!终于修复了这个恶心的问题

王磊

AI 叙事回归、机构入场推升比特币:加密市场迎来新一轮上涨

PowerVerse

比特币 AI eth 加密市场

简化以太坊 L1,让DePIN基础更稳固

PowerVerse

以太坊 #区块链 DePIN 去中心化云算力

AI重构人力价值链:从“人效管理”到“智效革命”

用友BIP

白鳝:国产化替换浪潮进行时,信创数据库该如何选型?

TiDB 社区干货传送门

GreatSQL Hash Join 条件列长度对执行计划的影响

GreatSQL

用友携手中展集团,打造会展行业首个AI智能体集群

用友BIP

启动!华润五丰携手用友推进数智化渠道协同管理

用友BIP

悦达集团与用友战略签约,共启数智发展新纪元!

用友BIP

用友BIP再发新品,开启「人+智能体+群」业务协同新模式

用友BIP

用友签约招商局集团人力资源智慧系统(二期)

用友BIP

AI大模型入门(二):不微调的大模型能用吗?

测试人

人工智能

区块链ETF软件的功能模块

北京木奇移动技术有限公司

区块链开发 软件外包公司 区块链ETF

「摩根士丹利」最新人形机器人研报:5万亿美元全球市场和最佳商业模式分析(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

Head First LLM-开篇

好名字可以让你的朋友更容易记住你

#大模型

【AI聊天机器人】轻松上手,快速配置实战指南

JEECG低代码

AI大模型 AI应用 AIGC AI聊天

当AI智能体通过稳定币自主交易和结算,如何利好DeCloud?

PowerVerse

AI 加密 去中心化 稳定币 DeCloud

HF下载太慢?Alaya NeW的加速神器让你的模型"飞"起来!

九章云极DataCanvas

人工智能 深度学习 存储 nlp

香港人工智能营销技术研究院正式揭牌成立

东信营销科技

数智焕新| 4月招商局集团、悦达集团等选择用友BIP

用友BIP

签约!杭州金投选择用友BIP推进业财一体化,加强精益化管理

用友BIP

从人工智能到业务落地,低代码搭建智能工作流

天津汇柏科技有限公司

人工智能 低代码

从 SQL Server 到 TiDB:恺恩泰助力 40 + 医院数据平台升级的技术实践

TiDB 社区干货传送门

区块链ETF软件的核心功能

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

Serverless 系列(二):运行原理与组件架构_语言 & 开发_黄文俊_InfoQ精选文章