ITBEAR科技资讯
网站首页 科技资讯 财经资讯 分享好友

智汇华云 | 初识 Serverless

时间:2022-11-02 17:00:46来源:互联网编辑:茹茹

背景

从部署物理机到虚拟机过程中,云计算通过虚拟化的方式对算力资源进行了更高效的分配。为了更细粒度的分配,容器在云计算发展浪潮中诞生了。那有没有可能再进一步,将一次业务执行作为单元进行算力分配呢?每当执行的时候才分配一次资源,否则不消耗。

答案就是 Serverless

什么是 Serverless

Serverless (无服务器架构)并不是严格意义上的无服务器,因为无论如何抽象或者封装底层设备,程序总是要有一个服务器作为物理载体才能运行。Serverless 的概念更加强调计算资源的自由扩展,无需手动人工配置。

Serverless 是由事件驱动的全托管计算服务。用户无需管理服务器等基础设施,只需要编写代码和选择触发器(比如 RPC 请求,定时器等)并上传。其余的工作(如实例选择,扩缩容、监控、日志、容灾、部署等)全部由 Serverless 系统托管。

Serverless 通常包含了两个领域 BaaS和 FaaS,其中 BaaS 可以理解成特定类型的托管服务,例如数据库服务、对象存储服务、日志服务等等,而 FaaS 即为云函数计算服务,提供核心的逻辑处理。

Serverless 实践

基于 Kubernetes 的 Serverless framework 有很多,例如 Knative、OpenFaaS、OpenWhisk 等等,这里以 OpenFaaS 为例。

OpenFaaS 部署

OpenFaaS 可以通过 arkade、helm3 以及 manifests yaml 等方式部署,部署后共有以下组件:

为了方便后续函数管理,这里也一并部署了 faas-cli,并配置了 Gateway Service 暴露的入口地址:

OpenFaaS 工作流程

OpenFaaS Gateway

Gateway作为请求网关,当要部署或者调用一个函数的时候,Gateway会将请求转发给Provider(faas-netes),同时会将监控指标发给Prometheus。alertManager会根据需求,调用API自动伸缩函数。

Prometheus & alertManager

收集 Gateway 的 auto-scaling 指标,结合实际情况,自动伸缩函数的规模。

NATS Streaming

NATS Streaming 是由 NATS 驱动的数据流系统,在保证吞吐量和时延的基础上,解决了Nats消息投递一致性的问题。在 OpenFaaS 中作为处理函数调用的低延迟队列。

faas-netes

faas-netes 是faas-provider 的官方实现。

faas-provider 中定义了一些基本的 faas handler规范,如下所示:

OpenFaaS 使用

OpenFaaS 创建函数可以通过 REST API,faas-cli 或者 GateWay UI 三种方式创建,这里以 faas-cli 为例:

下载模版

首先下载官方提供的语言模版,模版支持 go,java11,python2(3),php7(8),ruby 等诸多语言

生成应用

通过 faas-cli new 创建一个 go 应用,修改 handler 函数,简单模拟一个计算服务(计算入参的和):

#FormatImgID_10#

构建镜像

#FormatImgID_11#

部署应用

#FormatImgID_12#

服务访问

#FormatImgID_13#

也可以通过界面访问或者部署服务

#FormatImgID_14#

自动扩缩容

#FormatImgID_15#

可以通过 label 的配置,将服务默认为0副本,当请求到达时,会根据副本范围、缓冲期,扩缩模式等规格自动扩容,请求结束后,并自动缩容。

OpenFaaS 自动扩缩容源码分析

Prometheus将监控指标发给alertManager之后,alertManager会调用 /system/alert接口,这个接口的handler是由handlers.MakealertHandler方法生成。MakealertHandler方法接收的参数是ServiceQuery。ServiceQuery是一个接口,它有两个函数,用来获取或者设置最大的副本数。

MakealertHandler的函数主要是从http.Request中读取body,然后反序列化成Prometheusalert对象:该对象是一个数组类型,支持对多个函数进行缩放。反序列化之后,调用handlealerts方法,而handlealerts对alerts进行遍历,针对每个alerts调用了scaleService方法。scaleService才是真正处理伸缩服务的函数。

Serverless 使用场景

在了解 Serverless 的应用场景之前,首先总结一下它的技术特点:

快速迭代与部署

高并发、高弹性

稳定、可靠、安全

运维与成本控制

如果应用复杂有显著的波峰波谷、对快速迭代有强烈诉求,Serverless 就可以发挥显著的作用。

但是,由于Serverless 的无状态性,状态管理和共享仍然很困难,因此在使用场景下也具有局限性。

综合而言,Serverless 比较适合以下场景:

机器学习及 AI 模型处理

图片处理、文件处理以及流处理

IoT 后端及移动后端

Serverless 的价值

无服务器管理

无需预置或维护任何服务器。无需安装、维护或管理任何软件或运行时。

灵活扩展

应用程序可自动扩展,或通过切换占用资源(如吞吐量、内存)的单位数(而不是切换单个服务器的单位数)来调整容量,从而实现扩展。

按价值付费

为一致的吞吐量或执行持续时间(而不是服务器单元)付费。

自动化的高可用

无服务器应用程序提供内置可用性和容错功能。无需构建这些功能,因为运行此应用程序的服务在默认情况下会提供这些功能。

Serverless 现阶段的不足

状态管理

