serverless与函数计算
一、serverless
serverless的两种解读:
- 一种软件系统架构方法,通常称为serverless架构,例如knative
- 一种产品形态,称为serverless产品,典型有Faas,Baas
其中Baas是业务逻辑在客户端完成,云端只需要用到数据库或身份认证。
Faas服务器端逻辑仍由应用程序开发人员编写,运行在无状态计算容器中,这些容器是事件触发的、短暂的(可能只持续一次调用),并完全由第三方来调用。最有名的就是现在比较火的云上的Lambda服务。
二、云函数产品
云函数给用户提供了标准的 Runtime,同时在应用层也帮用户管理了请求的调度。开发者只需要聚焦在核心业务逻辑开发,按照函数的粒度去编写代码。而与底层硬件相关的资源维护,则交给更加专业的云厂商来搞定。云函数产品的技术特点:
- 事件驱动:按需启动,事件可以是一次 http 请求,一个文件上传,一次数据库条目修改,一条消息发送
- 单事件处理:一次只处理一个事件,无需在代码内考虑高并发,通过云函数实例的高并发实现业务高并发
- 自动弹性伸缩:云函数自动弹性合适的处理实例来承载业务
- 无状态开发:云函数环境中无法保存状态数据,依据外部产品
云函数产品组件架构如下:
用户虽然只需要关注绿色部分和业务相关的代码实现,但是平台也需要提供强大的开发者工具来保障开发和使用体验。如云函数推出的 Serverless 本地开发工具、VS Code 插件,与 CODING 联合推出的 Web IDE、DevOps 平台等,均能很大程度上提升开发、部署效率,实现本次开发、本地调试、联动云端调试、本地部署、版本发布等能力。
同时,云函数也完善了配套的监控和告警机制,提供如调用次数、内存使用、并发使用、超时、代码错误等多维度的监控和告警能力。这些基础设施、资源管理、安全、容灾等能力,是云函数平台必备的基础能力,也是开发者关心的核心能力。
三、阿里云函数计算架构
阿里云函数计算产品全景:
下图为阿里云函数计算架构:
API服务层完成身份验证,元数据的读写等功能。同步函数调用直接获取资源信息进行计算,异步则通过消息分发处理。过程中需要考虑
- 安全隔离,访问控制问题
- 预期/非预期中断的高可用
- 实时弹性伸缩
四、百度函数计算产品EasyFaaS
EasyFaaS是一个依赖轻、适配性强、资源占用少、无状态且高性能的函数计算服务引擎。核心功能如下
下图为EasyFaas架构图:(EasyFaaS 以单 Pod为最小服务单位,每个Pod中包含3个容器,分别为 controller、funclet 和 runner-runtime。)
- 提供基于事件机制,按需弹性伸缩的计算能力。
- 支持多种语言运行时,开发者只需使用适合的语言编写自定义函数,无需管理底层基础设施。
- 负责用户容器的全生命周期管理。
- 支持用户配置函数的容器资源容量,提供动态的容器容量调度。
- 支持同步和异步两种调用模式,支持多种可扩展的事件触发器。
- 支持可自定义的函数管理服务。
- 支持自定义语言运行时。
- 支持多种运行平台,包括Docker、Kubernetes及裸机等。
五、阿里云函数计算试用
1、创建服务,创建函数
其中,触发方式有两种:
- 事件触发:可以通过定时器,函数计算 SDK/API 和其他阿里云服务的触发器来触发函数执行。
- HTTP请求触发:通过发送 HTTP 请求触发函数执行,主要适用于快速构建 Web 服务等场景
2、管理函数
函数计算提供了按量模式和预留模式两种实例使用模式。您可以配置最大实例数来控制单个函数的资源使用上限,来防止单个函数过度调用导致的实例占用,保护后端资源,避免预期外的费用开销。同时可以通过配置最小实例数来激活预留模式实例,函数计算系统将根据配置的最小实例数为该函数常驻实例,来快速响应函数调用请求,降低冷启动的发生次数,为时延敏感的在线业务提供更好的服务响应。按量模式和预留模式计费方式不同。
函数计算支持同步调用和异步调用两种调用方式。通过 InvokeFunction 接口来调用函数时,您可以指定调用方式。同时不同类型的触发器,使用的调用方式也不同。例如,使用OSS 事件触发器调用函数属于异步调用。默认情况下,使用控制台的“测试”功能时属于同步调用。您可以在测试函数按钮的下拉框中切换到异步调用模式。在使用同步调用时,事件被函数处理后直接返回结果。在使用异步调用时,事件在写入到函数计算内部队列后便返回结果,函数计算系统会保证该消息被可靠地处理,并且可以在函数成功或者失败时调用其他目标
六、世纪联华serverless实现
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)