微服务和 Serverless 架构-函数计算 FC 简介及应用场景

简介: 微服务和 Serverless 架构-函数计算 FC 简介及应用场景

开发者学习笔记【阿里云云原生助理工程师认证(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。

image.png

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的应用本质为单体应用,一旦程序规模太大,单体应用的各种问题都会体现出来。

image.png

综合来看,FC应用适合功能简单,迭代速度要求较快的应用场景,而微服务架构适合大型的分布式应用场景。

 

四.极速上线 Web 应用

第一个应用场景是利用 Serverless 平台在几分钟时间内快速搭建WEB 应用,函数计算 FC 产品的免维护性和在线编辑功能对前端开发平台常用的脚本框架如 Node JS, Python ,PHP 等是相当友好的,用户只需要在线编辑器,或本机编辑器内快速开发好脚本代码,然后一键部署即可启动WEB 应用。对于一些需要快速迭代的应用,如一些验证性功能APP的商品推荐、运营活动、小程序后台等,FC 的轻量级功能非常适合,只需要掌握前端技术的开发人员配合美术设计即可完成产品的开发,而运维工作则可以完全交给Serverless 平台。如图,对于比较简单的WEB应用,连数据库也不需要开通,只需要通过表格存储、对象存储等非Sql方式即可完成数据的存储功能。

image.png

 

五.事件源触发机制实现数据处理的计算存储分离

第二个场景是基于事件源搭建数据处理器。通过事件处理机制,FC 应用不但可用于对外提供服务,同样也可为内部组件添加丰富灵活的功能。例如,通过和 oss 对象存储的事件绑定,可以实现用户上传文件时对Zip包进行自动解压或者修改相对应的网页信息,也可以对 SLS日志或ots 表格存储中的数据保存事件进行绑定,实现数据的自动清洗,去掉其中冗余和不必要的部分,只保留最有价值的信息,同时可以对数据进行实时分析,实现复杂的报警逻辑。另外,FC 应用还可以和消息队列相结合,消费队列中的消息实现应用功能的灵活结合。例如某电商应用平台中,当用户物流信息发生变更时,需要发送短信、微信进行这一功能,此过程可以通过FC应用实现,将发送消息的逻辑写入FC应用中,通过监听消息队列中物流信息的变化,调用FC应用实现消息的发送。

image.png

 

六.无上限计算资源助力 AI 推理计算

第三个应用场景是利用无上限的计算资源助力 AI 的推理计算。AI推理计算的应用场景中,AI算法工程师训练好模型后,往往需要把模型变成服务,在通过几十甚至数百上千核的运算量验证服务的有效性。在这个过程中就需要调用大量的基本资源。如果自己建立计算资源,不但需要投入大量的采购经费,还需要对计算资源进行日常维护,这些工作都远超AI算法工程师的擅长领域。

而利用函数计算FC的弹性扩容功能,可调用阿里云几乎不上限的资源,迅速而廉价的验证AI模型。同时,函数计算FC的工具链支持第三方库的安装,通过工具链可以实现AI模型应用的一键部署到云端,真正实现一行命令一触即发。

image.png

 

七.毫秒级弹性扩容轻松应对突发流量

FC应用的第四个场景是轻松构建高并发、高可用的计算密集型系统,如视频处理系统。函数计算FC不单支持 Node JS,PHP ,Python 等脚本语言,也支持Java, Go ,C等高效、静态语言,可用于如音视频处理、密码计算、文件压缩等对计算效率有较高要求的场景。同时,在互联网场景下,往往存在流量不可预测的情况,例如,视频分享网站经常会遇到因为某些线下突发事件导致用户集中上传视频或集中观看视频的情况,而这种情况会对计算密集性应用造成巨大的性能压力,一旦计算量存储不足或调度不及时,很容易造成服务在高流量下不可用。而函数计算FC不但具有海量的计算资源,同时也支持毫秒级的弹性扩容,通过快速弹性扩容,可以轻松应对不可预测流量的情况。

image.png

以上四种典型场景分别对应了函数计算FC的四大主要能力,即零配置快速开发、丰富的事件源触发、无上限计算资源、毫秒级弹性扩容。

 

八.Serverless 理念已经深入阿里云产品体系中

Serverless理念在阿里云产品体系中的发展现状,经过大约四到五年的发展,Serverless理念,已经深入到阿里云整个的产品体系中,从单一的FC应用开始,逐步扩展到了包括微服务框架SAE,容器服务ASK,数据存储服务Lindorm,Date Worker,工作流及GPU计算等多个应用场景。
image.png

在未来任何复杂的技术,阿里云都在尝试对它进行化Serverless化改造,提供按量付费的新商业模式。
同时基于Serverless技术的平台透明化,阿里云底层的技术也在随之进行着更加有效率的演化和提升。

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
7月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
数据采集 运维 Serverless
云函数采集架构:Serverless模式下的动态IP与冷启动优化
本文探讨了在Serverless架构中使用云函数进行网页数据采集的挑战与解决方案。针对动态IP、冷启动及目标网站反爬策略等问题,提出了动态代理IP、请求头优化、云函数预热及容错设计等方法。通过网易云音乐歌曲信息采集案例,展示了如何结合Python代码实现高效的数据抓取,包括搜索、歌词与评论的获取。此方案不仅解决了传统采集方式在Serverless环境下的局限,还提升了系统的稳定性和性能。
381 0
|
前端开发 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档—— Swagger 简介
第6课介绍了在Spring Boot中集成Swagger2以展示在线接口文档的方法。随着前后端分离架构的发展,API文档成为连接前端与后端开发的重要纽带。然而,代码更新频繁导致文档难以同步维护,Swagger2解决了这一问题。通过Swagger,在线API文档不仅方便了接口调用方查看和测试,还支持开发者实时测试接口数据。本文使用Swagger 2.2.2版本,讲解如何在Spring Boot项目中导入并配置Swagger2工具,从而高效管理接口文档。
437 0
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
1187 69
|
10月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
1224 0
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
671 12
|
存储 NoSQL 关系型数据库
微服务——MongoDB简介和体系结构
MongoDB是一种开源、高性能的文档型数据库,采用无模式设计,数据结构灵活,以类似JSON的BSON格式存储。它将记录作为文档,由字段和值对组成,支持复杂数据类型及嵌套结构。相比MySQL,MongoDB去除了传统表结构,使用集合(Collection)存储文档,适合处理非结构化和半结构化数据,简化开发并提升扩展性。其架构更灵活,适用于高并发和大数据场景。
632 0
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
466 3

相关产品

  • 函数计算