摘要: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将是微服务的“封顶之作”,也是推动应用现代化的基石。

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

Serverless,引领云计算下一个阶段的更多相关文章

  1. 告别C#,进入了下一个阶段的学习啦

    嘿嘿,今天我们结束了C#的基础的学习,开始啦第二个阶段的学习,就是对SQL Server的学习.今天又是一个周一,又是一个新的开始,感觉我们都是一周一周的计算,而不是每天到这个点就是告别了今天的生活啦 ...

  2. 为什么下一个十年的主战场在 Serverless?

    作者 | 不瞋 阿里云 Serverless 负责人 "唯有超越,才能让我们走下去." 这是不瞋在阿里的第十年.从 2010 年加入阿里云,不瞋参与了阿里云飞天分布式系统的研发,历 ...

  3. ZOHO的下一个25年:用心为企业服务

    来源:中国软件网 作者:海策 在25周年会上,ZOHO大中华区总裁侯康宁先生豪情壮志,"25岁的ZOHO,已经成长为非典型一线大厂." 1996年,ZOHO成立.截止2021年,Z ...

  4. 下一个时代的发展架构竟然是它!FaaaaaaaaS到底是个啥?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云serverless团队发表于云+社区专栏 导读:2018年7月6 - 7日,一年一度的技术圈盛会ArchSummit全球架构师 ...

  5. 云计算下PAAS的解析一

    云计算下PAAS的解析一       PaaS是Platform-as-a-Service的缩写,意思是平台即服务. 把服务器平台作为一种服务提供的商业模式.通过网络进行程序提供的服务称之为SaaS( ...

  6. VR就是下一个浪潮_2016 (GMGC) 全球移动游戏大会观后感

    "VR就是下一个浪潮"  --2016 (GMGC) 全球移动游戏大会观后感   早在2014年参会Unity举办的一年一度的金立方盛典大会,就初次体验了VR头盔设备,于是印象深刻 ...

  7. 引爆公式让你的APP游戏成为下一个“爆款”

    在2014年的移动互联网领域,“魔漫相机”是一款值得关注的产品.虽然没有腾讯.百度或阿里巴巴等大资源的支持,但是这款应用一上线就在中国市场发展迅猛,日下载量超过80万次,最高一日达300万次.类似的成 ...

  8. 分析RAC下一个SPFILE整合的三篇文章的文件更改

    大约RAC下一个spfile分析_整理在_2014.4.17 说明:文章来源于网络 第一篇:RAC下SPFILE文件改动 在RAC下spfile位置的改动与单节点环境不全然一致,有些地方须要特别注意, ...

  9. Token:共识的下一个100年,区块链技术是无可阻挡的文明进程

    Token:共识的下一个100年,区块链技术是无可阻挡的文明进程.很少有人意识到,区块链的应用——Token可能是近100年来最伟大的制度创新,超越股份制,并将是『债券』之后最重要最主流的交易品种,没 ...

  10. ReactiveCocoa 迎接下一个更加美好的世界

    什么是ReactiveCocoa 如果你有看Github的Trending Objective-C榜单,那你肯定是见过ReactiveCocoa了.如果你在weibo上关注唐巧.onevcat等国内一 ...

随机推荐

  1. C#winform软件实现一次编译,跨平台windows和linux兼容运行,兼容Visual Studio原生界面Form表单开发

    一.背景: 微软的.net core开发工具,目前来看,winform界面软件还没有打算要支持linux系统下运行的意思,要想让c#桌面软件在linux系统上运行,开发起来还比较麻烦.微软只让c#的控 ...

  2. acwing第75场周赛

    这次题比较水,但是还是没能ak,自己小结一下吧 第一道题就是自己枚举相加就行 第二道题是一个多关键字排序,wa了几次,是因为优先级有两个是相同的需要特判一下,然后可以把字符转化为数字的优先级,我用了一 ...

  3. JavsScript对密码进行Base64加密和Base64解密

    const password = "hello"; // 进行Base64加密 let pwd64 = window.btoa(password); console.log(pwd ...

  4. RTMP协议学习——Message与Chunk解读

    前言 之前通过对抓包数据的学习和分析,对RTMP协议有了一个整体的认知,大致了解了RTMP从建立连接到播放视频的流程,文章请看<RTMP协议学习--从握手到播放>.但是对于RTMP消息传输 ...

  5. vim的各种快捷键

    目录 一.准备一份用于练习的文件 二.命令模式下的快捷键 1.移动光标 2.删除文字 3.复制粘贴 4.撤销上一次操作 5.恢复上一次撤销的操作 6.查找 7.替换单个字符 8.光标移动到最左边 9. ...

  6. 最新版本——Hadoop3.3.6单机版完全部署指南

    大家好,我是独孤风,大数据流动的作者. 本文基于最新的 Hadoop 3.3.6 的版本编写,带大家通过单机版充分了解 Apache Hadoop 的使用.本文更强调实践,实践是大数据学习的重要环节, ...

  7. docker启动完美容器的过程

    这里是我用docker启动所有常见的容器完美的过程,就是一次创建,后面就可以一直使用 文档: nanshaws/docker-everything: 用docker来创建各种容器,完美文档教你按照步骤 ...

  8. [NOI2021] 庆典

    题目描述 C 国是一个繁荣昌盛的国家,它由 \(n\) 座城市和 \(m\) 条有向道路组成,城市从 \(1\) 到 \(n\) 编号.如果从 \(x\) 号城市出发,经过若干条道路后能到达 \(y\ ...

  9. [USACO2007OPEN S] Catch That Cow S

    题目描述 FJ丢失了他的一头牛,他决定追回他的牛.已知FJ和牛在一条直线上,初始位置分别为x和y,假定牛在原地不动.FJ的行走方式很特别:他每一次可以前进一步.后退一步或者直接走到2*x的位置.计算他 ...

  10. [ABC261B] Tournament Result

    Problem Statement $N$ players played a round-robin tournament. You are given an $N$-by-$N$ table $A$ ...