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

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-应用监控,每月50GB免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 微服务和 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技术的平台透明化,阿里云底层的技术也在随之进行着更加有效率的演化和提升。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
5天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
3天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
3天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
14 1
服务架构的演进:从单体到微服务的探索之旅
|
2天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
19 5
|
4天前
|
Kubernetes 负载均衡 Cloud Native
云原生架构下的微服务治理策略
随着云原生技术的不断成熟,微服务架构已成为现代应用开发的主流选择。本文探讨了在云原生环境下实施微服务治理的策略和方法,重点分析了服务发现、负载均衡、故障恢复和配置管理等关键技术点,以及如何利用Kubernetes等容器编排工具来优化微服务的部署和管理。文章旨在为开发者提供一套实用的微服务治理框架,帮助其在复杂的云环境中构建高效、可靠的分布式系统。
17 5
|
4天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####
|
5天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
14天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
5天前
|
监控 API 微服务
后端技术演进:从单体架构到微服务的转变
随着互联网应用的快速增长和用户需求的不断演化,传统单体架构已难以满足现代软件开发的需求。本文深入探讨了后端技术在面对复杂系统挑战时的演进路径,重点分析了从单体架构向微服务架构转变的过程、原因及优势。通过对比分析,揭示了微服务架构如何提高系统的可扩展性、灵活性和维护效率,同时指出了实施微服务时面临的挑战和最佳实践。
22 7
|
5天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用

相关产品

  • 函数计算