“ 中台和Serverless是今年最火的两个技术名词了,程序员不得不了解一下。短期来看,运维会失业或转行;长远来看,程序员将分化。未来编程可能极其简单。”
一
我们把系统资源进行 Serverless 化,这些系统资源大概分为 2 大类: 一种是 CaaS:compute as a service 用来提供计算能力; 一种是 BaaS:backend as a service,相当于把第三方组件也 Serverless 化,用户也不用去关注第三方组建的搭建和运维,只需要调用 api 去使用即可。所以 Serverless 大概可以理解为:CaaS + BaaS。
在Serverless开发模式中,没有MySQL,没有DB,没有关系存储,没有对象存储等,资源分为两类,一类是自己的计算类资源,另一类是别人提供的计算类资源,自己复用。
在物理机阶段,我们要去购买物理服务器,然后还可能需要去建自己的机房,安装制冷设备,招聘运维人员,然后在上面搭建一系列的基础设施,比如:虚拟化,操作系统,容器等,有很多工作要去做。到了虚拟机这一阶段,云厂商维护了硬件和虚拟化这 2 个基础设施,到了容器这一阶段云厂商又维护了 OS、容器和 Runtime,可以看到用户需要做的运维工作越来越少。然后到了 Serverless 这个阶段,用户只需要关注 Function,也就是只需要关注自己的业务逻辑。
大体是三个阶段吧:
Serverless是如何运行的?
开发者创建Func,用户访问的也是Func。照这样发展,迟早有一天,编程将普及化、简单化。随着计算能力的大幅提升,一个一个成熟的Func被开源,在大量应用中复用。个体只需要拖拽一个一个Func,就可以开发一款应用。并且随时可以测试效果,不满意再修改。编程将成为一种像舞蹈一样的乐趣。创意将越来越重要。
在那个时代,程序员分为两种:
1,云下程序员,负责维护和迭代底层的云,会C、C++、Go等编程语言;
2,云上程序员,不需要学习和使用任何编程语言,只需要有创意。
国内用户用的比较多的 IDE 是 VS CODE,为此,我们开发了 VS CODE 插件,可以方便开发进行函数的开发和部署。
腾讯云提供了VSCode插件,可以像微信开发者工具那样,直接在工具内将编好的云函数上传至云端。
除了开发者工具,我们也提供完善的 DevOps 支持,从最佳实战,到工作流,到工具链,以及产品打通,我们都提供了很多方案和支持。比如工作流这里,我们支持编码、构建、打包、部署、测试和发布等一系列流程。
呵呵,某些研发团队三天两天测试环境出问题,这个时代可能要过去了,前提是采用Serverless开发模式。编码、构建、打包、部署、测试、发布,一整套的开发流程能力都具备了。
可能不久之后,运维、测试都要失业了,不久将来,可能程序员也要失业了。但从另一个维度来看,他们可能也没有失业,只是工作内容发生了什么。
二
将替代BFF
前端在发展,后端也在发展,在分层和模块划分上更加的粒度化,微服务化。微服务的接口不再是面向页面,前端的接口调用变得复杂了,所以需要在微服务和前端中间,加了一个 BFF 层,全称(backend for frontend),由这一层对接口进行聚合、裁剪后,再输出给前端。而这层不是后端本质工作,距离前端比较近,关系更大一些,所以前端工程师很自然选择了 Node.js 来实现。这也是当前 Node.js 在服务端比较广泛的应用。
以前程序员不分前端和后端,做为一名ASP程序员,既要建表、写ASP代码,也要写HTML代码。后来出现了一个职业叫网页设计师,是专门将美工做的效果图切成HTML页面的。
BFF发展发展,在今年被并到了中台里。用NodeJS编写,专门聚合后端接口,为前端所用。
很多公司连BFF还没有用过,可以直接升级到Serverless了。
Serverless 的这些特点:
无运维和低成本是亮点,无状态和事件驱动将变革前端开发模式。
SSR还没有普及,感觉也要被替代了
传统的服务端渲染,服务端根据路由返回渲染好的HTML页面。而在Serverless上实现也类似,可以将多个页面返回放到一个函数中,也可以将每个页面拆分成一个个云函数,这样用户请求的一个页面,对应的就是每个单独的函数。
还有很多,建议阅读: