4月14日,由腾讯云开发者社区举办的TVP&腾讯云技术交流日云开发专场,暨"腾讯云-云开发圆桌论坛"在北京、深圳两地同步举行。
当天下午,一场主题为"基于大前端和node开发模式下的Serverless发展前景探讨"的高峰对话成为全场焦点,包括深圳市友浩达科技有限公司CTO 张善友、搜游网络科技(北京)有限公司合伙人李明、北京竹间科技技术负责人朱峰、京东Taro团队负责人李伟涛、转转前端公共支撑负责人王澍、Node js CTC成员张秋怡等26位前端领域大佬参与交流,北京和深圳两地的主持人则分别由云开发高级产品经理王斌、云开发高级工程师李成熙担任。
在会议中,各位技术领域的专业人士围绕大前端serverless的技术价值,传统模式向Serverless模式的转变阻力,以及Serverless技术趋势下对人及技术管理的新诉求,进行了深刻的讨论和探究。
『 Serverless对大前端技术演进价值巨大,助力前端向全栈高效开发转变 』
前端的技术近几年发展非常迅速。我们可以从两个维度去看前端技术的发展——一个是前端复杂度,一个应用的广度。单看复杂度,从HTML、JS、CSS的阶段向DOM操作框架,从DOM到MVC,再到MVVM框架,再到现在assembly技术标准的出现,让前端工程师开发复杂度应用的能力不断提高。而从广度来看,前端也一直在拓展,从浏览器到服务器端,再到移动端,小程序,前端边界在不断扩大。然而在这个发展的过程中,有一个很深的隔离,这个隔离本质上就是物理隔离,比如前端和后端,存在手机和服务器之间的物理隔离。而serverless,函数即服务对前端来说,后端服务是一个函数,函数就是前端代码的一部分,后端服务和前端完全融合在一种代码体系里去。从这个层面来说,severless打破了物理隔离,帮助前端真正做到了全栈。
云开发,是腾讯云和微信团队联合开发的,集成于小程序开发者工具(IDE)的原生serverless云服务。它进一步降低小程序开发门槛,让前端可以包办小程序开发,提升开发效率,像调用API一样便捷,用户其实完全不用担心哪些是服务器的逻辑,他们都去向了哪里,只需要像前端函数一样去理解就可以。
腾讯云TVP、Layabox合伙人李明同时也提到,在传统开发模式下前后端、运营沟通成本非常高,Serverless确实是未来研发团队都应该考虑的一个新的选择方向。但自行探索或许成本比较高。因为如果把这个事情交给前端开发,对于他们来说有学习运维和后端的成本;若交给后端开发,对于他们来说其实又没有任何关系。如果交给云厂商呢?这或许是一个不错的选择。因为这样的话,大家都可以专注于自己的业务,也不需要花费大量时间和精力学习额外知识,从而提高产品研发团队的整体效率。
猫眼资深工程师高英健认为,Serverless的支持对于前端日常业务的开发已非常重要,让前端开发可以独立去支持一些业务需求。比如猫眼在运营工具的实际开发过程中,由于项目主要用于配置日常运营活动,与后端核心逻辑没有任何关系,后端也不想主动配合。这种情况下借助腾讯云推出的大前端Serverless产品——云开发,让前端通过调用API的方式实现后端业务逻辑,对于前端开发效率有很大的改善,逻辑、数据、资源均由前端工程师包办,大大降低了项目的开发门槛,提升开发效率。
大前端Serverless,让前端开发者可以更轻量地做后端的事情,大大提升开发效率,这无论是对企业,还是对市场,都是一件好事。
『 从传统模式到Serverless模式,目前仍存在难点 』
腾讯云TVP、友浩达科技CTO张善友认为,Serverless需要统一的行业标准。目前Serverless服务厂商众多,但各自都是独立的玩法,目前若想从A服务商迁移到B服务商,成本高、难度大。若一套Serverless代码能够在腾讯、阿里、微软、亚马逊等云服务上都能运行,足以降低迁移成本,有效降低客户使用Serverless服务前的顾虑。
腾讯云TVP、北京竹间科技技术负责人朱峰认为,从重构的角度来看,Serverless无法做到真正的技术重构,后端仍然是冗杂的面向过程函数不便于管理。如果能解决重构的问题,才能真正地降低使用门槛。
另外,数据安全仍然是大部分嘉宾的一个主要关注点,而这个问题的本质是公有云数据安全的问题。有意思的是,云开发模式下,每个用户的环境资源是独立的,也即是私有的,并且云开发提供与自有数据库打通的能力。这样,用户的数据都存在用户自己的云开发环境资源下面,一定层面保障了用户的数据安全与稳定性。
此外,从传统模式到Serverless模式的转变,阻力还有错误排查问题,无法跨云等问题,这也导致很多业务无法直接从传统模式向serverless模式迁移。
『 serverless开发模式下,我们开发者或者开发团队要做什么样的改变? 』
即速应用后台开发工程师提到,在Serverless下,前端和后台结合的话,他们操作后台给出的数据,包括创造数据,改数据等,这完全是数据层面的操作,而不仅仅是UI层面,不只是UI的性能问题;同时还要考虑后端的一些数据的性能问题,还有特殊的后端需要使用的模式,比如队列、定制任务。这就有可能分化成两个后台,有的做serverless服务,有的做serverless工具和技术建设。
Node js核心成员张秋怡说到,未来前后端将趋近于系统化、全栈式,按照这种发展模式势必会带来思维的转变,前端需要考虑后端,后端需要考虑前端,慢慢形成一个完整的产品开发模式,Serverless的出现则很好的顺应了这种新开发模式的发展,我们需要做好准备迎接这一大趋势。
凹凸实验室核心成员马剑从团队分工角度提到,这些年在组建团队的时候,我们前端做一些事,后端用node来解决很笼统的场景。但是再往后发展,我们发现过去前端同学做node,或者node的同学做前端,其实都是不专业的。所以发展到今天,我们团队内部也是细分了UI开发的一波人,专业做后端服务的一波人,顺着这个思路往下发展,大前端Serverless一定也是会继续拆分的,即使Serverless做得再好,一定会拆分出来一波人专业在搞,可能另外一波人还是搞业务开发了。
整整一个下午,30多位嘉宾围绕大前端Serverless各抒己见,同时也为腾讯云【云开发】提出丰富的产品优化建议。在未来,腾讯云-云开发团队将与大家一起,共同探索和推进大前端Serverless的发展,为大家提供更简便,更好用的开发工具。