结论

结论

昨天,Rackspace DFW 数据中心停机了几个小时,让我开始考虑是否要采取延迟行动来改善那里的服务器结构。到目前为止,我一直在使用单个 CentOS 实例来处理我的 PHP+MySQL 应用程序的基本 LAMP 设置。所以昨天我的应用程序连续停机了三个多小时,这太糟糕了。

我想到:

  • 拥有至少两个实例来处理分布在至少两个数据中心(无论是否为 Rackspace)的应用程序。
  • 拥有至少两个 MySQL 主/从配置实例来托管数据,分布在至少两个数据中心。
  • 在应用程序实例前面放置一个负载平衡器,以避免处理 DNS 传播,并且能够随意添加或删除应用程序实例。

我的问题是:

  • 以上三项措施听起来怎么样?还可以做些什么?
  • 实现这些无停机时间的最佳方法是什么?
  • 如何处理代码部署
  • 您能推荐一些书籍/白皮书/等等来帮助我吗?
  • 奖励:怎么做?:P

答案1

结论

@HTTP500 说得对:可扩展性并非易事。即使一切都基于 EC2 LoadBalancer 等基础设施工具,您仍然需要一小队专家来操作它。

LAMP 网站托管的高可用性

假设您想要确保能够快速扩展 X 个网站展示次数。但为了帮助您,确实需要有关您的应用程序的更多信息。我仍然建议您查看以下团队提出的解决方案阿玛齐堡垒兔子, ETC。

给你一些想法“入门”以下是一张图表(由阿玛齐):

LAMP HA 方案

Scheme 很好地说明了如何处理 HTTP 请求(从负载均衡器开始)。这样的解决方案需要很多良好的规划,这将帮助您决定是否仍然要这样做。

要实现原始的乒乓和重生 - 您将需要心跳故障转移。我建议尝试http://www.keepalived.org/. 对于您的 LAMP,您可以拥有以下类别的 VM 实例:

  • 负载平衡器(就像图上一样 - 我建议ngnix,由一个俄罗斯聪明人撰写)
  • Apache(PHP 应用程序网络服务器)
  • Memcache 或其他类型的缓存服务器(如果您的应用程序能够识别 memcache,那么它会变得更加智能)
  • 类似 NFS 的文件系统,但不是 NFS!GlusterFS 是一个很好的候选者。
  • Mysql 从-主数据库集群

如您所见,您必须自动化监控,即执行类似基于 keepalive 的脚本,以确保所有实例都处于活动状态。该脚本可以检查每个实例的毫秒“可用性分数”。

附言

继续幻灯片http://www.slideshare.net/AmazeeAG/php-high-availability-high-performance 希望这能让您更深入地了解如何实施您正做的事情。

相关内容