转载:FaaS如何在云2.0时代发挥优势,又将走向何方?

简介: 过去十年,云服务深刻地改变了社会获取和使用计算能力的方式,云服务自身也以极快的速度演进。在基础设施云化之后,容器、Serverless等技术迅猛发展,开始推动业务能力的云化,云计算进入2.0时代。

自2006年AWS发布的第一个云服务S3开始,存储、计算等IT基础设施的能力纷纷被以服务的方式提供给用户。过去十年,云服务深刻地改变了社会获取和使用计算能力的方式,云服务自身也以极快的速度演进。在基础设施云化之后,容器、Serverless等技术迅猛发展,开始推动业务能力的云化,云计算进入2.0时代。

12月19日的阿里云栖大会上,阿里云函数计算负责人杨皓然做了主题为“触摸云端编程之道——利用函数计算快速构建弹性可扩展的云原生应用”的演讲,他介绍了Serverless与函数即服务(Function as a Service, FaaS)的关系和价值,演讲结束后我们就该话题进一步采访了他。

云是弹性的、经济的、高效的

什么是云?杨皓然认为“对用户而言,云的核心是解决资源弹性、财务成本和开发效率的问题”。IaaS,PaaS,FaaS等不同形态的云服务本质上都是为了解决资源的弹性、成本和效率问题,不同的地方在于解决的问题域、角度方式。最开始,云1.0时代,基础设施的云化为用户提供了和传统IT环境近乎一致的体验,让用户能把应用无缝迁移到云端。IaaS层服务通过虚拟化等技术大幅提高了资源利用率,而用户也只需租赁计算资源,不必承担物理硬件的折旧等成本,相比于用户维护自有IT基础设施的方式,IaaS在资源弹性和成本等方面有明显的优势。当人人都能获取所需的计算资源后,如何更高效地管理和使用计算资源则是下一个亟待解决的问题,毕竟,系统配置、故障处理、削峰填谷如何充分利用资源对用户都是不小的负担。

在杨皓然看来,不同层次的云服务是在从不同的角度去解决这些问题,大致可分为“以资源为中心”和“以应用为中心”两类。“以资源为中心”,是指沿着IaaS类服务的思路,进一步优化资源的弹性、成本和效率,例如提供更细粒度规格、更快伸缩时间的计算资源。“以应用为中心”,则是指从应用的架构和开发的角度提供服务,帮助用户构建能充分利用云端资源的、弹性高可用的应用,例如函数计算这样的FaaS服务,或者容器编排服务等。

FaaS把云的弹性、经济和高效优势发挥到了极致

当越来越多的开发者在云端构建应用时,如何正确设计应用架构、充分发挥云的优势变得越来越重要,“云端优先”的思想应运而生,这便促使“云原生(Cloud Native)”应用开发的出现。相比于Serverless,云原生应用是一个更宽泛的概念,在IaaS、PaaS与FaaS等不同的云平台上,都可以构建云原生应用,只不过它们的弹性和敏捷收益不同。”

如果想要充分地发挥云弹性、经济和高效的优势,一开始就去适配这些特点,做架构的设计,那么最终得到的就是云原生应用。”杨皓然说。

在云原生架构中,以函数计算等FaaS服务为中心的Serverless架构越来越流行。杨皓然认为:“FaaS把云的弹性、经济和高效优势发挥到了极致,真的做到了使开发者只需要关注业务,而不用去管理底层基础设施。”FaaS有如下主要优势,这使它被越来越多人关注:

  • 事件驱动,使得可以与其它服务无缝集成;
  • 由云端全托管,运维高效;
  • 实时弹性伸缩,细粒度的资源计量,按需付费。对于用户来讲,即使应用负载有明显的波峰波谷,资源使用率也是100%;
  • 简化的编程模型,用户专注于单个请求逻辑的开发;
  • 可以做严格的运行时隔离和权限管理机制,保障安全;
  • ……

如果要在传统的IT基础设施上实现弹性高可用的分布式系统,那么开发者需要去管理一些具体的底层细节,比如要考虑某个函数需要调度到哪台机器上运行?它是以线程方式还是以进程方式运行?进程崩溃怎么处理?网络不连通怎么办?……这些都需要开发者编码实现。

考虑一下边缘计算的场景,那么这个问题会显得更加明显和严重。在边缘场景中,用户会面对成百上千的小集群,这些设备分布在各种物理环境中,会遇到网络条件恶劣、硬件架构类型不相同、通信能力限制等问题,由开发者来进行管理几乎是不可能的。

“但是实际上,用户应该从底层系统开发维护这类无差别的工作上脱身专注于业务的创新,更快地将产品推向市场,更快地迭代改进。”杨皓然解释:“各种云服务就是把这些底层的东西抽象出来,让用户能快速地构建弹性的、低成本的、高可用的系统,而Serverless特别是FaaS在这上边目前做得最极致。”

