一 深入理解稳定性与高可用性
稳定性与高可用性是老生常谈的两个词。凭借经验和感受我们知道,提高系统的这两项指标,系统会更加健康,产品也会有更好的用户体验。但是如果要给稳定性和高可用性下一个定义该如何表述?稳定性和高可用性这二者又有何区别和联系?我认为首先要理解好这两个问题,才能够设定清晰的目标,系统地制定完整可行的方案。
在维基百科上搜索稳定性,定义如下:
稳定性是数学或工程上的用语,判别一系统在有界的输入是否也产生有界的输出。若是,称系统为稳定;若否,则称系统为不稳定。
再看看高可用性的:
高可用性(英语:high availability,缩写为 HA),IT术语,指系统无中断地执行其功能的能力,代表系统的可用性程度。是进行系统设计时的准则之一。高可用性系统与构成该系统的各个组件相比可以更长时间运行。
首先从稳定性的定义中提炼出关键的词语 -- 系统、输入、输出。在蚂蚁当下的技术架构中,可以把一个应用当做系统,应用之间的服务请求为输入,服务响应为输出,当服务响应符合预期时认为应用系统是稳定的。当他们相互组合形成一个更大的系统,作为业务产品对用户表达时,用户的请求作为输入,产品的表达作为输出,当产品功能正常运行时可以认为产品系统是稳定的。综上,关于稳定性的定义我们可以总结归纳为 -- 当系统接收输入