使用 AWS Auto-Scaling 更新 Node.JS 个应用程序
Updates on a Node.JS application with AWS Auto-Scaling
我正在寻找有关在使用由自动缩放生成的多个实例时部署 Node.JS 应用程序更新版本的最佳方式的建议。
我的代码托管在 GitHub 上,通常的部署是使用 GitHub 操作进行的,在特定主机上 CI 之后推送更新并触发 install/db 更新。
现在我的实例是“变量”,我正在考虑定期进行某种轮询,但这个解决方案不合适,因为它打破了通常的 CI 过程。
您有什么好的做法可以正确设置这一切吗?
您可以在 user-data 部分添加脚本来更新或执行任何初始化进程。
您的实例应该能够从 Github 中提取代码,并且 init 脚本将执行必要的操作。
注意:用户数据脚本只会在自动缩放组产生新实例后执行。
例如
#!/bin/bash
cd /app;
git pull;
npm install;
pm2 start myapp.js
您可以考虑使用 CodePipepline
(CP) 或至少 CodeDeploy
(CD)。它们似乎非常适合您来自 github.
的自动部署用例
CP integrates with GitHub 这样您就可以将其设置为自动检测存储库中的更改。根据您的应用程序的具体情况,您可以使用或不使用 CodeBuild (CB) 以及要部署到您的实例的 CD。
CD integrates with Auto Scaling Group,这样设置好了,在群里使用应该没有问题
第一次进行时,初始设置可能会很麻烦。但一旦完成,您将获得 好处 自动部署您的应用程序、回滚、通知等。
我正在寻找有关在使用由自动缩放生成的多个实例时部署 Node.JS 应用程序更新版本的最佳方式的建议。
我的代码托管在 GitHub 上,通常的部署是使用 GitHub 操作进行的,在特定主机上 CI 之后推送更新并触发 install/db 更新。
现在我的实例是“变量”,我正在考虑定期进行某种轮询,但这个解决方案不合适,因为它打破了通常的 CI 过程。
您有什么好的做法可以正确设置这一切吗?
您可以在 user-data 部分添加脚本来更新或执行任何初始化进程。
您的实例应该能够从 Github 中提取代码,并且 init 脚本将执行必要的操作。 注意:用户数据脚本只会在自动缩放组产生新实例后执行。
例如
#!/bin/bash
cd /app;
git pull;
npm install;
pm2 start myapp.js
您可以考虑使用 CodePipepline
(CP) 或至少 CodeDeploy
(CD)。它们似乎非常适合您来自 github.
CP integrates with GitHub 这样您就可以将其设置为自动检测存储库中的更改。根据您的应用程序的具体情况,您可以使用或不使用 CodeBuild (CB) 以及要部署到您的实例的 CD。
CD integrates with Auto Scaling Group,这样设置好了,在群里使用应该没有问题
第一次进行时,初始设置可能会很麻烦。但一旦完成,您将获得 好处 自动部署您的应用程序、回滚、通知等。