0

一些背景:我正在建立一个非常复杂的网站(就使用的堆栈而言)。其他一些较小的组件包括:

  • 弹性搜索
  • 雷迪斯
  • 零MQ
  • 沙发底座
  • 重新思考数据库
  • 通过 Nginx 的流量 -> 节点

目的是运行一个高可用的网站,但同时又非常精简(和低成本)。

我正在考虑的当前拓扑:

  • 2 个具有 DNS 负载平衡的主动/主动配置网络服务器。(Nginx、静态资产服务等+负载均衡到第二层:
  • 2 个应用服务器处于活动/活动状态。像 Elasticsearch 这样的大多数组件都可以自己进行分片/复制,因此设置起来应该不那么难(手指交叉)
  • 复制 Redis 中的会话处理

当然,我希望在出现问题时进行监控和警报,理想情况下,系统应该能够自动处理故障。诸如:将 Redis 从 Slave 提升为 Master,或者甚至初始化一个新的 ec2-instance,如果我要在 Ec2 上的话。

但是,我想摆脱特定托管服务提供商的束缚。我相信(如果错了请纠正)是 Openstack 的用武之地。

是否正确: - openstack 允许我控制我的网站堆栈的整个生命周期(涵盖多个盒子/虚拟机?) - 它是否允许我(当然在配置上工作)启动实例,监控,在出现问题时发出警报,在这些情况下采取适当的措施等?

还是 Openstack 完全是适合这项工作的错误工具?还有什么更适合作为我整个网站之上的“管理层”的吗?

谢谢

4

1 回答 1

0

OpenStack 不是 VMWare ESX。这不是一个非常好的直接简单的虚拟机托管环境。如果您想要的是一种轻松管理虚拟机的方法,我可能会建议 Ganeti。它甚至具有虚拟机的 HA 故障转移。在两个物理主机环境中,这可能是要走的路。

OpenStack 为您提供了 Ganeti 不会提供的 RESTful API。它有 AWS 兼容的 API,但它有更好的 OpenStack API。如果你想自动化弹性或可愈合性,这是巨大的。能够使用现有的客户端 API 在 python 中进行链接,并且只需编写脚本以根据需要启动实例,这就是 joe DevOps 的全部意义所在。

所以我想这取决于你的承诺水平和你需要什么。对于 2 台物理机器,OpenStack 可能不是最好的解决方案。但是,当您的应用程序和虚拟机数量超出您的手动管理范围时,openstack 将帮助您编写代码,让您的数据中心随着旋律翩翩起舞。

于 2013-07-31T20:16:00.613 回答