在节点上部署分布式应用程序的最佳策略

这是关于部署和维护节点的一般问题。 我不是系统pipe理员。

我正在考虑以下“天真”的策略:

  1. select一个Linux的味道,坚持下去。
  2. 用我的linux风格创build一个图像。
  3. 在图像上安装我的应用程序,脚本和所有软件包。
  4. 去除所有不必要的包和应用程序
  5. configuration安全性(阻塞端口,监控工具)。
  6. 备份我的图像。
  7. 必要时在每个新节点上复制我的图像。
  8. 安装安全更新(最终创build我的映像的更新版本)。
  9. 运行设置脚本+configuration。

这是常见的做法吗? 有更好的策略吗? 还有什么额外的angular度我应该考虑?

听起来你是基于云计算解决scheme的主要候选人。 我会调查使用像亚马逊的EC2,它自动化你列出的所有步骤,点击一个button。 不要把自己限制在EC2之外,那里有很多竞争对手。

但是,是的,总之,这是一个相当普遍的做法。

您可能会修改步骤1.您正在限制您的客户群。 你可以限制支持的分布集,但是我不会去做一个。

对于应用程序分发,我将以节点的操作系统本地格式提供软件包。 应用程序更新将是一个简单的软件包更新,然后在系统pipe理员就像它很容易。

如果你想准备一个整体的环境,从操作系统级别起,你有两个select。 您可以使用选定的格式(或格式)准备虚拟机文件。 那么你将不得不准备整个环境,从操作系统起。

或者你可以准备一个自动安装的系统/映像(使用发行版的本地非交互式安装系统,或者将其与例如xCat结合),这将部署一个完整的操作系统,configuration它,然后加载你的应用程序。

您可以尝试像支持PXE多播分发的SystemImager ,甚至是BitTorrent协议来分散更改。 如果你需要一次产生许多节点,那么你应该注意,如果你不注意的话,你可以把一些交换机/路由器放在膝盖上。

添加木偶或厨师的混合pipe理包/configuration文件/网站,你应该没问题。