node静态服务器优缺点_基于Serverless一站式Node.js服务管理平台实践

本文介绍了基于Serverless的SFF(Serverless For Frontend)平台,解决Node.js服务的弹性伸缩、迁移、统一规范等问题。通过提供全栈开发方案、前端工程化策略和日志、监控解决方案,提升开发和运维效率。平台采用日志标准化、CPU与内存监控,并利用Redis订阅发布解决多实例通信问题,支持一键部署和Serverless方案对比。
摘要由CSDN通过智能技术生成
add74f20fdf41779a6d94d4c8df9fa99.png

导语

本文阐述了基于Serverless搭建一站式node服务管理平台过程中,在开发框架、日志、监控、部署等方面遇到的问题及技术方案。

背景

Serverless是一种无服务器架构,它的弹性伸缩,按需使用,无运维等特性都是未来的发展方向。但是如何充分的利用Serverless的优势是一个需要探索实践的问题。本文介绍的SFF(Serverless For Frontend)一站式node服务管理平台,基于Serverless服务提供一套node服务整体解决方案,解决目前公司内node服务的以下痛点问题:
1、node服务无法根据负载弹性伸缩,突发流量大时有雪崩风险。
2、node服务无法平滑高效迁移Serverless函数型服务。
3、全栈项目无统一规范,无统一构建部署流程及工具。
4、node服务运维困难,无完整监控、性能分析、故障排查手段。
让开发者专注业务开发,提升开发和运维效率。本平台整体功能结构如下:

8d9800eece9a5c5b50876a65d4c21bb8.png

下面对其关键功能实现进行阐述。

全栈工程开发方案

SFF的脚手架提供了全栈开发的项目骨架,其中包含了前端工程和后端工程,这里面的问题是如何进行前后端工程的文件组织?传统的开发中,前端工程开发页面时需要mock后端工程的api数据,后端工程开发api时依赖前端页面的请求,如何在本地高效进行前后端项目的开发联调?如何在部署阶段进行前后端项目的统一部署?我们的解决方案如下:
1、前端工程与后端工程分别存放在client与server文件夹中,拥有独立的package.json文件,优点是对于依赖的npm包及运行时的文件依赖可以做到解耦合。
2、node端开发了静态资源插件egg-wb-static,该插件能够实现前后端工程无需mock数据或者mock api请求,达到开发阶段即联调的效果。

485de3f5f0a55ba846b7dcf89ce51052.png

其原理是在本地开发时访问后端工程服务,这样本地开发和线上部署访问方式一致,该插件将静态资源的请求代理到前端工程的dev server,所以拥有前端工程本地开发的热更新等能力。在部署阶段,静态资源部分上线到cdn,模版资源放入node项目中,该插件又提供了渲染页面的能力。


3、结合 npm script + 构建部署命令 + 不同部署环境的环境变量 + docker镜像,实现了构建阶段的依赖安装、打包,产出上线静态资源包+部署镜像。

前端工程化方案

我们采用webpack作为前端工程的构建工具,面对的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值