写点什么

Serverless,引领云计算下一个阶段

  • 2022 年 1 月 20 日
  • 本文字数:2950 字

    阅读完需:约 10 分钟

摘要:Serverless 将是微服务的“封顶之作”,也是推动应用现代化的基石。

 

本文分享自华为云社区《【深入浅出,Paas之路】华为云.云享专家曹宗南: Serverless,引领云计算下一个阶段》,作者: 我们都是云专家 。

 

2009 年,伯克利以其独特的视角发布了一篇文献,正式定义了云计算。自此,千行百业的 IT 基础设施开启上云之路。

2019 年,伯克利在《Cloud Programming Simplified》预言:

“Serverless 计算将会成为云时代默认的计算范式,并取代 Serverful(传统云)计算模式。”

 

2009-2019 年,互联网技术飞速发展。在这期间,出于对计算机技术的兴趣,曹宗南大学期间选择了计算机专业,之后便开启了他的技术开发生涯。

 

只要对开发有所了解,都知道程序员和开源是密不可分的,曹宗南亦是如此。毕业之后的一次项目中遇到数据库开发相关的瓶颈,他在经过一番查询,发现开源项目分布式数据库中间件 Mycat 能够完美的解决遇到的问题。他表示,Mycat 在使用的过程中,后端可以挂接 N 个普通的 MySQL 数据库,数据可以按照多种规则进行分布,对外表现的却像一个 MySQL 实例一样来使用,业务代码不需要做大的改动。

 

 

自此,曹宗南便对 MySQL 产生了极大的兴趣,逐渐的也从使用者到开源的贡献者。陆续给 Mycat 贡献了多数据库后端支持、动态平滑扩容、分片算法、压缩协议等多个核心特性,还参与 Mycat 线下技术峰会的演讲。“对 Mycat 源码也熟悉的像自己的掌纹一样清楚。”曹宗南说道。

触摸新技术时代的网红 Serverless

在谈及现在的工作内容中,曹宗南提到了 Serverless 技术。正如开篇所提到伯克利在《Cloud Programming Simplified》中的预言,Serverless 将成为云计算的下一代默认计算范式。

 

曹宗南解释道,Serverless 架构是在微服务架构基础上的进一步延伸,按照业界通常的定义,Serverless = FaaS(Function as a Service) + BaaS(Backend as a Service)。相比微服务,FaaS 将资源调度的粒度缩小到函数,针对无状态、短时处理任务,通过函数式编程方式,进一步降低了应用开发门槛,缩短了应用上线周期。

 

为了更好的便于理解,曹宗南从三个典型场景,解读了 Serverless 架构所具有的 IT 资源可根据需求弹性伸缩的特点。

 

 

场景一:Web 类应用。典型的应用有小程序后端、Web 后端、三方服务商对接、前端 BFF 等。这类应用使用函数编程可以极大简化开发流程,能够做到小时级交付;

 

场景二:IoT、媒体处理类应用,如实时的图片处理、实时的数据流处理、IoT 的事件处理等。这是 Serverless 最典型的一类应用,特点是事件驱动+计算胶水层,计算胶水层的逻辑通过函数来实现,以事件驱动的方式执行服务,按需供给,开发者无需关注业务波峰波谷,节省闲时成本,最终降低运维的成本;

 

场景三:AI 处理应用,如视频直播、AI 推理、人脸识别、车辆识别等,这类应用的特征是基于各行各业的业务智能化,通常无法预知流量大小,需要基础设施能够做到底层资源无感,自动的快速弹缩而不影响业务层的处理。

 

随着在 Serverless 技术的研究和实践过程中发现,Serverless 作为云计算下半场的计算范式,需要解决通用应用开发、原有应用系统无缝对接、支持异构硬件等问题,并且有完备的工具链、云服务,才能让更多的开发者享受 Serverless 带来的红利。

华为云 FunctionGraph 开启 Serverless 新时代

在华为全联接 2021 上,华为公司高级副总裁、华为云 CEO、消费者云服务总裁张平安重磅发布了华为云 FunctionGraph 函数计算服务。

 

