Serverless 在阿里云函数计算中的实践

本文涉及的产品
云原生网关 MSE Higress,422元/月
可观测监控 Prometheus 版,每月50GB免费额度
应用实时监控服务-应用监控,每月50GB免费额度
简介: 近日,阿里云 aPaaS&Serverless 前端技术专家袁坤在 CSDN 云原生 meetup 长沙站分享了 Serverless 在阿里云函数计算 FC 的实践。

作者:CSDN云原生


近日,阿里云 aPaaS&Serverless 前端技术专家袁坤在 CSDN 云原生 meetup 长沙站分享了 Serverless 在阿里云函数计算 FC 的实践。


互联网软件架构演进


我们先简单回顾下互联网软件架构的演进之路。


单机部署


在单机部署中,将所有的业务和数据库都部署在一台主机中。


1.png


此架构的优点是:开发、部署以及运维都非常简单。缺点是:一旦遇到流量过大或者机器故障,整个系统瘫痪,甚至丢失业务数据,造成巨大业务损失。


集群化部署


针对上述架构问题,常用的解决方案是采取水平扩容的方式进行集群化部署。引入 SLB 的流量网关路由,进行负载均衡。集群化部署本质上是单体架构,开发人员在项目开发的时候需要额外注意,比如要使用 cookie 进行鉴权,session 就不能存储在本地,需要引入 Redis 进行单独存储。集群化部署可以通过快速水平扩容解决流量突增或机器故障的问题。


2.png

image.gif

微服务拆分


随着业务的发展以及团队规模的扩张,单体架构这样紧耦合的方式会带来越来越多的问题,架构的灵活性和可扩展性成为阻碍业务发展的重大挑战。微服务架构应运而生。


3.png


image.gif对比单体架构,微服务架构远比其复杂,也衍生了很多新技术,比如:API 网关、服务注册、服务发现、RPC 通信。


Serverless 架构


从单体架构到微服务架构,从单机部署到集群化部署,互联网软件架构越来越复杂,公司需要投入大量精力和成本进行底层技术的升级和维护。下图是 Serverless 架构,和单体架构不同的是将对应的组件换成 Serverless 云产品。image.gif


4.png


技术演进的本质是更好服务业务,传统开发方式使企业花费更多的精力打磨底层技术细节,而 Serverless 架构就是让开发者专注业务实现从而创造更大的业务价值。


Serverless 架构的优势很明显:


  • 不关注底层基础设施,专注业务价值创造


  • 自动弹性,从容面对突增流量


  • 按资源使用计费,避免资源闲置浪费


Serverless 架构探讨


先来看一下 FaaS 的执行过程。蓝色部分是用户手动管理,只需要交付代码,其他的启动、运行、运维等都是在 FaaS 平台进行。


5.png


image.gif但是此架构会产生一些问题:


  • 代码碎片化,无法统一管理和部署


  • 本地环境和线上环境不一致,无法处理依赖兼容性问题


  • 进行本地 Debug 和线上调试困难


  • FaaS 厂商对代码包有限制,无法部署大代码包


  • 没有统一的标准,导致厂商锁定问题


Serverless Devs


针对上述问题,Serverless Devs 可以帮助开发者更好地开发管理 Serverless 应用,它具备以下几个特点:


  • 无厂商锁定,Serverless Devs 帮助开发者将应用部署在各个厂商上面


  • 开源开放,代码逻辑无任何黑洞


  • 功能可插拨,Serverless Devs 通过组件的形式提供,开发者完全可以根据需求,快速开发适合自己的工具套件


  • 项目全生命周期管理能力,Serverless Devs 是用户进行项目初始化创建、开发、调试、部署等全生命周期管理的工具,简化 Serverless 应用开发


如果说 Serverless 架构可以帮助开发者开发应用,那么 Serverles Devs 就是帮助 Serverless 开发者更好地开发 Serverless 应用!


Serverless 架构实践


Serverless Devs 官网实践


通过上面的介绍可以看出 Serverless Devs 开发者工具并没有提供业务,业务的实现由组件提供,而组件本身分散在不同的 GitHub 仓库中。


Serverless Devs 官网有下面几个诉求:


  • 不同仓库下 GitHub 源中的文档汇集在一个界面进行展示


  • 组件开发者专注组件文档编写,文档自动实时同步到官网


  • 组件一旦有变动,官网能够自动部署和构建


整体方案如下:


6.png


开发者在 GitHub 更新文档,触发 webhook 钩子配置的 Http Serverless 函数。这里需要注意的是:由于组件的文档数目不定以及 GitHub 网络不稳定等问题,如果所有的工作都在 Http 函数中处理,非常容易导致超时,所以将所有的处理逻辑放在异步调用中,执行完后将处理的结果投递到钉钉或者邮件等渠道。


阿里云函数计算控制台实践


阿里云函数计算 FC 控制台是用户使用函数计算产品的第一站,控制台的用户体验至关重要。在架构上面临几个问题:


  • 后端采用中心化部署模式,用户在海外访问延时非常高


  • 需要用户手动建设监控、日志、灰度等能力,导致运维成本偏高


  • 研发效率较低,开发过程中前后端需要协调沟通,协作成本较大


整体解决方案如下:


7.png


