火出边际的Serverless,你居然还不了解?
摘要:图灵奖获得者David A. Patterson和Spark共同创始人Ion Stoica,在19年伯克利的会议上发布Serverless将是下一代默认的计算范式。
本文分享自华为云社区《听说最近Serverless很火?一文读懂什么是下一代云计算范式》,作者:敏捷的小智 。
云计算发展至今涌现出一系列改变传统IT架构和运维技术的服务,从IaaS、PaaS服务被人们熟知,到容器、微服务技术家喻户晓,技术的每一次变革都是围绕如何提升资源利用率降低成本,帮助开发者从繁重地机房建设和运维等基础设施管理工作中解放出来,简化编程方式,让企业和开发人员释放更多时间精力聚焦业务创新。
近来, Serverless进入人们视线,成为学术界以及工业界研究的热点。图灵奖获得者David A. Patterson和Spark共同创始人Ion Stoica,在19年伯克利的会议上发布Serverless将是下一代默认的计算范式。国内外大型云服务商纷纷布局Serverless领域。那么,究竟什么是Serverless?它的出现能否颠覆目前已有的开发方式呢?
Serverless的诞生
近十年,软件开发领域大热的话题莫过于敏捷和DevOps,我们从敏捷和DevOps角度,结合敏捷和DevOps的诞生路线来了解一下Serverless。
敏捷的诞生
2001年的敏捷软件开发宣言标志着敏捷开发的诞生,以Scrum、XP、Kanban为代表的一众敏捷开发模式被大家所熟识和接受,并应用在软件开发中取代了瀑布模式。敏捷的小步快跑、快速交付、及早反馈解决了业务和开发之间的矛盾,通过关注价值的优先级排序方法,保证开发团队一直走在正确的路上。
DevOps的诞生
快速交付是一个端到端的过程,只有开发的敏捷是无法实现运维端也同样敏捷的,DevOps在2009年应运而生,目的是解决Dev(开发)和Ops(运维)之间的矛盾,打通从客户提出需求到交付产品给客户一个全流程的价值链。
当今主流的微服务架构,它的最佳实践是建立一个 2 Pizza团队,应用按照微服务粒度进行拆分,打通应用DevOps全流程,接口标准化,环境标准化,开发单元可以按天或周进行升级发布,基础设施具备高可用能力和可扩展性,帮助应用实现较大程度上的快速迭代。然而微服务架构并非是应用开发的银弹,技术的发展是无止境的,计算架构正在不可阻挡地走向无服务器时代。
Serverless的诞生
团队是否可以只聚焦在Dev即业务和代码交付层面,而不去关心Ops的部分,减少部署、提高扩展性并减少维护基础设施的负担?由此对软件架构和工具平台的需求从微服务和PaaS转变为软件架构上更小粒度的解耦和平台更多的服务功能。基于此,Amazon在2014年发布的AWS Lambda,标志着Serverless商业化时代的开启,Serverless也从概念、愿景逐步走向落地。
什么是Serverless
Serverless直译过来就是无服务器。根据 CNCF 的定义,Serverless 旨在构建和运行不需要服务器管理的应用程序。那么,Serverless真的没有服务器吗,程序不需要服务器托管和运行吗?其实不然,无服务器架构只是服务器调配、维护、更新、扩展和容量规划等繁琐工作逐步下放到无服务器服务提供者(如华为云函数工作流FunctionGraph),解放开发者的生产力,让开发者专注于编写应用程序的业务逻辑,运维工程师能够将精力放在业务运维上。
目前业界普遍认为Serverless = FaaS + BaaS,FaaS(Function as a Service,函数即服务),开发者实现的服务器端应用逻辑以事件驱动的方式运行在无状态的临时容器中,这些容器和计算资源完全由云提供商管理。BaaS(Backend as a Service,后端即服务), 由第三方提供的包含某一块功能的微服务,开发者以 API 形式接入。比如云数据库、对象存储、消息队列等。
Serverless的基本运行单元为函数,是一种云计算执行、部署和计费模型,具有以下特点:1)快速上线,Serverless 让开发者聚焦业务逻辑,业务上线不再关注运行态的环境搭建,上线周期从周级缩短到天级。2)弹性伸缩,Serverless 让开发者无需提前预估业务流量,系统会根据业务流量按需扩容、缩容,响应速度从秒级提升到毫秒级。3)免运维,Serverless 让开发人员无需感知底层资源,自然也无需关注资源的分配和运维,从而实现自适应,免运维。4)按需调用、付费,Serverless让应用按需使用资源,按量计费,提升资源使用率,帮助企业降低成本。
Serverless的应用
为了有更好的直观体验,我们结合具体产品来了解一下Serverless的特点和适用场景,以华为云函数工作流(FunctionGraph)为例。
华为云FunctionGraph是一款基于事件驱动的函数计算与编排服务,提供了界面化、一站式的函数开发、管理、上线等功能,支持6大类语言和自定义运行时,支持10+类的函数触发器类型,可观测性上提供了较为丰富的日志、监控等功能。
FunctionGraph具有自动分层弹性调度策略,通过代码最小依赖、分层打包、分层加载/缓存、预测启动、预测加载等技术,使能极速冷启动,启动速度达到百毫秒级;根据请求的并发数量自动调度资源运行函数,实现透明、准确和实时的伸缩,应付业务峰值的访问;通过函数间高速总线实现低函数间通信时延(2~3ms),做到统一高速总线,支撑函数间通信事件、参数、Future等重要数据的高效传输;提供函数全生命周期管理能力,打通DevOps流程,包括CloudIDE/CI CD等打通,提供一站式函数开发平台,支持云上开发、调试。
适用场景
现阶段,Serverless主要应用在以下场景1)异步的并发,组件可独立部署和扩展;2)应对突发流量或服务使用量不可预测;3)短暂、无状态的应用,对冷启动时间不敏感;4)需要快速开发迭代的业务。基于此,Serverless非常适合做Web类应用开发、事件驱动类应用、AI类应用开发等,这里我们分享三种具体使用场景。
Web类应用
在小程序后端、Web后端、问答机器人、前端BFF等开发场景中,Serverless整合调度后端服务,解放端侧开发,让开发者更快、更灵活开发各种应用,无需关注后端服务。

