Ana*_*oly 6 scaling mysql-management high-availability ruby-on-rails amazon-web-services
我们有一个基于Rails的应用程序,部署基础架构绑定到AWS.当前架构包括以下层:
有3个SPF:负载均衡器,数据库,媒体服务器.
我的问题是关于冗余,我如何减少SPF:
小智 6
我喜欢这些问题,因为它们总是看起来如此简单,但事实上它们并非如此.
对于初学者来说,你的BIGGEST SPF就是所有东西都在亚马逊上.我喜欢AWS有很多原因,但在所有你需要真正可用性的情况下,你实际上是100%依靠它们来自我攻击.因此,您的第一个计划应该是将您的服务分发给多个提供商(云,VPS或专用).
我想问你一个问题:如果AWS发生故障,你需要多长时间/可以/将会注意到它,然后对它做些什么,以及你需要多快恢复和运行你的服务?
我问的原因是:A/AAAA记录的DNS负载平衡是一个很好的解决方案,遗憾的是,您无法使用SRV/MX记录设置权重或优先级.这意味着如果AWS完全不可用,您必须快速实现DNS更改才能删除IP.这CAN如果你的DNS提供商有一个API,它允许自动化.另一方面,DNS缓存在很多地方执行,可能不值得进行DNS更改,这意味着如果1个IP不可用,您将拥有50%到100%的可用性(假设您有2个A记录),因为有些浏览器能够尝试第二个IP,如果第一个不起作用.
在我看来,考虑到AWS的出色正常运行时间,您可以毫无错误地为您的域分配2个不同的IP(在2个不同的提供商上).我认为当1 IP下降时,它比0%的可用性更好,但是失去50%的请求仍然没有乐趣.
您可以在每个提供程序上拥有2个负载平衡器,并在某些实例/服务器关闭时让它们将请求转发给其他提供程序.换句话说,您只需要BOTH提供商的功能负载均衡器和ONE提供商的功能服务器/实例.确保选择对AWS没有太多延迟的备用提供商;)
MMM也是一个很棒的工具,但它与Rails没有任何关系.我个人喜欢将负载平衡器在我所有的数据库服务器的前面,让他们去处理谁得到的请求等.由于数据在数据库服务器上是非常重要的,它通常是最好有它一个人的外观和确保一切好的,当有问题,而不是让工具管理其可用性,配置等.MMM在许多情况下工作,也许你应该尝试它,看看它是否满足你的需求.我不能说任何坏事.
我对Wowza媒体服务器并不熟悉,但快速搜索解释了一些事情.由于Wowza使用RTSP(UDP 和 TCP),因此HAProxy 不是解决方案,因为它只执行TCP.另一方面,Keepalived可以执行UDP负载平衡(它使用IVPS/LVS).实际上,如果您有长查询,Keepalived也应该用于数据库从属负载平衡.
最后需要注意的是,有许多方法可以"推出自己的"类似AWS的服务,例如S3存储.如果您想避免使用SPF但仍需要与AWS服务相同的功能,则应考虑运行开源变体,例如Eucalyptus/Cloud.com/Openstack/GlusterFS.设置所有这些内容涉及很多工作,但是当你可以说:"那么如果X提供商关闭,Y可以接管",你会很高兴.
| 归档时间: |
|
| 查看次数: |
2222 次 |
| 最近记录: |