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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 微服务和 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技术的平台透明化,阿里云底层的技术也在随之进行着更加有效率的演化和提升。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
7天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
7天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。
|
2天前
|
消息中间件 负载均衡 持续交付
构建高效微服务架构:后端开发者的终极指南
【4月更文挑战第25天】在当今软件工程领域,微服务架构已经成为实现可扩展、灵活且容错的系统的首选模式。本文将探讨如何从零开始构建一个高效的微服务系统,涵盖关键组件的选择、通信机制、数据管理以及持续集成和部署策略。通过深入分析与案例研究,我们旨在为后端开发者提供一个全面的微服务实践指南,帮助他们在构建现代化应用时做出明智的架构决策。
|
3天前
|
消息中间件 持续交付 数据库
构建高效可靠的微服务架构:策略与实践
【4月更文挑战第25天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。本文深入探讨了如何构建一个高效且可靠的微服务架构,包括关键的设计原则、技术选型以及实践中的挑战和应对策略。通过分析多个成功案例,我们总结了一系列最佳实践,并提出了一套可量化的性能优化方法。文章不仅为开发者提供了具体的技术指导,同时也强调了团队协作和持续学习在微服务转型过程中的重要性。
|
2天前
|
监控 测试技术 持续交付
探索现代微服务架构的最佳实践
【4月更文挑战第25天】 随着软件开发领域不断演进,微服务架构已成为设计灵活、可扩展且高度可维护系统的首选方案。本文将深入探讨构建和部署微服务时的关键最佳实践,涵盖从服务划分原则到持续集成/持续部署(CI/CD)的流程,再到监控与日志记录的策略。我们的目标是为开发者提供一套实用的指南,帮助他们在构建未来的应用程序时做出明智的架构选择,并确保这些系统能够快速响应市场和技术的变化。
|
3天前
|
持续交付 API 开发者
构建高效微服务架构:后端开发的新范式
【4月更文挑战第24天】 随着现代软件系统的复杂性日益增加,传统的单体应用已难以满足快速迭代与灵活扩展的需求。微服务架构作为一种新兴的软件开发模式,以其服务的细粒度、独立部署和弹性伸缩等优势,正在逐渐成为后端开发的重要趋势。本文将深入探讨微服务架构的设计原则、关键技术以及在实际业务中的应用实践,旨在为后端开发者提供构建和维护高效微服务架构的参考指南。
|
5天前
|
监控 API 持续交付
构建高效微服务架构:后端开发的新趋势
【4月更文挑战第23天】 随着现代软件开发实践的不断演进,微服务架构已经成为企业追求敏捷、可扩展和弹性解决方案的首选。本文深入探讨了如何构建一个高效的微服务架构,涵盖了关键的设计原则、技术选型以及实践建议。通过分析微服务的独立性、分布式特性和容错机制,我们将揭示如何利用容器化、服务网格和API网关等技术手段,来优化后端系统的可维护性和性能。文章旨在为后端开发人员提供一套全面的指南,以应对不断变化的业务需求和技术挑战。
|
9天前
|
弹性计算 安全 Serverless
图像处理场景下的Serverless架构
【4月更文挑战第15天】图像处理场景下的Serverless架构
|
10天前
|
机器学习/深度学习 运维 Prometheus
探索微服务架构下的系统监控策略
【4月更文挑战第18天】在当今快速迭代和持续部署盛行的软件工程实践中,微服务架构因其灵活性和可扩展性受到企业青睐。然而,随着服务的细粒度拆分和网络通信的增加,传统的监控手段已不再适用。本文将探讨在微服务环境中实施有效系统监控的策略,包括日志聚合、性能指标收集、分布式追踪以及异常检测等关键技术实践,旨在为读者提供构建稳定、可靠且易于维护的微服务系统的参考指南。
16 0
|
10天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新趋势
【4月更文挑战第18天】在数字化转型的浪潮中,微服务架构已成为企业提升系统灵活性、加速产品迭代的关键。此文深入探讨了构建高效微服务架构的实践方法,包括服务划分原则、容器化部署、持续集成/持续部署(CI/CD)流程以及监控与日志管理等关键技术点。通过分析具体案例,揭示了微服务在提高开发效率、降低维护成本及促进团队协作方面的显著优势。

热门文章

最新文章

相关产品

  • 函数计算