云厂商的细分战场——Serverless
▲点击上方 雷锋网 关注
云开发将大大减轻开发人员的额外工作,只需专注于业务逻辑本身。
文 | 张帅
Serverless,中文译名无服务器,这个译名多少有些不妥当,Serverless不是没有服务器,而是尽可能减弱服务器的角色。无服务器让开发人员实现云开发,前端和后端人员都不用再配置服务器,而是把这件事交给云厂商负责,以函数运行时间计费,是理想的开发环境。
腾讯云李成熙表示,“前端全栈开发的模式,从前端做到后台,类似过去的Web移动工程师大包大揽,所以就需要云厂商提供云开发解决方案,传统开发模式一方面要开发前端和后端的逻辑,还要处理所有的运维,靠一个人是不可能的,所以才有了现在传统分工模式,就是前端、后台、运维。”
如果业务实现云开发,开发人员关心的只有一小部分,主要是业务逻辑。只要工程师能够懂Java和node.js,基本上就可以把服务稳定、性能卓越和有一定安全性的小程序应用独立开发出来。通过云开发的开发模式的推动,真正可以实现前端工程师全栈开发的一个理想的模式。
有观点认为,FaaS(Function as a service,函数即服务)等同于Serverless,相比传统划分的基础设施即服务(IaaS),平台即服务(PaaS),软件即服务(SaaS),FaaS更细分,目前业内提供FaaS的云厂商主要包括AWS Lambda,微软、阿里云和腾讯云等,总体来说Serverless还处于发展初期,但是潜力巨大。
云服务的终极目标就是直接提供服务,Serverless就是开发人员的理想环境,现在的云服务还不是云计算最初被设想的形态,整个行业都在一点点接近。
前端技术的发展
前端的技术近几年发展非常迅速,可以从两个维度去看前端技术的发展——一个是前端复杂度,一个是应用的广度。
单看复杂度,从HTML、JS、CSS的阶段向DOM操作框架,从DOM到MVC,再到MVVM框架,再到现在assembly技术标准的出现,让前端工程师开发复杂度应用的能力不断提高。
而从广度来看,前端也一直在拓展,从浏览器到服务器端,再到移动端,小程序,前端边界在不断扩大。然而在这个发展的过程中,有一个很深的隔离,这个隔离本质上就是物理隔离,比如前端和后端,存在手机和服务器之间的物理隔离。而serverless,函数即服务对前端来说,后端服务是一个函数,函数就是前端代码的一部分,后端服务和前端完全融合在一种代码体系里去。从这个层面来说,severless打破了物理隔离,帮助前端真正做到了全栈。
腾讯云TVP、Layabox合伙人李明表示,在传统开发模式下前后端、运营沟通成本非常高,Serverless确实是未来研发团队都应该考虑的一个新的选择方向。但自行探索或许成本比较高。如果把这个事情交给前端开发,对于他们来说有学习运维和后端的成本;若交给后端开发,对于他们来说其实又没有任何关系。如果交给云厂商呢?这或许是一个不错的选择。因为这样的话,大家都可以专注于自己的业务,也不需要花费大量时间和精力学习额外知识,从而提高产品研发团队的整体效率。
猫眼资深工程师高英健也提到,猫眼在运营工具的实际开发过程中,由于项目主要用于配置日常运营活动,与后端核心逻辑没有任何关系,后端也不想主动配合。这种情况下借助腾讯云推出的大前端Serverless产品——云开发,让前端通过调用API的方式实现后端业务逻辑,对于前端开发效率有很大的改善,逻辑、数据、资源均由前端工程师包办,降低开发门槛,提升开发效率。
传统模式到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做得再好,一定会拆分出来一波人专业在搞,可能另外一波人还是搞业务开发了。
- END -
◆ ◆ ◆
推荐阅读
详解Serverless服务,它会颠覆你对云的理解 | 硬创公开课
人工智能领头人邓力当选加拿大国家工程院院士!7月将出席 CCF-GAIR 2019