要想实现自由的缩放,应用的无状态是必须的,而对于有状态的服务而言,使用 Serverless 就丧失了灵活性,有状态服务需要与存储交互就不可避免的增加了延迟和复杂性。

延迟

应用程序中不同组件的访问延迟是一个大问题,传统架构中可以通过专有的网络协议、RPC 调用、实例拓扑等方面优化,而 Serverless 应用程序是高度分布式、低耦合的,这就意味着延迟将始终是一个问题,单纯使用 Serverless 的应用程序是不太现实的。

结语

Serverless 的出现能够解决备份容灾、计费方式、弹性伸缩、资源分配的等棘手问题,尽管现阶段 Serverless 架构存在很多不足,但是诸多的优良特性决定它是大势所趋。随着Serverless 生态圈多样化发展,它无疑是非常令人期待并且前景光明的方向。

更多热门内容
贝壳董事会主席拟捐赠股票投入居住领域并长期运营
4月17日,贝壳最新公告显示,贝壳董事会主席、首席执行官及控股股东彭永东拟捐赠9,000,000股A类贝壳普通股。在承担相应的纳税义务后,此次捐赠股票将50%税后资金用于居住行业服务者及其家庭成员的医疗健康福利、50%税后资金用于应届毕业生等租客群体的租房帮扶。据悉,

2025-04-17

心所想AI所向,2025凯度品牌日暨春季新品发布会盛大举行
面对厨电行业智能化、品质化升级趋势。4月16日,凯度成功举办了以“心所想·AI所向”为主题的2025凯度品牌日暨春季新品发布会。凯度CEO柯漫、董事长傅平及明星生活家王真儿依次登场,通过理念分享、技术解读、场景演绎,全面诠释“高端新厨电”;重磅推出首个AI数字生命体“

2025-04-17

FF为股民而战:五大举措启动“非法做空阻击战”,打赢梦想实现战
4月17日,Faraday Future(简称“FF”)今日宣布,为捍卫股东价值与信心,公司正式启动五大核心举措,标志着“梦想实现战之潜在非法做空反击战”的正式打响。在公司昨日提交Form D文件后,市场上迅速传播出一系列谣言——包括错误声称Form D表明高管正在出售股份;股价跌破

2025-04-17

Mureka火爆海外,今日正式开放国内登陆入口和API
2024年4月,昆仑万维发布了第一代音乐生成模型Mureka V1(SkyMusic)。2024年8月14日,昆仑万维推出AI音乐商用创作平台Mureka。2025年3月26日,正式发布Mureka O1模型与Mureka V6模型。自Mureka上线以来,在海内外获得了非常好的市场反响,成为全球AI音乐界现象级产品。

2025-04-16

问界M8正式发布:车载小艺一路聊,随时随地问问小艺
4月16日,家庭智慧旗舰SUV鸿蒙智行问界M8正式发布上市,据悉其搭载的鸿蒙座舱重塑家庭出行交互新范式,车载智慧助手小艺能力再升级,展现出卓越的语音交互能力,有问题随时随地都可以问问小艺。全新的小艺搜歌功能,仅需告诉小艺歌词与背景信息,即可“搜”听到想听的歌

2025-04-16

掘金AI千亿赛道 金山云获战略股东持续增持
2025年4月16日,金山云(NASDAQ:KC,HKEX:3896)宣布,将公开发行18,500,000股美国存托股(ADS),每ADS代表该公司15股普通股。同时,金山云还授予ADS承销商购买额外美国存托股的30天选择权。并且,为了方便港美股两地投资者认购,投资者可以选择在此次发行中以普通股代替AD

2025-04-16

昂瑞微客户到底是谁,招股说明书闪烁其词
2025年3月28日,北京昂瑞微电子技术股份有限公司(下称“昂瑞微”)科创板IPO申请获受理,成为今年首家未盈利企业申报案例。作为射频前端芯片领域的“国产替代先锋”之一,昂瑞微凭借20.67亿元募资计划、50.88%的营收复合增长率引发市场关注。然而,对于其招股书中客户信

2025-04-16

昂瑞微靠低端产品增收,5G增长乏力,上市之路能走多远?
3月28日,北京昂瑞微电子技术股份有限公司(以下简称“昂瑞微”)向上交所递交IPO申请。作为主营射频前端芯片、射频SoC芯片的集成电路设计企业,其招股书披露的财务数据看似亮眼:2022-2024年累计营收47.19亿元,复合增长率达50.88%。但穿透数据表象可见,公司增长动能过

2025-04-16

小刀电动车怎么样?以科技、美学重构时尚标杆,三登“Ray时尚”TOP榜
凭借卓越的综合实力与对市场需求的精准洞察,近日,小刀电动车产品再次登上“Ray时尚”电动自行车TOP榜,以及“Ray时尚”可持续时尚企业。这是小刀电动车连续三年(2023-2025年)斩获殊荣。这一成就不仅体现了其产品在设计、性能、品质上的持续突破,更印证了品牌“科技

2025-04-15

京东新品成长“百千亿”计划:2025年将打造600款销售亿级新品
4月15日,2025京东新品年度盛典在北京举行,正式推出京东新品成长“百千亿”计划,即在2025年加码百亿流量和百亿资金,并围绕营销能力与数字能力全面升级,实现60000款新品年销售破百万、6000款新品年销售破千万、600款新品年销售破亿。在此次盛典活动上,京东宣布“京

2025-04-15