高可用性系统在大众点评的实践与经验
可用性的理解 理解目标 业界高可用的目标是几个9,对于每一个系统,要求是不一样的。研发人员对所设计或者开发的系统,要知道用户规模及使用场景,知道可用性的目标。 比如,5个9的目标对应的是全年故障5分钟。 拆解目标 几个9的目标比较抽象,需要对目标进行合理的分解,可以分解成如下两个子目标。 频率要低:减少出故障的次数 不出问题,一定是高可用的,但这是不可能的。系统越大、越复杂,只能尽量避免问题,通过系统设计、流程机制来减少出问题的概率。但如果经常出问题,后面恢复再快也是没有用的。 时间要快:缩短故障的恢复时间 故障出现时,不是解决或者定位到具体问题,而是快速恢复是第一要务的,防止次生灾害,问题扩大。这里就要求要站在业务角度思考,而不仅是技术角度思考。 下面,我们就按这两个子目标来分别阐述。 频率要低:减少出故障的次数 设计:根据业务变化不断进行迭代 以点评交易系统的演进过程为例。 幼儿时期:2012年前 使命:满足业务要求,快速上线。 因为2011年要快速地把团购产品推向市场,临时从各个团队抽取的人才,大部分对.NET更熟悉,所以使用.NET进行了第一代的团购系统设计。毕 竟满足业务要求...