【问题标题】:How to replicate code changes across multiple AWS instances?如何跨多个 AWS 实例复制代码更改?
【发布时间】:2012-12-13 16:13:25
【问题描述】:

我们在 AWS 中有一个负载平衡设置,有两个实例。我们使用 SVN 进行非常频繁的代码更新。我需要知道更新集群中所有实例的代码更改是多么容易。我们可以简单地做“快照”并每次为实例创建新卷吗?...或者?...

【问题讨论】:

  • 您使用哪种语言?看看 AWS Elastic Beanstalk,我正在使用它,它通过一个 git push 操作自动将您的代码复制到负载均衡器的所有服务器中(请注意,它不适用于 SVN)

标签: amazon-web-services


【解决方案1】:

我不会通过 EBS 快照进行更新。将 EBS 卷视为硬盘 - 如果您的软件有更新,您将不会更改硬盘。

由于您的代码在版本控制系统中,因此代码更新应该非常简单,例如登录到您的(多个)服务器并执行git pullsvn update。这应该从您的服务器获取最新的代码文件。根据应用程序的类型,您之后必须执行一些其他任务,运行构建脚本,清空缓存等。

问题在于这种设置不能很好地扩展。如果您有 n 个服务器,则必须登录并执行此命令 n 次。因此,研究一些您可以一步使用的远程管理工具是有意义的。使用许多这些工具,您还可以获得完整的配置管理堆栈:您为每个服务器定义一组配方或任务(如已安装的包、配置文件、获取最新代码、必要的构建步骤),以及何时启动一个新服务器,它会获取其配置的最新版本并自行安装。

流行的配置管理工具包括PuppetSalt。这两种工具都包含远程执行功能,这将使您更轻松地发布代码库,您只需在主服务器上触发一个命令,它就会自动在其所有仆从/从服务器上执行此任务。

【讨论】:

  • 对于使用 github 和 ec2 的初学者来说,有什么好的教程吗?我创建了一个私人仓库,只是不确定如何准确执行上述“git pull”来获取代码更新并将它们放在实例上
  • 看看这里 - 如果你玩过 git 一段时间,你会很快习惯工作流程:sixrevisions.com/resources/git-tutorials-beginners
猜你喜欢
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-03
  • 1970-01-01
  • 2015-11-01
  • 2017-10-06
相关资源
最近更新 更多