开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:微服务和 Serverless 架构-函数计算 FC 简介及应用场景】
课程地址:https://edu.aliyun.com/course/3112075/lesson/190230
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
内容介绍:
一.函数计算FC功能简介
二.丰富的触发器功能
三.函数计算FC和微服务的区别
四.极速上线Web应用
五.事件源触发机制实现数据处理的计算存储分离
六.无上限计算资源助力AI推理计算
七.毫秒级弹性扩容轻松应对突发流量
八.Serverless理念已经深入阿里云产品体系中
一.函数计算 FC 功能简介
在2015年底亚马逊推出 AWS Lambda 并提出 Serverless概念后,阿里巴巴内部也对这一概念表现出了相当大的认可,在2016年阿里巴巴的云栖大会上特意设置了Serverless 专场,并在 Serverless 专场上推出了自己的Serverless 产品,函数计算(Function Compute),简称 FC。
FC的技术亮点主要体现在:
1.开发流程极其简单,用户只需要上传自己的开发代码,甚至可以选择在线编辑代码即可发布应用。同时,FC 产品支持 NodeJS ,Python, PHP ,Java, C#,Go,Ruby 等多个语言的开发平台,基于计算、存储分离的架构设计思想,FC 还可以无缝接入关系数据库 RDS、对象存储 OSS、表格存储 OTS等多个阿里云存储产品。
2.平台零配置,用户上传代码或在线编辑代码后,平台自动生成外部访问域名,同时分配计算资源,需要多实例时,平台可以实现毫秒级的自动弹性伸缩,这些功能不会另外收费,只会按照实际的计算资源进行收费,大大降低了用户的运维负担和资产管理难度。相对于 AWS Lambda 的函数计算,FC 支持更多的开发语言和功能,应用场景也更加的广泛。
二.丰富的触发器功能
函数计算 FC 产品的另一功能特点是支持丰富的触发器功能,通过触发器和事件源同其他产品进行关联,事件源会在事件产生时以同步或异步的方式触发FC应用的函数调用。也就是说,通过触发器功能,函数计算FC不仅仅可以提供 WEB 类服务,也可配合阿里云其他产品做更复杂和灵活的工作。
例如,可在用户上传文件之后对上传的文件进行处理或者修改对应的网页内容,也可在 SLS日志服务接收到新日志时对日志内容进行检查,一旦发现符合某些特殊关联条件的日志,则产生相应的动作或报警。
FC产品支持的常用触发器如下:
·对象存储(OSS)触发器
当 Bucket 中文件变更时,自动触发函数执行。
·消息队列(MNS)触发器
编写函数对发布在主题上的消息进行实时处理。
·API网关触发器
当请求设置函数计算为后端服务的API时,API网关会触发相应的函数,函数计算会将执行结果返回给API网关。
·云监控触发器
提供了丰富的云产品系统事件监控,可以实现更多相关云资源的自动化式的自定义处理。
·表格存储(OTS)触发器
当表格中数据变更时,以变更信息作为参数触发函数执行。
·内容分发网络(CDN)触发器
编写函数对 CDN 事件(预热、刷新等)进行自定义处理。
·事件总线EventBridge触发器
通过事件规则过滤事件,将事件路由到函数计算。
·消息队列Kafka版Connector触发器
创建 FC Sink Connector 将数据从消息队列 Kafka 版实例的数据源 Topic 导出至函数计算的函数。
·日志服务(SLS)触发器
定时获取更新的日志并触发函数进行自定义日志加工。
·HTTP触发器
接收 HTTP Request,自定义处理后返回 HTTP Response.
·loT触发器
使用规则引擎数据流转,将数据转发至函数计算中,然后由函数计算运行函数脚本进行业务处理。
三.函数计算 FC 和微服务的区别
将函数计算 FC 和微服务架构的使用场景及技术特点分别进行比较。
1. 微服务应用架构,在微服务架构下,启动微服务应用首先需要准备微服务的应用环境,如 ECS 集群或K8S 集群,但上传应用后还需要配置公网 SLB 负载均衡才能对外提供服务。因为拥有注册中心和核心组件,微服务应用内部的调用的,相对容易。
2.FC应用,FC应用由平台实现了域名解析、布载均衡、权限检查等功能。目标用户配置较少,但FC的应用本质为单体应用,一旦程序规模太大,单体应用的各种问题都会体现出来。
综合来看,FC应用适合功能简单,迭代速度要求较快的应用场景,而微服务架构适合大型的分布式应用场景。
四.极速上线 Web 应用
第一个应用场景是利用 Serverless 平台在几分钟时间内快速搭建WEB 应用,函数计算 FC 产品的免维护性和在线编辑功能对前端开发平台常用的脚本框架如 Node JS, Python ,PHP 等是相当友好的,用户只需要在线编辑器,或本机编辑器内快速开发好脚本代码,然后一键部署即可启动WEB 应用。对于一些需要快速迭代的应用,如一些验证性功能APP的商品推荐、运营活动、小程序后台等,FC 的轻量级功能非常适合,只需要掌握前端技术的开发人员配合美术设计即可完成产品的开发,而运维工作则可以完全交给Serverless 平台。如图,对于比较简单的WEB应用,连数据库也不需要开通,只需要通过表格存储、对象存储等非Sql方式即可完成数据的存储功能。
五.事件源触发机制实现数据处理的计算存储分离
第二个场景是基于事件源搭建数据处理器。通过事件处理机制,FC 应用不但可用于对外提供服务,同样也可为内部组件添加丰富灵活的功能。例如,通过和 oss 对象存储的事件绑定,可以实现用户上传文件时对Zip包进行自动解压或者修改相对应的网页信息,也可以对 SLS日志或ots 表格存储中的数据保存事件进行绑定,实现数据的自动清洗,去掉其中冗余和不必要的部分,只保留最有价值的信息,同时可以对数据进行实时分析,实现复杂的报警逻辑。另外,FC 应用还可以和消息队列相结合,消费队列中的消息实现应用功能的灵活结合。例如某电商应用平台中,当用户物流信息发生变更时,需要发送短信、微信进行这一功能,此过程可以通过FC应用实现,将发送消息的逻辑写入FC应用中,通过监听消息队列中物流信息的变化,调用FC应用实现消息的发送。
六.无上限计算资源助力 AI 推理计算
第三个应用场景是利用无上限的计算资源助力 AI 的推理计算。AI推理计算的应用场景中,AI算法工程师训练好模型后,往往需要把模型变成服务,在通过几十甚至数百上千核的运算量验证服务的有效性。在这个过程中就需要调用大量的基本资源。如果自己建立计算资源,不但需要投入大量的采购经费,还需要对计算资源进行日常维护,这些工作都远超AI算法工程师的擅长领域。
而利用函数计算FC的弹性扩容功能,可调用阿里云几乎不上限的资源,迅速而廉价的验证AI模型。同时,函数计算FC的工具链支持第三方库的安装,通过工具链可以实现AI模型应用的一键部署到云端,真正实现一行命令一触即发。
七.毫秒级弹性扩容轻松应对突发流量
FC应用的第四个场景是轻松构建高并发、高可用的计算密集型系统,如视频处理系统。函数计算FC不单支持 Node JS,PHP ,Python 等脚本语言,也支持Java, Go ,C等高效、静态语言,可用于如音视频处理、密码计算、文件压缩等对计算效率有较高要求的场景。同时,在互联网场景下,往往存在流量不可预测的情况,例如,视频分享网站经常会遇到因为某些线下突发事件导致用户集中上传视频或集中观看视频的情况,而这种情况会对计算密集性应用造成巨大的性能压力,一旦计算量存储不足或调度不及时,很容易造成服务在高流量下不可用。而函数计算FC不但具有海量的计算资源,同时也支持毫秒级的弹性扩容,通过快速弹性扩容,可以轻松应对不可预测流量的情况。
以上四种典型场景分别对应了函数计算FC的四大主要能力,即零配置快速开发、丰富的事件源触发、无上限计算资源、毫秒级弹性扩容。
八.Serverless 理念已经深入阿里云产品体系中
Serverless理念在阿里云产品体系中的发展现状,经过大约四到五年的发展,Serverless理念,已经深入到阿里云整个的产品体系中,从单一的FC应用开始,逐步扩展到了包括微服务框架SAE,容器服务ASK,数据存储服务Lindorm,Date Worker,工作流及GPU计算等多个应用场景。
在未来任何复杂的技术,阿里云都在尝试对它进行化Serverless化改造,提供按量付费的新商业模式。
同时基于Serverless技术的平台透明化,阿里云底层的技术也在随之进行着更加有效率的演化和提升。