事件驱动类应用
在实时图片处理、实时数据流处理、IoT事件处理等场景里,用户上传文件到对象存储服务,触发函数,完成对文件的处理、识别、提取、筛选等功能。此方案的优势为事件触发,按需供给,开发者无需关注业务波峰波谷,节省闲时成本,降低运维成本。

AI类应用
随着各行各业智能化深入带来更多的应用开发场景,使用Serverless与各类人工智能服务结合,可以快速构建人脸识别、车牌识别、AI推理、视频直播等应用。
优势为快速搭建,按需使用函数与多个智能服务集成,形成丰富的应用处理场景。并随时根据业务改变对函数处理过程进行调整,实现业务灵活变更。且运维简单,用户只需开通相关云服务并在函数服务中编写业务逻辑,无需配置或管理服务器,专注于业务创新。

当然Serverless并非完美,也有自己的不足,如进程启动延时、不适合长时间运行应用、无法常驻内存、细粒度的单位带来业务拆分上的困难等。任何新技术的应用,都要和具体业务结合,取其精华解决具体问题,毕竟适合的才是最好的。
国内Serverless现状
根据云计算开源产业联盟的《中国DevOps现状调查报告》显示,2020年,企业使用的基础设施技术中Serverless占比为14.1%,2021年占比为16.78%,增长了2.68%。由此可见,Serverless 作为未来的云计算范式,目前在国内的使用尚未达到规模,这也为广大开发者提供了弯道超车的机会。毕竟Serverless凭借自身的优越特性,对于开发者来说,吸引力是巨大的。
华为一线大咖带你轻松入门Serverless
你是否已经迫不及待要体验Serverless的魅力了呢?华为云倾心打造《Serverless高手伪装者速成班》,四阶课程学练结合,场景化实践助你轻松入门Serverless,更有一线专家跟踪教学,丰富学习奖励等您拿哦!
立即扫码报名,探秘Serverless吧!

