纵观云计算的发展历程,可以分为四个阶段。首先在没有云之前,用户大多使用的是物理服务器托管的方式,采购一些服务器在机房里托管。这时,用户需要选择物理机型号,做好IDC网络,这些设备的投入和运维成本很高。云时代到来之后,在虚拟化技术的影响下,云主机开始投入使用。用户直接在云上购买云主机,开通就可以使用,无需运营物理机。之后随着容器技术的发展,容器平台把云计算历史带到了第三个阶段。在容器平台阶段,仍然存在着一部分的基础设施运维问题,但此时,基础设施已经逐渐下沉给运维人员进行操作,应用开发人员不用再去关心虚拟机或者操作系统,只需关注应用所需的计算资源或存储资源的使用情况。
技术发展的脚步从没有停歇,Serverless进入了大众的视野。Serverless让运维人员无需关注底层的运维,而只要关注按需运行的能力,业务人员能够进一步关注在与业务相关的事情上。
2014 年年底 AWS 推出 Lambda 产品在业界被公认为标志着 Serverless 发展的开始。2016 年 Google Cloud Function 和微软 Azure Function 两款产品的商业化,标志着 Serverless发展到了成熟期。腾讯云在2017年 4 月正式推出了无服务云函数(Serverless Cloud Function)产品,简化了用户运维成本,只需要上传代码就可以开发运行。2018年9月,腾讯云和微信共同推出集成于小程序IDE里,云能力和微信开放能力都可以开箱即用,让前端也可以全栈开发的Serverless云服务——云开发。
近日,51CTO记者对腾讯云·云开发团队的产品经理王斌进行了专访,对腾讯云Serverless的发展及对前端开发的影响进行了梳理。
三大适用场景
Serverless架构由两部分构成:函数即服务(FaaS)和后端即服务(BaaS)。与传统架构相比,开发者只需要专注于业务逻辑即可,开发效率更高。
Serverless架构
说到Serverless的适用场景,王斌总结为三个方面。
一是应用负载有显著的波峰波谷。一个公司的业务负载有波峰波谷时,机器资源要按照峰值的需求预估,而在波谷时机器利用率明显下降,导致了极大的浪费。如果做到Serverless化之后,以函数来进行按量计费,峰值高的时候,为高峰值进行付费,峰值低的时候,为低峰值进行付费,而不再为整体的服务器进行付费,这样就把资源成本降了下去。
二是高并发的场景。以前的业务逻辑是在Docker的层面上来做,粒度比较粗。如果把逻辑进行函数化,像编程一样,在并发很高的情况下,平台会根据事件的堆积情况,或者事件到达的速度,自动把同一份代码和配置拉起多个实例进行并发处理。而原有的容器或者虚拟机如果要进行并发的话还是要有一定的手工参与,比如启动更多的容器,或者加入更多的虚拟机来承载高并发的请求,而Serverless的函数即服务是完全自动的运行。
三是与现有的小程序进行结合。把现有的API服务向Serverless架构演进,在不改变 API 的情况下,它的前端浏览器应用、APP、小程序,都可以无缝对接上来。而使用API网关来承接 API 请求,当这个请求来到API网关,由它转发给云函数,触发云函数执行。云函数起到的是业务逻辑处理的作用,而状态数据或者其他业务数据的存储则依赖于后面的文件存储或者数据库进行。API服务也是Serverless最常用的一种适用场景。
大前端Serverless的技术价值
前端开发者是最早受益于Serverless的群体。目前,前端技术正在向两个方向发展:一是前端复杂度,二是应用的广度。从复杂度来说,自HTML、JS、CSS向DOM操作框架,从DOM到MVC,再到MVVM框架,再到现在assembly技术标准的出现,让前端工程师开发复杂度应用的能力不断提高。从广度来看,前端也一直在拓展,从浏览器到服务器端,再到移动端,小程序,前端边界在不断扩大。然而在这个发展的过程中,有一个很深的隔离,这个隔离本质上就是物理隔离,比如前端和后端,存在手机和服务器之间的物理隔离。而serverless,函数即服务对前端来说,后端服务是一个函数,函数就是前端代码的一部分,后端服务和前端完全融合在一种代码体系里去。从这个层面来说,Severless打破了物理隔离,帮助前端真正做到了全栈。
云计算的本质就是要让业务开发专注于业务逻辑,而硬件及软件设施都是按需采买,开箱即用。Serverless的理念及相关技术,使开发人员不再需要关心机器的问题,甚至连流量也不必再关心,Web开发人员的运维成本会大大降低,前端也可介入到BFF层的开发,而后端可以聚焦于数据处理、业务逻辑与算法。
Serverless是必然发展趋势
王斌表示,未来,Serverless是技术架构发展的必然方向。“不管是两年,或者放远一点,十年,我相信大家都是完全Serverless化的去开发。”从前端的角度来说,前端的一个发展目标就是做全栈,Serverless把做全栈的物理隔离打通了,让前端和后端的开发没有任何界限,感觉是开发一套代码来做前端和后端,所以能够帮助前端全栈开发快速的发展下去。
此外,Serverless化会带动其他的服务,能够进一步的将运维体系变成底层的能力,让Serverless提供商来负责,开发者只专注于代码逻辑。
此次专访后,由腾讯云+社区举办的TVP&腾讯云技术交流日云开发专场,暨"云开发圆桌论坛"在北京、深圳两地同步举行。腾讯云·云开发团队与猫眼娱乐商业平台前端负责人王克淼、京东Taro团队负责人李伟涛、转转前端公共支撑负责人王澍、aybox合伙人李明、Node js CTC成员张秋怡等26位前端领域大佬参与交流,围绕大前端Serverless的技术价值,传统模式向Serverless模式的转变阻力,以及Serverless技术趋势下对人及技术管理的新诉求,进行了深刻的讨论和探究。
据悉,TVP(Tencent Cloud Valuable Professional,腾讯云具价值专家)是腾讯云实现数字化转型、建设智慧生态的重要战略计划,旨在通过建立与行业技术专家的交流平台,促进腾讯云与技术专家和用户之间的有效沟通,从而提升腾讯云产品能力,打造云计算技术生态,实现“用科技影响世界”的美好愿景。
相关阅读:
凡本网注明来源非中国IDC圈的作品,均转载自其它媒体,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。