image.gif左侧是阿里云通用的网关,负责统一鉴权和安全等逻辑,抽离出 BFF(Backend for Frontend)层,这部分的特点如下:


  • 整体 BFF 部署在阿里云函数计算 FC 上,开发者无需手动运维


  • BFF 层由前端工程师负责,前端工程师更好地深入业务,提供优秀的用户体验


  • 后端工程师专注于底层稳定性和原子能力的提供,通过 SDK 的方式进行交付给 BFF


8.png


image.gif通过 Serverless 实现的 BFF 不仅给业务带来了极大的灵活性,对于前端工程师这个群体也有质的改变:从之前的技术视角转变到更加关注业务价值和用户体验提升。


CD 构建实践


常规的自建 CD 构建集群方案通过 Jenkins 或 Tekton 框架实现业务逻辑的编排,资源层面使用 K8s 部署,实现弹性伸缩。如果需要实现简单的云端构建 CD 方案,采用上文的架构略显复杂。


CI/CD 的业务场景有以下几个特性:


  • 通过事件触发执行


  • 流量无法提前预估


  • 需要长时间在后台运行,对延时不敏感


  • 由于网络时延等问题,需要设计失败重试机制


这些特性完全是为 Serverless 量身打造的。实现方案还使用了异步函数,将构建的所有流程导到异步函数中处理,整个编排逻辑通过 Serverless Devs 进行,完美实现了一个性能稳定的 CD 构建集群。


阿里云函数计算应用中心这款产品的底层的 CD 能力完全基于上述的原理进行实践,大家可以自行体验。image.gif


9.png


异步函数


实践中有非常多使用到异步函数的场景,这里简单介绍下异步函数。


10.png


总结来看,异步函数有四个特点:


1、可长时间运行,两个小时到一天不等


2、可以设置自动终止,自由调节时间,节约资源


3、可把触发结果分发给各个事件兑现中心


4、有三次机会可在失败的情况下自动重试


相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
2月前
|
机器学习/深度学习 人工智能 Serverless
吉利汽车携手阿里云函数计算,打造新一代 AI 座舱推理引擎
当前吉利汽车研究院人工智能团队承担了吉利汽车座舱 AI 智能化的方案建设,在和阿里云的合作中,基于星睿智算中心 2.0 的 23.5EFLOPS 强大算力,构建 AI 混合云架构,面向百万级用户的实时推理计算引入阿里云函数计算的 Serverless GPU 算力集群,共同为智能座舱的交互和娱乐功能提供大模型推理业务服务,涵盖的场景如针对模糊指令的复杂意图解析、文生图、情感 TTS 等。
|
4月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
国诚投顾携手阿里云,依托Serverless架构实现技术全面升级,构建高弹性、智能化技术底座,提升业务稳定性与运行效率。通过云原生API网关、微服务治理与智能监控,实现流量精细化管理与系统可观测性增强,打造安全、敏捷的智能投顾平台,助力行业数字化变革。
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
|
4月前
|
运维 NoSQL Serverless
|
4月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
|
3月前
|
消息中间件 运维 监控
爆款游戏背后:尚娱如何借助阿里云 Kafka Serverless 轻松驾驭“潮汐流量”?
阿里云 Kafka 不仅为尚娱提供了高可靠、低延迟的消息通道,更通过 Serverless 弹性架构实现了资源利用率和成本效益的双重优化,助力尚娱在快速迭代的游戏市场中实现敏捷运营、稳定交付与可持续增长。
206 35
|
3月前
|
人工智能 机器人 Serverless
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
当云计算遇见具身智能,AI咖啡开启零售新体验。用户通过手机生成个性化图像,云端AI快速渲染,机器人精准复刻于咖啡奶泡之上,90秒内完成一杯可饮用的艺术品。该方案融合阿里云FunctionAI生图能力与安诺机器人高精度执行系统,实现AIGC创意到实体呈现的闭环,为线下零售提供低成本、高互动、易部署的智能化升级路径,已在商场、机场、展馆等场景落地应用。
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
|
3月前
|
消息中间件 存储 运维
嘉银科技基于阿里云 Kafka Serverless 提升业务弹性能力,节省成本超过 20%
云消息队列 Kafka 版 Serverless 系列凭借其秒级弹性扩展、按需付费、轻运维的优势,助力嘉银科技业务系统实现灵活扩缩容,在业务效率和成本优化上持续取得突破,保证服务的敏捷性和稳定性,并节省超过 20% 的成本。
215 24
|
2月前
|
人工智能 运维 安全
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
阿里云推出以函数计算为核心的AgentRun平台,通过创新体系解决开发、部署、运维难题,提供全面支持,已在多个真实业务场景验证,是AI原生时代重要基础设施。
|
3月前
|
人工智能 运维 安全
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
云原生应用平台 Serverless 计算负责人杨皓然在云栖大会发表主题演讲“Serverless Agent 基础设施:助力大规模 Agent 部署与运维”。本议题深入介绍了阿里云以函数计算为核心打造的 Agent 基础设施——AgentRun,阐述其如何通过创新的运行时、模型服务、网关及可观测体系,为企业构筑坚实、高效、安全的 Agent 时代基石。
|
4月前
|
运维 NoSQL Serverless
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
在轻休闲游戏流量波动大、生命周期短的背景下,传统架构难以应对成本与扩展挑战。本文介绍了基于阿里云函数计算 FC 和 Redis 构建的新一代服务器架构,实现弹性伸缩、成本优化与高效运维,助力轻休闲游戏快速迭代与稳定运营,提升开发效率并降低运维复杂度。
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏

相关产品

  • 函数计算