连接是函数计算的核心价值

目前谈Serverless必FaaS,但实际上FaaS只是Serverless生态的一部分。杨皓然解释:“首先Serverless是一个生态,涵盖了计算、存储以及更上层的、垂直领域的很多服务。它不是一个新概念,AWS第一个云服务 S3 就是Serverless的存储服务。其次,Serverless已经无处不在了,云端每年发布的新功能、新服务,超过70%都是Serverless形态。FaaS只是整个Serverless生态的一部分,但是最近几年,因为FaaS才使得Serverless火起来,被更多人关注。”

因为FaaS把云中存储和计算的服务都粘合起来了,帮助用户快速构建云原生应用。而且FaaS以函数为单位来提供资源,这将云弹性和经济的优势发挥到了极致。他举了一个例子:“以往开发一个应用,可能存储用到了对象存储等Serverless服务,但这只是一部分,它只是解决了某一个特定问题。用户仍然要管理机器等基础设施,开发运维代价高,而通过FaaS,用户能快速地整合多种云端服务,开发效率有了质的提高。”

以开发一个短视频社交应用为例,移动设备上产生的视频文件上传到对象存储中,触发函数处理,通过函数计算连接其它服务后,用户只需专注于函数逻辑的开发,比如抽取元数据、人脸识别等等;并且,在这整个架构中,每个环节都是弹性高可用的。

通过事件驱动的连接,函数计算让对象存储、消息中间件服务、CDN等单纯的数据存储、流动、分发服务具备了“可编程”的特性,极大地增加了用户使用这些服务的灵活性。所以广泛地连接各类存储、计算或者垂直领域的服务是函数计算的核心价值。相反,杨皓然认为,目前有一些开源的FaaS框架,重点解决了弹性伸缩的问题,但还没有广泛的和其它服务连接,没有充分发挥FaaS的威力。未来,我们应该能看到开源产品在这一块的长足进步。

以应用为中心,而不是以资源为中心

对于函数计算的实现方式,杨皓然认为“立足点应该是以应用为中心,而不是以资源为中心”。他举例说明了这个观点:“以弹性伸缩为例,‘以资源为中心’的思路,是让用户设定一些规则,比如某个机器CPU使用率超过85%就要扩容,这是云1.0时代的方法。而函数计算的模式,它是根据应用层的信息去理解用户的负载,可以采用各种维度的数据,比如TPS、请求延迟,机器的负载等等,用机器学习等方式去分析数据,做出更智能的资源调度,这属于‘以应用为中心’。”

同时,“以应用为中心”也要求函数计算要同时具备工具和平台两种属性,既能让用户解决小范围的、离散的问题,也能快速构建复杂应用。“如何平衡工具和平台两种属性,是FaaS获得广泛应用的关键。”杨皓然说。

面临的挑战

虽然比较有影响力的Serverless(FaaS)产品已经发布了几年,但是现在Serverless或者FaaS技术还处在初期阶段,产品形态和边界还有很多值得探索的地方。杨皓然认为,目前Serverless在技术上有几个点需要去关注:

  • 以应用为中心,更智能地去理解用户的应用场景;
  • 用户体验方面,在整个生态上有很多东西需要完善,如函数协同、状态管理和工具链等等;
  • 与IoT和边缘网关的无缝结合。

而另一方面,在面向使用者的时候,Serverless也遇到了很大的挑战。“用户的开发调试体验和传统方式差异较大,需要一定时间的适应。函数计算简化了用户编码的复杂度,却对架构能力提出了更高的要求。”杨皓然解释到,“FaaS为了资源的弹性,在运行环境上有诸多限制,使得以单体架构来构建的复杂系统,要迁移到Serverless的架构上比较困难。”

那么在向Serverless架构迁移时可以怎么做呢?杨皓然认为使用函数计算构建应用和微服务架构的理念是契合的,用户采用微服务架构,把业务逻辑拆解为细粒度的微服务后,一个个微服务可以实现为对应的函数。 所以说,函数计算是微服务理念的一种重要的实践方式,二者是相互促进的。因此更现实的方式是使用函数计算先解决独立的、离散的问题,或者采用微服务的方式把系统拆分为细粒度的服务,然后逐步演进到Serverless架构

从云走向边缘

目前有一个观点是“云计算的未来将是走向边缘”,也就是说以类似于CDN的方式,将计算放到更加靠近用户的区域。杨皓然说他认同这个观点,他解释到:“未来数据的产生将无处不在,并且这些数据需要被处理、被理解,才能产生价值。”从这个角度来看,数据是需要被提炼的,在无处不在的数据中,其实有大量的噪音;而用户端到云之间有一个通道问题,如果不在贴近数据源端去做一些计算,那么整个带宽、延迟之类的成本会很不友好。

