今天中午开始,某知名旅行类网站出现了长时间的服务不可用状况。本文尝试从技术方面分析其可能遇到的问题,并提出一些解决方案。
互联网上的外部级别,特别是 APT 的出现频率在最近几年逐年上升。由于本次被的公司最近在资本市场上有所动作,收购了同行业另一家公司的部分股权,因此,不能排除外部者通过 APT 的方式进入内部进行,制造新闻事件并影响开盘时的股价。尽管利空消息下,投资者有抛售相关股票的倾向,但可通过观察分析近期买卖行为的方式证明并找出潜在的相关负责人。
不过,从行为上看,尽管这是一个有价值目标,为了达到造成超过 6 小时完全宕机的目标,需要的准备工作以及背后的技术支持并非脚本小子就可以办得到。在短时间之内做出决定、组织并成功攻陷的可能性不高。
内部是最难防范的、也是级别最高的。由于内部人士有信息,在配合得限或发现相应漏洞时,很容易造成有影响力的事件。此种内部的可能性,更大来自运维团队。
假设运维团队有 1/2 的决定进行一次内部,则此团队有很大的机会在短时间之内做好相应准备,首先关闭日志以及审计系统,其次线上,再进行源代码管理服务器,很容易便可造成几乎不可逆的。尽管动机有待商榷,但并不能排除内部的可能性。
PEBKAC 错误是常见的错误。尽管可能,考虑到该网站的业务量以及雇员规模,其几乎没有可能使用单服务器部署应用。但观察到的错误状况是几乎所有的服务全部下线,因此,单台服务器误操作导致的灾难是几乎没有可能的。
一种灾难发生的可能是 cascading ilure。假设运维团队在发布版本时,发布了错误的配置文件,尽管这种分发是在可控状况下进行的,但因为系统在低发布率时崩溃有自愈能力,在更高百分比的发布时,由于可用系统的负载更大,导致可用系统退出服务,最终导致所有可用服务均退出服务,服务宣告彻底不可用。
考虑到此公司业务的复杂性,并观察到其技术栈是大部分基于西雅图郊区某公司的技术构建的,巅峰小保姆几乎可以肯定的是,部分中间件的支持实际上是依赖外部技术支持的。若是中间件或是第三方 vendor 提供的组件导致错误,很可能本地团队无法做到及时响应。事件发生时大约是太平洋时间下午 9 点,此时的技术支持很大可能是在印度或是进行的。作者的行业从业经验表明,印度技术支持在很大程度上是无法很快解决技术问题的。若是本地团队没有对应对灾难做出 playbook,则很有可能在生产故障时束手无措。
尽管听起来不可思议,但在实践中,不少企业并未建立起一套检验过的备份系统。备份的意义在于危急时刻可以快速恢复或重建生产系统。在企业网络中,经常出现的问题实际上是:
传统上,磁带因其低造价以及高存储密度使其成为了理想的备份介质。然而,这种传统备份介质的几个致命缺点经常使其内含的数据变得不可存取:
此外,磁带备份介质本身一般存储于磁带仓库中,从仓库检索出所需的备份磁带、转移至数据中心并重新加载数据的时间消耗通常也是客观的。
即使有一套完善的备份系统,备份系统仍然是不能抵挡所有的意外事故的。2014 年, Samsung 数据中心的一场大火使其云服务暂停服务。如果没有异地备份,这场大火将使其本地备份的恢复变得极为困难。
对于突发性事件来说,尽快恢复,或者是持续的提供服务常重要的。本月,某知名支付公司因数据中心网络连接性故障导致了一段时间的服务中断。如果有更好的冗余方案,此种事故的影响面将会得以降低,甚至会化解为用户不可的内部事故。
冗余常常见的做法。例如,大部分服务器都有两部的 PSU,任意一部 PSU 失效均不会影响其正常服务;一般来说,服务器的两部 PSU 将连接到两不同的电或不间断电源上以避免市电失效;数据中心的电源一般同时配备 UPS 以及柴油发电机以避免发电公司未通知的停止供电服务导致的服务中断。网络亦然;同时接入多 ISP 线,并对其进行布线,同时在多线上宣告地址,便可使网络服务的鲁棒性更高。
在系统的视角上,只有同时配置备份以及冗余方案,才可以最大限度的提高可用性,避免非可控因素导致的长时间服务中断。
本文由来源于财鼎国际(http://cdgw.hengpunai.cn:27531/)