部署具有依赖项的应用程序

部署具有依赖项的应用程序

这是非常基本的(也可能非常明显),但它太基础了,上面什么都没有。我在测试时是否像对待我的电脑一样对待远程 Linux 服务器?例如,在我的计算机上安装了 pip,然后使用它安装了 Django 和一个插件。我会通过 ssh 在远程 Linux 服务器上做同样的事情吗?

抱歉,如果这不是一个适合发布此问题的堆栈交换网站,但快速浏览一下所有这些网站,这个网站似乎是最好的选择。

答案1

简而言之,是的。

部署应用程序时,我们通常涉及三台(或更多;见下文)机器:

  • 开发机器
  • 暂存机
  • 生产服务器

在这种非常常见的模型中,开发人员在开发机器上编写代码,将代码更改推送到登台机器进行测试,最后测试后的更改投入生产。

为了将问题降到最低,我们通常希望服务器的配置尽可能的接近一致。

因此,您可以通过 ssh 进入每个系统并在每台机器上安装相同的软件(和相同的更新),但在生产中,您可能拥有多台服务器(例如用于负载平衡)。您可能会发现您的应用程序变得流行,并且您必须扩展到数百或数千台服务器。成为下一个 Twitter 并赚取数百万美元不是很好吗?...(哦,等等。)但是,如果您有几千台服务器,甚至几十台服务器,您就无法再通过 ssh 进入每台服务器来应用更新。

这就是 Puppet 和 Chef 等配置管理系统发挥作用的地方。它们可以帮助您同时将相同的配置应用于大量机器(有关详细信息,请参阅其各自的站点)。一旦您不再需要多台服务器,拥有一个系统来让所有服务器保持同步并更新您期望的软件和您期望的配置将大有帮助。

答案2

我是否可以通过 ssh 在远程 Linux 服务器上执行相同操作?

一般来说是的。

然而。

在服务器环境中,最重要的事情之一是能够以非常可靠且可重复的方式执行配置和部署操作。人类是一种不精确的生物,我们非常不擅长以可靠的方式手动完成任务。这就是为什么我们想出了 Puppet、Chef 和 CFEngine 等配置管理系统。

这些系统允许您以非常可靠的方式将配置部署到您的服务器。此外,将配置部署到 1 台服务器所需的工作与部署到 10,000 台服务器所需的工作大致相同。

我建议您考虑设置配置管理系统,而不是手动通过 ssh 执行任务。

答案3

我认为 Linbit 编写的 MultiSSH 可以帮助您:http://oss.linbit.com/multissh/

相关内容