以IoT为例,杨皓然认为在IoT场景上边缘计算会特别重要。IoT大量的设备,它的数据量远远超过人产生的数据。这种场景下,如何帮助用户解决数据的收集和分析问题将非常重要,也非常有挑战。IoT/边缘环境是非常独特的,硬件架构迥异(ARM、X86、MIPS……)、通信协议众多、设备动态加入/删除、网络并不总是可用等等,面对这样的环境,需要以全新的方式构建应用。杨皓然总结了理想的边缘环境计算平台,需要具备的一些特点:

  •  IoT的数据处理一定会发生在边缘和云端,因此应用也一定包含边缘和云端两部分,二者需要以统一的方式构建,数据能在边缘和云端无缝同步;
  • IoT 的环境是动态的,设备/网络可以很自由的加入/删除。几乎所有的协议设计都是事件驱动的方式,例如发布/订阅模式;
  • IoT 在边缘上的应用,通常是轻量的,因此设备/资源/安全管理层的研发成本不能被应用逻辑的开发成本分摊掉。需要有更高的计算抽象层次,让开发专注于业务逻辑

函数计算这样的全托管事件驱动服务比较符合上述要求,目前我们也看到业界在这上面的一些探索,相信未来FaaS在边缘环境也会发挥重要的作用。

FaaS已经在云2.0时代发挥了它的优势,至于它之后将走向何方,又将创造怎样的辉煌,我们拭目以待。

本文首发于InfoQ网站,原文地址http://www.infoq.com/cn/articles/faas-cloud-2.0



相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
数据采集 JavaScript 前端开发
从网页中提取结构化数据:Puppeteer和Cheerio的高级技巧
在本文中,我们将介绍两个常用的网页数据抓取工具:Puppeteer和Cheerio。Puppeteer是一个基于Node.js的无头浏览器库,它可以模拟浏览器的行为,如打开网页、点击元素、填写表单等。Cheerio是一个基于jQuery的HTML解析库,它可以方便地从HTML文档中提取数据,如选择器、属性、文本等。我们将结合这两个工具,展示如何从网页中提取结构化数据,并给出一些高级技巧,如使用代理IP、处理动态内容、优化性能等。
872 1
从网页中提取结构化数据:Puppeteer和Cheerio的高级技巧
|
机器学习/深度学习 人工智能 算法
机械视觉:原理、应用及Python代码示例
机械视觉:原理、应用及Python代码示例
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
1389 33
The Past, Present and Future of Apache Flink
|
10月前
|
人工智能 边缘计算 自然语言处理
2025年11月,中国数字人平台介绍与数字化转型技术指南
数字人正从概念走向规模化应用,本文深度解析技术派系与场景落地。剖析全栈技术、行业方案与沉浸体验三大路径,揭示交互升级、端侧部署与合规发展新趋势,为政企数字化转型提供选型参考。
|
9月前
|
人工智能 运维 自然语言处理
有哪些电信行业 Agent 案例?全场景标杆实践与数据解析
凌晨两点流量超支?5G基站突发故障?背后均有电信智能Agent在高效响应。从客服、运维到营销、政企服务,AI智能体正重构电信全业务链,实现降本30%、提效10倍、投诉下降72%。本文全景解析六大核心场景落地案例与技术路径,揭秘如何用实在Agent等产品推动电信智能化跃迁。
1291 3
|
开发框架 定位技术 API
AgentScope 与 MCP:实践、思考与展望
AgentScope 作为一款功能强大的开源多智能体开发框架,为开发者提供了智能体构建、工具使用、多智能体编排等全方位支持。
1711 37
|
数据挖掘 物联网 数据处理
深入探讨Apache Flink:实时数据流处理的强大框架
在数据驱动时代,企业需高效处理实时数据流。Apache Flink作为开源流处理框架,以其高性能和灵活性成为首选平台。本文详细介绍Flink的核心特性和应用场景,包括实时流处理、强大的状态管理、灵活的窗口机制及批处理兼容性。无论在实时数据分析、金融服务、物联网还是广告技术领域,Flink均展现出巨大潜力,是企业实时数据处理的理想选择。随着大数据需求增长,Flink将继续在数据处理领域发挥重要作用。
1608 0
|
前端开发
MVVM模式下 DataTemplate 中控件的绑定
原文:MVVM模式下 DataTemplate 中控件的绑定   今天给ListBox中通过DataTemplate生成的Button绑定命令时,一开始Button始终找不到绑定的命令。现找到了正确的绑定方式,特来记录一下。
2166 0
|
小程序 开发工具 开发者
小程序:游客模式--开发模式
小程序:游客模式--开发模式
1051 0
|
分布式计算 大数据 Java
大数据行业部署实战2:环境大数据统计
大数据行业部署实战2:环境大数据统计
416 0

热门文章

最新文章