0

我正在寻找有关在使用由自动缩放产生的多个实例时部署 Node.JS 应用程序更新版本的最佳方法的建议。

我的代码托管在 GitHub 上,通常使用 GitHub Actions 进行部署,在特定主机上的 CI 之后推送更新并触发 install/db 更新。

现在我的实例是“变量”,我正在考虑定期进行某种轮询,但这种解决方案不合适,因为它破坏了通常的 CI 过程。

你有什么好的做法来正确设置所有这些吗?

4

2 回答 2

1

您可以在用户数据部分添加脚本来更新或执行任何初始化过程。

您的实例应该能够从 Github 中提取代码,并且 init 脚本将执行必要的操作。注意:用户数据脚本只会在自动缩放组产生新实例后执行。

例如

#!/bin/bash
cd /app;
git pull;
npm install;
pm2 start myapp.js

在此处输入图像描述

于 2020-07-07T11:26:36.953 回答
1

您可以考虑使用CodePipepline(CP)或至少CodeDeploy(CD)。它们似乎非常适合您从 github 进行自动部署的用例。

CP与 GitHub 集成,因此您可以将其设置为自动检测存储库中的更改。根据您的应用程序的具体情况,您可以拥有或不拥有 CodeBuild (CB),以及要部署到您的实例的 CD。

CD与 Auto Scaling Group 集成,因此一旦设置,在组中使用它应该没有问题。

第一次进行时,初始设置可能会很麻烦。但是一旦完成,您将受益于应用程序的自动部署、回滚、通知等。

于 2020-07-07T11:53:09.917 回答