多节点SOA应用程序的配置管理

Fre*_*edM 1 puppet chef-infra continuous-deployment continuous-delivery

所以这似乎是当今软件中的常见问题.许多公司似乎使用AWS,Azure或Heroku等云平台解决了这个问题.但是,对于需要私有云的数据安全性,这些选项似乎不太发达.

详细说明,我的特殊需求是管理独立于节点(物理/虚拟服务器)的应用程序.目前我们使用Chef,这似乎不太适合这项任务.在Chef中,我需要在环境中的每个单独节点上都有一个运行列表.当我有一个依赖于许多不同服务的SOA应用程序时,由于显而易见的原因我不希望在同一节点上安装这些服务,所以Chef不能给我这个.我必须手动完成.我必须在内部记录所有依赖项,并且有人必须在为每个节点创建运行列表时做出决定.没有多节点类型配置选项(在环境变量之外)或自动方式跨多个节点安装我的服务.

这似乎是一个普遍的问题,我不得不相信我只是缺少一些东西.必须有一个工具,让我比私有云更容易管理私有云上的SOA应用程序.

有谁知道这样的工具?对我来说,厨师如此受欢迎并且没有这个功能似乎很疯狂.我想假设Puppet或其他工具,但与Chef不同,我想在我深入尝试使用它之前先了解.

要在Chef条款中压缩我想要的东西:

我想要映射到封装应用程序的环境的角色.我想在环境中运行安装,而不是单个节点.在内部,配置管理软件将对哪个节点实际安装服务做出某种明智的决定,并相应地更新服务依赖性(例如,通过环境变量).

换句话说,我希望CD成为托管在私有云上的SOA应用程序的CD; 不是我与Chef一起进行的半手动,大部分不连续交付的黑客行为.

如果有人从opscode那里(或其他厨师粉丝),我很乐意承认我可能没有使用所有厨师必须提供的,在这种情况下,我想知道当前使用它的人是如何处理我的具体问题.

此外,如果重要的话,我的所有服务器都是Windows 2008 R2或Windows 2012.

wra*_*ler 5

这确实是一个常见的问题,并且葡萄藤上的暗示似乎暗示Opscode(现在我称之为Chef)已经意识到这一点并且正在研究解决方案.希望这是我们在Chef 12中看到的东西.

问题是Chef是一个配置管理系统.它不是严格意义上的配置或编排产品.刀试图解决这个问题,但规模极其简陋.其他产品,如Ansible和Puppet,更有能力解决这个问题.但同样,即使它们也不是严格的编排产品,但仍然不足.

我自己没有机会使用它,但你应该查看http://deis.io/.它是一个开源的,轻量级的平台即服务,似乎解决了编排问题.它可能就是你要找的东西.

另一个选择是使用https://github.com/coreos/etcd之类的东西进行库存管理.它允许您拥有一个非常灵活的集中式系统库存API,并提供超过Chef自己的搜索数据.有了它,您可以编写食谱来查找其他系统和服务,并采取措施连接它们.它开始变得很好,但是你总是可以让Chef执行一个ssh命令来执行远程实例上的命令.

无论如何,只是几个建议.希望有所帮助.