FunctionGraph 是一款带编排能力的函数计算服务,提供了界面化管理、一站式的函数开发上线功能,支持 6 大类语言、支持 10+类的函数触发器类型;拥有丰富的触发器类型,通过事件触发集成多种云服务,满足不同场景需求;根据请求的并发数量自动调度资源运行函数,实现按需极速弹性;函数运行实例出现异常,系统会启动新的实例处理后续的请求,实现秒级故障自愈。

 

曹宗南作为华为云 FunctionGraph 首席架构师,全程参与了 FunctionGraph 2.0 全新架构的设计和研发。针对 FunctionGraph 2.0 全新架构,他从 5 个特性做了诠释。

 

• 特性 1:丰富的函数开发语言及触发方式让设计更灵活

 

 

支持 Python、Java、Node.js、Go 等常见的编程语言,也支持容器镜像和自定义运行时。函数调用支持同步和异步两种方式,最长支持 12 小时,可满足长时间任务的需求,大大突破传统 Serverless 的适用场景。

 

• 特性 2:可视化拖拽式函数流支持编排复杂业务场景

 

 

支持通过图形化拖拽方式进行函数编排,支持并行分支、条件分支、子流程、循环、异常处理等,可以满足多函数场景下的快速编排需求。

 

• 特性 3:统一插件支持云上和云下的开发与调试

 

 

如何对函数进行调试作为 Serverless 场景的一个难点,华为云针对云上和云下两个场景都提供了解决方案,而且作为业界首家支持多函数调试能力。

 

• 特性 4:Http 函数让 WEB 服务近乎 0 成本改造,享受 Serverless 优势能力

 

 

微服务和函数在未来几年会是一个共存的形态,当前存在着大量微服务应用,如何高效的支撑其 Serverless 化,让现有微服务快速享用到 Serverless 的优势能力,是一个待解决的问题。

 

针对 Web 服务,华为云推出 API 网关加 FunctionGraph 的 Http 函数方案,用户只需把原有的 Web Server 代码打包为一个 Http 函数,即可完成 Serverless 化改造。该方案价值体现在多语言 WEB 框架支持方面,例如:Java - Spring Boot,Nodejs - Express 等框架,这样对于开发的应用通过极小修改就是能完成 Serverless 函数化改造。开发人员可以继续使用熟悉的开发框架和测试工具,降低开发人员学习负担。而且,改造后也无需额外的运维,简单配置即可实现 100ms 级自动弹性和灰度升级。

 

• 特性 5:函数支持在运行时动态指定资源,灵活调度节省成本

 

 

图片压缩、水印处理、文档转换、视频转码是典型的事件触发,波峰波谷明显的场景,越来越多地使用 Serverless 函数来开发业务。以视频转码为例,典型的处理流程如下:

 

 

视频文件的大小从 MB 到 GB,不同编码格式和分辨率对转码需要的计算资源要求差别很大,为保证转码函数的性能,通常配置一个很大的资源规格,但是在低分辨率的(例如短视频)场景下,会造成资源浪费。Functiongraph 提供了一种方案支持函数执行时可根据业务需要动态指定资源规格,最小化资源占用,可以给用户带来更精细的资源控制,更低的成本开销。

 

目前,在华为云 Serverless 场景落地方面,已全面实现了在移动端的应用实践。曹宗南举例道,2020 年新型肺炎疫情牵动着全球人民的心,基于 Serverless 服务,华为负一屏快速上线“新型肺炎疫情实时播报”,实现了一天上线,资源利用率提升 50%。

 

在视频处理应用场景中,华为视频前端基于函数开发,实现前端开发和后端开发解耦,前端界面逻辑变化不需要后端参与,开发上线效率提升 100%以上,大幅减少前后端团队沟通协同,效率提升 50%以上。

 

在海外的合作伙伴应用中,阿联酋海关基于 Functiongraph 的弹性收缩轻松应对业务波峰波谷,TCO 成本较传统方案降低 30%以上,较传统开发模式上线周期减少 50%(6 个月->3 个月)

最后

事实上,目前的 Serverless 发展已经远远超出了预期。对于云计算应用架构来说,“无服务器”时代的 Serverless 技术必将引领云计算下一个阶段。正如华为 2012 实验室分布式与并行软件 Lab 主任谭焜博士所说,Serverless 将是微服务的“封顶之作”,也是推动应用现代化的基石。

 

点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 2
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
Serverless,引领云计算下一个阶段