【问题标题】:deploy front-end applications behind apache在 apache 后面部署前端应用程序
【发布时间】:2018-05-14 19:36:04
【问题描述】:
我有一个电子商务网站,它在同一个域上有多个前端应用程序,其中 3-4 个应用程序是用 Angular4 编写的,2-3 个应用程序是用 Angular1.2 编写的,很少有应用程序是纯 TypeScript 应用程序。所有应用程序都由 NPM 构建。
我有几个问题/疑问:
- 我应该单独部署每个应用程序吗? (在每个环境中部署都需要花费大量时间)。
- 在环境中部署时,我应该构建一次还是每次构建。 (生产服务器上的 npm install/build 可能会失败)。
- 如何发布版本以及存储在哪里? (可能是 git 和 git 标签)
- 我们还有其他Java应用,在jenkins中配置,有发布流程,易于维护。我们如何才能为前端应用程序提供相同的模式。
【问题讨论】:
标签:
node.js
angular
jenkins
devops
rundeck
【解决方案1】:
我认为一次(一次)部署所有应用程序是一个错误的决定。
我建议您在 Git 上使用持续集成 (CI) 和持续部署 (CD)。
以 GitHub 为例,你可能会注意到很多项目都在使用travis continuous integration。它可以帮助他们在每个 git push(或 Pull 请求)上运行所有测试,并且会减少错误。
GitLab 提供完美且免费的CI and CD 工具,易于使用和设置。
使用 Gitlab CI 和 CD 肯定有不同的方法,但是您应该定义一些不同的阶段和作业来运行您的应用程序测试,然后使用 SSH 在您的服务器上运行部署脚本,您可以使用 GitLab 变量来定义您的服务器密码和其他信息,它们在那里是安全的。
并且您可以拥有一个受保护的分支(比如说 production 分支),并且只有您或其他一些受信任的开发人员可以推送到它,在 production 分支发生的每个推送或合并操作上,@您已经在 GitLab CI 和 CD 工具上定义的 987654325@ 作业将运行,并且在所有测试成功通过后,它将运行部署脚本。
显然,您的每个项目都应该有自己的存储库,这样可以更轻松地在不同时间部署它们。