2009年,node的诞生吹响了大前端时代的号角,为无数前端开发者打开了一扇崭新的大门。全栈的门槛对于前端开发者而言,一下子降低了许多。但在后续的十年发展里,前端全栈之路走的并没有想象中的那么光艳。node在企业项目中更多地扮演着中间层,代理层或者动态脚本的角色。后端的世界还是青睐java、go这种成熟稳定的服务器语言。前端开发者始终离不开业务主导的职业发展圈子。而在serverless的大潮流下,前端全栈一词又再一次被人们捡起来讨论。
首先我们讨论一下何为全栈。在普遍的认知中,全栈对于大多数开发者的认知还是停留在三个点:
1、前端
2、后端
3、数据库
简单的UI + 数据处理对于复杂的系统,从开发、部署、运维、监控等各方面而言,显然是不足的。这也是为什么单纯的nodejs扩展出服务器语言并不能完全降低前端全栈的门槛。一个稳定的强大的系统架构应该是包含以下所有的点:
1、业务架构(前端 + 后端 + 数据库)
2、数据管理 (数据回流,迁移,数据备份)
3、服务器运维(负载均衡,log管理,监控报警,网关等)
4、安全
5、其他(CDN、https证书管理、容器部署)
我们可以看到,一般对传统全栈的认知仅仅停留在业务层面,其他方面的技术领域对于前端开发者来说学习成本仍然是巨大的。
接下来我们再看看什么是serverless,以下serverless的介绍引用来源于维基百科:
无服务器运算(英语:Serverless computing),又被称为功能即服务(Function-as-a-Service,缩写为 FaaS),是云计算的一种模型。以平台即服务(PaaS)为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供。
“微型的架构,终端客户不需要部署、配置或管理服务器服务”,也即我们可以把业务架构其余的点视为一个云服务平台提供的黑盒,开发者只需要专心于核心业务的研发即可。大大降低项目的成本。对于前端全栈之路上,serverless扔掉了许多的学习负担。而对于当前的前端领域,前后端分离的一个最重要的点,就是把复杂的业务让前端来分担,使后端专心于RPC的处理。因此对于以业务为主导的前端,serverless与前端开发的配合无疑是天衣无缝的。大前端的趋势再配合上serverless,可见的是前端对业务的进一步统治。
Serverless实践:
本次实践基于serverless framework
npm install -g serverless全局安装serverless框架
# 创建一个新的 Serverless 服务/项目
serverless create --template tencent-nodejs --path my-service
# 进入到创建好的项目目录
cd my-service部署:
serverless deploy -v这里有一个很好的性能,支持git服务直接部署:
serverless install -u https://github.com/your-url-to-the-serverless-service体验总结:
云计算服务近几年早已在各大厂家之间打起了无硝烟的战争,各大厂家的云计算服务都已经有了很多良好的落地产品。serverless的落地对于中小企业的项目管理的帮助无疑是巨大的。无论是安全方面的提升,还是成本方面的控制,serverless都能促进中小企业更好更稳地去管理自己的系统。而serverless对于前端开发者而言,并不是一项炫耀的高端技能,其定位应该是一个易上手,开箱即用的高性能工具。其实有点像一出美丽的舞台剧,前端开发者在舞台上尽情地、忘我的展现着自己的技能,serverless就像那稳如磐石的舞台、灯光和声乐团队。两者配合未来必能演出美好的戏剧。