火出边际的Serverless,你居然还不了解?的更多相关文章
- 打破你的认知!Java空指针居然还能这样玩,90%人不知道…
相信在座的各位都遇到过空指针异常,不甚其烦,本文不是教你避免空指针,而是一些对空指针其他方面的理解. 本文可能有点另类,也可能会打破你对空指针的认知. 1.null.method() 空指针? 我们知 ...
- Linux 内核的代码仓库太不一样了,光克隆都让我挠头,克隆后居然还丢文件,你肯定也会遇到!!!
一个肯定能让你节省几个小时的小知识 大家好,我是 小猿来也,一个人称撸(划)码(水)小能手的程序猿. 最近一段时间,每次经过旁边大佬工位,总是发现他在快速的切屏,不知道在搞什么?难道他发现了快乐星球? ...
- python崩溃到现在居然还没有放弃的Day07
今天新入一个全新的知识面,叫做深浅拷贝,拷贝英文名copy,俗称复制,作为一个火影迷就会想到拷贝忍者旗木卡卡西,跑题了,在所有的数据存储时,都会有内存地址和存储地址,浅拷贝只拷贝第一层的内存地址,深拷 ...
- script 标签 幼儿园级别的神坑。居然还让我踩到了。
这样的写法,会导致页面出现问题,就类似被中断了一样,百思不得其解还以为是代码出了问题. <script src="./Components/ProcessLine/ProcessLin ...
- 我造了个好大的"轮子",居然还不是"圆"的!
我造的这个"轮子"指的是集低代码开发与运维为一体的平台,为什么说它不是"圆"的,因为它有些与众不同,甚至可以说是有些另类.至于为什么造这个"轮子& ...
- 2019年居然还出版了一本ASP学习的书籍
ASP+Dreamweaver动态网站开发(第2版)孙更新,宾晟,李晓娜 著 内容简介 <ASP+Dreamweaver动态网站开发(第2版)>详细介绍了ASP的脚本语言基础.ASP的相关 ...
- https wireshark抓包——要解密出原始数据光有ssl 证书还不行,还要有浏览器内的pre-master-secret(内存里)
基于wireshark抓包的分析 首先使用wireshark并且打开浏览器,打开百度(百度使用的是HTTPS加密),随意输入关键词浏览. 我这里将抓到的包进行过滤.过滤规则如下 ip.addr == ...
- Java 12 骚操作, String居然还能这样玩!
Java 13 都快要来了,12必须跟栈长学起! Java 13 即将发布,新特性必须抢先看! 栈长之前在Java技术栈微信公众号分享过<Java 11 已发布,String 还能这样玩!> ...
- 天天用SpringBoot居然还不知道它的自动装配的原理?
引言 最近有个读者在面试,面试中被问到了这样一个问题"看你项目中用到了springboot,你说下springboot的自动配置是怎么实现的?"这应该是一个springboot里面 ...
- SQL 居然还能在 Apache ShardingSphere 上实现这些功能?
在去年 10 月 5.0.0-alpha 版本发布之后,Apache ShardingSphere 经历了长达 8 个多月的持续开发与优化,终于在 6 月 25 日正式迎来了 5.0.0-beta 版 ...
随机推荐
- mybatis-plus使用心得
mybatis-plus是一款基于mybatis的持久层框架,在mybatis上只做增强不做改变.基本使用流程: 导入依赖坐标: <dependency> <groupId>c ...
- Java内部类与匿名类
内部类 定义: 一个类的内部又完整的嵌套了另一个类结构,被嵌套的类就被我们称为内部类,嵌套内部类的类被我们称为外部类 //外部类 class Outer { //内部类 class Inner { } ...
- P4221 [WC2018]州区划分 题解
题目链接 题目描述 给出 \(n\) 个城市,\(m\) 条边,一个划分合法当且仅当所有划分中的点集和集合中点之间存在的边集所构成的图不构成欧拉回路且联通. 定义一个点集的值为 划分的总值为其中所有点 ...
- 管道channel
管道 go语言中管道底层是一个环形队列(先进先出),写入(send)和 取出(recv)都是从同一个位置按照同一方向顺序执行. sendx表示最后一次插入元素位置,recvx表示最后一次取出元素的位置 ...
- .NET 8正式发布
11 月 15 日开始的为期三天的 .NET Conf 在线活动的开幕日上,.NET 8作为微软的开源跨平台开发平台正式发布..NET 团队着重强调云.性能.全栈 Blazor.AI 和 .NET M ...
- 又一个涵盖前后端+DevOps+OpenAI大模型的高并发项目启动了
大家好,我是冰河~~ 今天,正式通知大家一件事情:又到了启动新项目的时候,这也是 冰河技术 知识星球继 Seckill秒杀系统 项目后,又一个高并发实战项目.星球其他项目与专栏,大家可移步到冰河的个人 ...
- Linux MIPI 调试中常见的问题
一.概述 做嵌入式工作的小伙伴知道,有时候程序编写没有调试过程中费时,之间笔记里有 MIPI 摄像头驱动开发的过程,有需要的小伙伴可以参考:Linux RN6752 驱动编写. 而我也是第一次琢磨 M ...
- Java八股面试整理(2)
11.int和integer有什么区别,两者在做==运算时会得到什么结果? int是基本数据类型,Integer是int的包装类. 二者在做==运算时,Integer会自动拆箱为int类型,然后再进行 ...
- 【源码系列#03】Vue3计算属性原理(Computed)
专栏分享:vue2源码专栏,vue3源码专栏,vue router源码专栏,玩具项目专栏,硬核推荐 欢迎各位ITer关注点赞收藏 语法 传入一个 getter 函数,返回一个默认不可手动修改的 ref ...
- 34. 干货系列从零用Rust编写负载均衡及代理,异步测试在Rust中的实现
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...