应用部署全解析:从基础到自动化
1. 部署基础与依赖管理
1.1 避免依赖外部服务
在部署过程中,尽量不依赖外部服务,因为有时库可能在特定时刻不可用。将 vendor
文件夹包含在仓库中存在一些缺点:
- 仓库需要存储已经在 Composer 上存储的库,如果需要很多或大的库,所需空间可能成为问题。
- 存储的代码并非自己的。
1.2 Composer 在生产环境中的应用
第二种部署工作流有两种不同的方式,但都不需要在仓库中存储 vendor
文件夹,代码部署到生产环境后,会从 Composer 获取库。代码部署到生产环境后, composer update
命令会在部署过程中手动或自动执行。
运行 Composer 在生产环境中的优点:
- 节省仓库空间。
- 可以在生产环境中执行 --optimize-autoload
以映射添加的库。
缺点:
- 部署过程将依赖外部服务。
- 更新包时在某些情况下存在重大风险,例如,如果一个库突然被修改或损坏,应用程序将崩溃。
1.3 前端依赖管理
前端也可以进行依赖管理,可以选择是否将其放在仓库中。Grunt 和 Gulp 是应用中最常用的自动化任务工具。如果基于微服务的应用有前端部分,应使用以下工具来管理样式和资产。
1.3.1 Grunt
Grunt 是用于自动化应用任务的工具,可帮助连接或缩小 JS 和