dong-frank的博客

Web开发基础 2024.7.23

字数统计: 269阅读时长: 1 min
2024/07/27

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里就包含有运行时环境
优点:

  • 环境隔离
  • 轻量
  • 可移植
  • 版本控制
  • 可复现
  • 便于扩展

缺点:

  • 资源消耗
  • 维护复杂

一体化部署

前端和后端都部署在同一个服务器上

CDN + Server

CATALOG
  1. 1. Web 持续集成、部署与性能优化
    1. 1.1. 代码是如何部署成一个服务的
      1. 1.1.1. 持续集成GitHub Actions
      2. 1.1.2. 软件构建与部署
      3. 1.1.3. 软件部署-pm2
      4. 1.1.4. 软件部署-pkg
      5. 1.1.5. 软件部署-docker
      6. 1.1.6. 一体化部署
      7. 1.1.7. CDN + Server