適切なサーバーを選択して単一障害を回避する方法
岔開部署——规避單點故障
同廠商的虛擬主機/VPS,在少數機房的少數幾台物理伺服器上,購買多個小伺服器規避單點故障的效果可能欠佳。除非在機房、廠商甚至星球/星系上進行部署,才能最大限度地規避單點故障。然而,即使這樣做仍不能百分之百保證服務的可靠性。
SLA的重要性
一個伺服器提供方若聲稱能夠實現99.99%的SLA,這在地球上已經算是相當不錯的了。一旦違反了SLA,就會提供給一些補償方案。但實際情況是,即使你使用多台伺服器來規避風險,當發生那0.01%的故障時,多數伺服器可能都會受到影響。這種級別的宕機並非人為因素造成,單服與多服都會面臨宕機的風險。
CDN Always Online
如果你擔心單點故障的話,可以瞭解一下CDN Always Online,或許能導致一些冗然思緒。
經濟性考量
如果你担心经济性,可以考虑拆分小服务器逐个部署单一站点。但是,每个服务器负载极低可能有些浪费。大服会是更好的选择吗?同样会面临类似问题,但你可以安慰自己至少“再加几站就跑上50%了,不亏”。
管理便利性
在像RunCloud这样的工具面前,多个服务器与单服务器的管理成本应该是可控的,但无论如何,单服的管理工作更轻松。如果超过5台服务器,你可能需要专门的DevOp帮助你,或者自己熟练掌握类似Chef/Puppet这样的工具。
买大还是买小?
在云计算中,根本目的在于购买一台足够使用的小服务器(+0.5倍冗余),足够使用就可以运行,需要扩展时再进行升级。好的厂商能够让你从512M内存的VPS(仅作比喻)持续升级到上万块一个月的Dedicated/Bare Metal(同样只是比喻)。留出适量冗余,一旦容量不够再进行升级。成功并不一定需要频繁的故障时间,关键是要有“弹性伸缩”的意识。