Web 持续集成、部署与性能优化
代码是如何部署成一个服务的
npm run build
:构建成可以执行的文件npm run test
:代码测试
持续集成GitHub Actions
代码提交到Github就自动完成部署和测试
软件构建与部署
真实生产中不希望通过源代码执行(防止泄露源码)package.json
:npm的入口bootstrap.js
:应用的入口
软件部署-pm2
pm2 start ./bootstrap.js --name [backend]
- 简单易用
- 进程管理
- 自动重启
- 运行诊断
- 资源限制
软件部署-pkg
把源码和运行时环境打包生成.exe
优点:
- 部署简洁
- 无需环境
- 易于分发
缺点:
- 平台依赖
- 全量更新
软件部署-docker
基于docker的部署
dockerfile -> Image <-> DockerHub
Image -> Container(一个Image的实例)
Image里就包含有运行时环境
优点:
- 环境隔离
- 轻量
- 可移植
- 版本控制
- 可复现
- 便于扩展
缺点:
- 资源消耗
- 维护复杂
一体化部署
前端和后端都部署在同一个服务器上