文章目录
前言
你是否还在手动部署,每当代码变更后都要重新部署发布,是不是也会觉得很不方便。下面,我们一起看看关于自动化部署发布,来帮助我们提高效率
一、关于腾讯云
COS 对象存储(源站)
COS(Cloud Object Storage,对象存储)是一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据
大白话:对象存储就是私人网盘,上传后会生成一个链接
特点:高扩展性、低成本、可靠安全
建议:共有读私有写(只有自己可上传,人人可访问)
CDN
CDN(Content Distribution Network)是一种用于加速内容分发的网络服务。将内容分发遍布全球的边缘节点服务器上,使用户可以就近访问内容,从而提高访问速度和用户体验。
把资源直接放在源站有两个问题:
- 偏远地区用户访问很慢
- 当用户量很大的时候,服务器可能顶不住
访问 localhost 为何可以显示页面
webpack 内部启动了一个 nodejs 提供静态资源服务
生成文件
直接打包的 dist 目录 html 是跑不起来的,因为路径是绝对路径,html 访问不到资源。
可以通过 publicpath 改成“./”
自动化部署
手动部署步骤
- npm run build
- 生成 build 文件夹
- 把文件夹上传到服务器(腾讯云 cos 对象存储目录)
自动部署
- 触发自动(a.代码提交到仓库触发 b.点击某个按钮触发)
- 自动执行手动部署步骤 123
- 访问
部署过程
- 远程有一块空间 linux(空文件夹),可以理解为 vscode 的控制台
- 拉取代码
- 安装依赖
- 确认 node 版本是否支持
- npm run build
- 把静态资源上传到 cdn
二、关于阿里云
Serverless发展过程
一、早期:自建机房
计算机———>服务器(64 核 128G)
缺陷:性能浪费严重,早期用户量不大,服务器只使用很少的性能
二、中期:虚拟机
计算机———>服务器 (64 核 128G, 拆分为 2 核 4G)
示例:阿里云 ECS
好处:相比自建机房的利用率更高
缺陷:购买虚拟机,实际上价格不便宜
利于率依然不高,有可能网站建好之后没人使用,用户量少
三、后期:serverless
计算机———>服务器 (64 核 128G, 拆分为 2 核 4G),2 核 4G 拆分为函数计算
核心价值:按量计费
收费模式:
部署内容为一个一个可执行的函数,按照函数的使用量付费
CPU 的占用率+CPU 的使用时长
计费依据
- cpu 使用
- 网络带宽
nodejs 在阿里云发布
- 进入阿里云函数计算 FC 控制台
- 创建 nest 应用
- 管理 gitee 仓库
可能会遇到的问题
package-lock.json 导致部署失败
如何解决:package-lock.json 文件删除即可
~和^的区别
~会匹配最近的小版本依赖包,比如 ~1.2.3 会匹配所有 1.2.x 版本,但是不包括 1.3.0
^ 会匹配最新的大版本依赖包,比如^1.2.3 会匹配所有的 1.x.x 的包,包括 1.3.0,但是不包括 2.0.0
注意:^版本更新可能比较大,会造成项目代码错误,所以建议使用~来标记版本号,可以保证项目不会出现大问题,也能保证包中的小 BUG 可以得到修复
三、发布流程
前端发布
- 本地 code
- 推送到仓库
- 触发自动化流水线
- 自动上传到 cos
tips: 可以使用腾讯云对象存储及代码库 coding
后端发布(NodeJs)
- 本地 code
- 推送到仓库
- 触发自动化流水线
- Node 服务部署到线上—>读取(前端发布流程生产的 html)
- 提供访问地址(用户最终访问地址)
tips: 可以使用阿里云函数计算 FC 及代码库 gitee