云计算的出现彻底地改变了传统IT架构和运维的方式,当建站必需的服务器、数据库都以资源的形式可以按需购买,当运维从电源线头犬牙交错、满头大汗毫无头绪变成了吃着火锅唱着歌就把事儿办了,成本和效率都不可同日而语。
Serverless 架构的出现,同样带来了跨越式的变革。2018 年,Gartner 报告将 Serverless Computing 列为十大未来将影响基础设施和运维的技术趋势之一。 KBV 研究公司 2020 年发布的《全球 Serverless 架构市场》报告中同样显示,全球 Serverless 架构市场的规模预计到 2024 年将达到 140 亿美元,在这段预测期内将以 23.4% 的年复合增长率增长。
如今,距离 Serverless 的面世,已经过了七年的演进,除了在前端开发领域大放异彩,不乏有云托管这样的 Serverless 后端技术涌现。微信云托管是腾讯云和微信团队联合提供的免运维、高可用、Serverless化的后端服务上云解决方案,以云原生为基础,无需服务器,1分钟即可部署小程序/公众号服务端。
2022年的 Serverless,究竟是正值“当打之年”,抑或是面临“七年之痒”?当前国内 Serverless 技术发展的现状如何?下一阶段又将走向何方?在未来,有哪些新的 Serverless 形态值得期待?
2022年1月20日,TVP技术闭门会以「Serverless七年激荡回响与展望:下一站,云托管?」为主题,邀请了7位对Serverless技术钻研至深的技术专家,用3场主题分享、1场圆桌对话,携众多业内专家一起,聊过往,看现在,探未来!
Old dogs, New tricks——行家也能学新技能
黄希彤是腾讯首位前端专家,也是腾讯前端开发领袖、腾讯云TVP创始委员。他带来的开场演讲题为《Old dogs, New tricks》,这句英文来自于一句谚语,你很难使因循守旧的人接受新事物。然而Serverless本身,就是一种新事物,对于他这样的资深前端,也是一种行家也能学、也要学的新技能。
Serverless——一种优雅的“甩锅”方法
黄希彤老师自嘲是腾讯最老的一个前端开发,他表示在他这个年纪的程序员很多都放弃了这个行当,有的做项目管理,有的做产品,有的创业去做CEO,还接着做程序员的越来越少了。身处这个技术快速迭代,学习迁移能力要求极高的时代,只要还在当程序员,就必须去努力学习:从小程序和云开发结合的微信云开发,再到最新出炉的微信云托管。这些技术并非大家往常吐槽的“旧瓶装新酒”,而是实实在在的革命性的新技术,即使是“老鸟”也值得去研究一番。
疫情期间,各地健康码频繁崩溃,引发了程序员朋友们的吐槽。黄希彤老师在吐槽之余,回想起了程序员的常规成长路径——一路制造问题、解决问题、背着锅快速成长。“背锅”,是老一代程序员的基本素养。
黄希彤老师表示,早年间火遍全国的QQ空间偷菜游戏,背后的研发团队正是他们。当年的服务非常不稳定,时不时就“歇菜”,开发团队经常会以“机房空调坏了、光缆挖断了、运维走路踢到插头”等经典程序员否认话术来“甩锅”。
那时候,黄希彤老师想的是能不能有一个机会,可以自己写一个线上的服务来玩一玩,可是当时的技术并不成熟,无法做到服务的稳定,只能动静分离,把静态服务放到C端,动态服务却总不能不用服务器。谁知道后来,无服务器(Serverless)真的来了。
在这个过程中,黄希彤老师自己也按捺不住程序员式的手痒,自己动手做了一次Serverless的项目,没想到还是踩了很多坑,所幸这些实践中遇到的坑都甩给了腾讯云的开发团队,得到了妥善的解决与功能排期。
Serverless产品也在飞速进阶。例如微信云托管的产品出现以后,黄希彤老师发现Serverless也可以解决面向终端用户提供服务最怕也最常见的DDoS问题,基于微信私有链路和自研协议,除非攻击者能控制海量的微信终端,或者击穿微信的边缘服务器,否则DDoS压力无法传导到代码层面。
在演讲的最后,黄希彤老师幽默风趣地总结道:老一辈程序员的基本素养是“背锅”,新一代程序员的基本素养应该是优雅地“甩锅”。我们要充分利用好云托管、云开发这种 Serverless 技术背后快速、弹性的能力,把包括DDoS攻击在内的各种“锅”都优雅地甩给腾讯云和微信,让其背后的技术团队去很好地应对与解决这些问题。
Serverless的机遇和挑战
MegaEase创始人、腾讯云TVP创始委员陈皓老师为我们带来题为《Serverless 的机遇和挑战》的主题演讲。作为一名年过四旬的资深程序员,陈皓老师过去的职业生涯遍布金融、电子商务、云计算、大数据等领域方向,至今仍在保持一颗开放的心态学习新技术。他从云原生技术架构趋势、Serverless 历史发展、应用场景及面临的挑战等四个方向出发,为与会者层层深入地剖析了 Serverless 的发展情况。
云原生技术架构趋势
云原生是最近几年最热的技术方向,但很多人对云原生的理解仍旧浮于表面。陈皓老师表示,云原生的大热根植于这个时代之下,数字化转型重心的转移——从传统的数字化时代以ERP、CRM、OA等工具满足企业自身和管理为主,转移到新一代的数字化转型时代:从用户需求出发,未来的数字化主要是用来感知用户和需求变化。
而用户侧的几个核心关键:更快的迭代开发速度、更高的并发和性能、高可用稳定的架构、低成本和自主可控,又带来了对技术的 6 大诉求:
而随着开源技术的蓬勃发展、公有云厂商的对标逐渐展开,云计算的架构已经从 Cloud 1.0 时代的关注资源,进入到 Cloud 2.0 时代,专注于应用。这背后的发展,Serverless 起到了至关重要的作用。陈老师以上世纪90年代,Google 运行在当时廉价且不稳定的 x86+Linux 机器上,却靠分布式的理念解决了底层基础设施的问题,这种软件架构模式的超前设计也带来了整个行业的变革,也是 Serverless 理念的最初形态。
这样的软件架构设计,也带来了企业服务化架构的快速演进,从中心化的SOA架构到广泛流行的微服务架构,再到升级的服务网格架构,基础设施越来越完善,开发者不必再关注代码部署、服务器等运维相关的工作,而可以将精力专注于业务逻辑,极大地解放了生产力。由此,云原生技术的大热便不足为奇。
Serverless历史发展
陈皓老师介绍道,早在2006年,Zimiki 伦敦 Fotango就推出过“Pay as you go”的产品,但在商业上未获成功。此后从2006年到2011年以后的几年间,Serverless整体上处于一种“惨淡经营”的状态,陆续有 Serverless 形态的产品出现,陆续以失败告终。
而从2014年A函数式服务化计算模型推出开始至今,Serverless 卷土重来,这次的情形相比之前已成云泥之别:国内外的各大云厂商,纷纷推出了自己的 Serverless 服务产品,Serverless 技术的发展也开始迅速成熟。
随着底层技术设施的完善,开发者写的代码可以很快地变成一个“Service”,Serverless / FaaS 的应用也并不局限于简单的小场景,Serverless / FaaS 让开发者从控制逻辑中抽离出来,专注于业务逻辑。然而,控制逻辑无法降低业务逻辑的复杂度。
Serverless应用场景
在一些人的认识里,Serverless 似乎只适用于简单的小场景,但陈皓老师表示,如果用数据库的 Trigger 和 Procedure 来类比一下,答案其实呼之欲出:Serverless/FaaS 提供了一种可以在标准组件上注入业务逻辑的方法。
在过往的工作与思考中,陈皓老师总结出了 Serverless 的业务场景:
1.需要具备一个标准化的功能 PaaS 平台底座,包括技术 PaaS 和业务 PaaS;
2.在这个平台上专注于小而美的功能或产品开发;
3.Serverless 提供了一种在 PaaS 平台上可以在无限扩展和灵活定制的编程和运维范式。
Serverless的挑战与机遇
从零开始做 Serverless 落地面临的经典问题有很多,比如:如何进行服务发现?如何进行健康检查?如何做灰度发布或 A/B 测试?需要哪些指标以及调用链?相互间的依赖关系如何管理?容错处理 SLA 如何保障?
问题看似很多,但陈皓老师表示,抽象总结下来其实就是解决基础设施的问题:
陈皓老师最后总结道,是不是Serverless其实无所谓,我们主要关注的是“Service”而非“Resource”:
1.有没有提升开发效率,可以更快地开发和上线?
2.是不是可以有更高的性能和更好的稳定性,扩展性和安全性?
3.有没有降低运维的成本?
4.有没有很好地管理好成本和使用量?
5.开发人员可以更容易很自然地融合到DevOps/SRE中来?
这背后需要建立大量的技术和业务基础设施,只有建好底层的跑道,Serverless 这架飞机才能展翅高飞,鹏程万里。
Serverless正当时——云托管开发实战心得
视频号《程序猿依力》主理人依力近期在微信视频号平台中直播软件开发实战,本场演讲的主题《Serverless正当时——云托管开发实战心得》正是源自于其丰富的项目实战开发经验。他从自身真实体验出发,探讨了传统部署方案中会遇到的问题、为什么选用微信云托管的解决方案,以及对云托管未来展望,全面且直观地为与会者构建了一个基于云托管的应用开发最佳实践蓝图。
传统部署方案的痛点
依力老师根据当前的项目背景,总结了传统部署方案存在的诸多痛点:
1.运维:多台服务、多个环境,运维成本高;
2.安全:需要配置防火墙、告警机制;
3.成本:预购、人工投入成本、客户满意度、初创团队资金紧张
作为一个初创团队,开发的逻辑一定是更关注产品逻辑本身,而非运维。但在传统的部署方案中,运维、安全的问题与初创团队囊中羞涩的尴尬结合在一起,由此带来的高成本与维护问题成为破局的关键。
云托管解决方案与未来展望
基于这样的现实背景,依力老师最终选择了由腾讯云和微信团队联合提供的,以云原生为基础的,免运维、高可用服务上云解决方案——微信云托管。
依力老师的硬核分享以一个云托管项目的实战演示为例,对微信云托管的功能点展开了详细解说:项目背景是前后端分离,后端使用 SpringBoot,前端使用 Vue 3,为了部署到云托管服务上,选择了 Docker 容器化的方案。最后在一套流程走下来以后,可以发现云托管基本上做到了将繁琐的流程节点简化,降低了开发者的使用门槛,同时速度非常快。
依力老师总结道,微信云托管解决方案的优势体现在以下几个方面:
1.部署:自动化部署、服务颗粒度;
2.运维:版本灰度、负载均衡、日志服务、可配置扩容;
3.安全:防火墙、监控告警;
4.成本:按量收费、降低人工成本、面向初创团队、MVP。
分享最后,依力老师也从自己项目实操的角度,为微信云托管的未来提出了更加满足多场景需求的期待,例如多协议支持、多端口支持、更灵活的服务编排机制等。
圆桌对话丨Serverless回响与展望:下一站,云托管?
本场圆桌对话,聚焦于 Serverless 技术的7年激荡发展历程,由中国信通院云大所Serverless研究员周丹颖老师担任主持人,邀请了腾讯前端开发领袖、腾讯云TVP创始委员黄希彤;MegaEase创始人、腾讯云TVP创始委员陈皓;乐凯撒CTO、腾讯云TVP黄道泳;星汉未来联合创始人&CPO、腾讯云TVP胡忠想;Thoughtworks技术专家黄峰达五位老师一同展开探讨。
实际业务场景下,Serverless带来的收益与优化空间
陈皓:Serverless 的应用提供的其实是基础设施,如果是做业务系统的可能更容易从中体会奥妙所在。从我接触客户的经验看下来,Serverless 必须是无侵入式的,能够让用户现有应用可以很便捷且低成本地迁移上来。迁移成本是数字化转型里非常核心且麻烦的关键点,也是所有云平台面临的问题,在 Serverless 的使用过程中如果可以注意迁移成本,能够提供无侵入式的技术,用户体验会得到很好的优化。
黄道泳:乐凯撒在2017年就上线了点餐小程序,应该是国内最早一批实现小程序点餐的企业。那个时候的后端就是用 Serverless 做的。在做应用系统升级改造的过程中发现很难一次性完成升级重头,现有业务又不能停,因此,低成本投入、让小部分业务先切出来便成为我们的核心诉求,这也是最终选用 Serverless 方案的原因。在逐步升级及后续的使用过程中,我们发现 Serverless 有按需使用、运维成本低、语言门槛低、开发成本低的几大优势,能够快速按需完成开发,在轻量级业务场景下效果非常好。
Serverless 的应用如果要走到更广的天地,只做轻量级应用是远远不够的。而当前体量规模大的应用大多都是 Java 应用,如果用其他语言重写,工作量太大而且效益偏低,最好的办法是在 Java 的基础上直接完成迁移和切换,我认为这是 Serverless 在未来大量替代现有传统服务的关键点。
胡忠想:星汉未来的创业方向也是做 Serverless 方向,我觉得它最大的好处就是不用关心后端的基础设施,尤其是缓存数据库、服务器扩容等运维方面,这些运维成本的减少,对用户来说是最大的收益。它最大的挑战是如何应对复杂业务,如何将非通用服务化框架写的 Service 拆分成函数调用,尤其是复杂业务的拆分是难点所在。微服务调用已经涉及了这些,再到函数调用难度更大,这也是目前 Serverless 推广面临的挑战。
黄峰达:Serverless 的收益点,目前更多体现在中小型应用里,包括运维成本的降低与开发上线周期的加快。而其挑战,除了前几位老师提到的复杂应用中的问题,则是中大型公司内外网的问题,外网可以使用 Serverless 解决方案,但内网就没办法。如果云厂商能提供私有化部署的能力,对这些公司来说是大大提升开发速度的,这是我觉得另一个 Serverless 值得优化的点。
黄希彤:我有过一年的创业经历,当时是在一个非常小的初创公司。Serverless 对我来说是一个非常好的工具,随时有想法,随时可以线上验证。这个时候我不需要去考虑未来变成庞大系统,复杂业务场景该怎么办,我只需要把服务跑起来,在此基础上往前看一点,跑得远一点。这对小公司的快速启动,快速试错非常有利。
Serverless会是云计算的下一站吗?
胡忠想:云计算是当前技术发展的大势所趋,上云以后需要运维,但 Serverless 的出现导致很多场景下连运维工程师都不需要了。由此可见,Serverless 是云计算发展的下一站。我认为在未来,混合云和多云会是 Serverless 演讲的两个方向。
黄峰达:在我看来,Serverless 未来会是云计算的主流实现形式之一。假设未来数据都准备好了,写好一个一个的业务逻辑就可以运行。从这个角度上看,Serverless 其实是一个API,也是实现函数式的一种方式。如果从云的角度来看,未来基于云原生的架构将带来基于云的编程语言,Serverless 可以进一步调用各种后端的服务,成为云计算更进一步的发展形态。而在未来,我看好 Serverless 的三个演进方向:多云化、编程语言抽象化,以及前端无组件架构化。
黄道泳:当前云计算的用户形态,更多仍旧在底层资源的交易,虚拟机仍旧是最大的一块,其他绝大部分服务都基于虚拟机部署。Serverless 的形态与其他服务最大的区别在于可以直接部署应用,无需再做虚拟机的基础管理。未来的趋势都应该往这个降本增效的方向走。从整体来看,Serverless 一定会是未来的主流。
黄希彤:这个问题有点像算命,但技术的演进不是靠预测算出来的,而是靠广大开发者去实践验证出来的。假设今天大家都朝这个方向去努力,把服务迁移到 Serverless 上,那么未来所有的服务都转向纯粹的 Serverless 也不是不可能。就像现在很多人在谈论Web 3,很多人觉得Web 3要朝区块链方向去靠,也是基于大家普遍认同,才去往这个方向做实现,未来才有可能会变成如此。所以这个问题最终是回归到,我们开发者想要一个什么样的未来,我们就一起努力去把未来朝那个方向推。
陈皓:我个人看法,每个技术都必然有自己适合的场景,大一统的技术方案是不可能的。就像汽车有跑车、卡车、越野车,你不能造一辆车又可以载重、又可以像F1那样快、又可以在市区跑。回归到 Serverless 技术本身,它有其适用的场景,适合“租房”的人,不适合“买房”的人。在未来我们更需要关注 Serverless 的底层逻辑,即大量的技术和业务基础设施的建立。
微信云托管:一种微信+云+Serverless的超前模式
“微信+云+Serverless”模式当前已得到一定的验证,早在2018年,腾讯云联合微信团队推出的微信云开发(原小程序云开发),提供了免服务器、免运维的一站式开发体验,已有超过200万开发者使用,支撑了许多前端开发者以极小的投入独立开发一个完整项目。但 Serverless 从来都不是前端开发者的专利,2021年,面向海量后端服务的微信云托管应运而生,在云开发的能力基础上,兼具了容器的开放性、 Serverless 数据库的灵活性、持续交付部署的敏捷性,从代码上传到 CI/CD 流水线部署发布,为中小企业和开发者打造更低成本、更优体验的一体化的上云服务,各位大咖也对微信云托管提出了自己的见解与评价。
黄希彤:云托管跟云开发一样,它的部署模式决定了微信会在前面帮我们“背锅”,开发团队可以安心地实现自己的业务,从安全的角度上看这是非常爽的一种模式。此外,云托管克服了云函数一直不能支持单实例多并发的问题,在一些场景下用云托管做开发会非常高效。
陈皓:我的观点很鲜明——微信和腾讯云的 Serverless 模式,包括微信云开发、云托管这个产品我觉得做对了。Serverless 基于专用的场景来解决问题是相当正确的选择,当前环境下 Serverless 还无法泛化地解决所有场景的问题。而基于微信,小程序、云开发再到云托管,这条路能够打通微信的生态,从商业逻辑到业务逻辑都没有任何问题。
黄峰达:就我个人而言,我喜欢从开发体验来发表看法。我比较喜欢用 CLI 代替 UI,更偏好于直接用本地下载托管完成所有工作,这是我个人向的一些建议。
胡忠想:云托管对微信生态的开发者、企业非常友好,能够在利用 Serverless 技术能力的同时,打通微信生态里的商业场景,实现基于微信云托管,针对微信生态开发,从微信生态获益的闭环。未来如果能将云托管的功能完善化,将会帮到更多企业和开发者。
黄道泳:Serverless 的应用结合微信小程序、微信生态,是一种天然的优势。这里面绝大部分应用相对简单,面向C端,业务逻辑并不复杂,云托管在云函数基础上增加了针对小程序开发配置的SDK,非常方便。未来希望云托管能够不断优化,越做越好。
在圆桌交流中,本场主持人周丹颖老师提出了自己对于 Serverless 的见解与预期,她认为当前 Serverless 技术已经从概念期走向落地期,进入发展快车道,未来大部分服务都将向 Serverless 化方向演进,国内头部厂商的水平已经基本与国际接轨,不过在服务同质化、竞争白热化的大背景下,需要在用户体验、可移植性等方面多下功夫。总体来看,她非常看好 Serverless。
关于发展7年的 Serverless 技术,究竟是面临“七年之痒”还是正值“当打之年”的疑惑,相信在本次TVP云托管闭门会中已得到解答, Serverless 方兴未艾,而微信云托管这种打通了微信生态、云计算与 Serverless 的模式值得期待,这或许是 Serverless 逐步走向大流行的关键!本次会议的演讲、圆桌及参会嘉宾都纷纷表达了他们对于微信云托管的期望与寄语。
黄希彤:“对比传统后端服务,微信云托管像是个“奇葩”,它特有的微信私有链路和部署模式,像“盾”挡在我们身前,让业务逻辑可以更安心地实现。
陈皓:微信云托管的“微信+云+Serverless”模式是非常正确的选择,我希望在未来它能够更加标准化、更加开放。
依力:微信云托管提供高效的流水线部署,以版本灰度、负载均衡等功能大大降低运维成本,且按量收费,是非常适合初创团队和MVP的产品。
黄道泳:微信云托管找到了一个很好的落脚点,结合微信生态有着天然的优势,非常适合中小企业和个人开发者来搭建初期的业务。
胡忠想:微信云托管对于小程序等微信生态里的应用开发非常友好,希望它持续发展,提供更为专业的服务,未来可期。
黄峰达:微信云托管最吸引我的是:它把开源框架的快速部署融入到产品能力和新手指引中,还支持开放性的二次开发。
Michael Yuan:微信云托管将 embedded functions 的能力深度整合到微信生态内,是一个非常适合 Serverless 的应用。 非常期待未来微信云托管与 WebAssembly 能够产生联动。
结语
软件架构领域的经典名著《人月神话》告诉我们,软件开发从来没有“银弹”可言。对于开发者而言,Serverless 可以是一种优雅的“甩锅”方式,也可以是一种“租房子”的轻量化选择。最终推动 Serverless 走向下一站的,仍旧是广大的开发者自己。
而依托于微信的庞大生态,打通C端用户与企业之间的联系,通过微信+云+Serverless的云托管模式,或许将在未来迸发出惊人的能量——你可能永远不知道脱离了底层运维苦海的业务跑得有多快!
TVP自成立之初,便希望能够“用科技影响世界”,让技术普惠大家,践行科技向善的初心与本心。在这样的情怀下,每一次TVP闭门会为了尽善尽美而做的匠心打磨,每一位TVP嘉宾为了分享而做的实践总结,也正是在践行 Serverless 的理念:将上下求索的艰难旅程浓缩为核心知识的无私传递,只为了让行业里的开发者能站在巨人的肩膀上,看得更远。
TVP,即腾讯云最具价值专家(Tencent Cloud Valuable Professional),是腾讯云授予云计算领域技术专家的一个奖项。TVP致力打造与行业技术专家的交流平台,促进腾讯云与技术专家和用户之间的有效沟通,从而构建云计算技术生态,实现“用科技影响世界”的美好愿景。