昀哥@老兵笔记

2020农历新年开局不容易,新冠肺炎仍在攻艰克难阶段。回首过去的9102年,总有一些事主要是事故值得去记录。下面我们来盘点一下9102年的“外部事故”。

一,我们遭遇的IT基础设施服务事故

2019年是IT基础设施服务相对黑暗的一年。各种灾难性事件高发,我们所依赖的多家公司的关键服务不可用时间突破SLA四个九(即一年52分钟)。下面我们回顾一下:

  1. 阿里云:2019年3月3日,凌晨0点开始,阿里云华北二机房可用区C部分ECS服务器等实例出现IO HANG,导致托管业务的所有服务器资源使用率100%且均无法登录,业务中断长达3小时。

  2. 中国移动:2019年3月15日,由于中国移动的物联网集中化系统(CMIOT)凌晨部署架构优化(第二批)割接上线,从7点11分开始影响全国大面积物联网卡使用,于7点30分开始逐步恢复服务,但由于数千万张物联网卡排队接入,直至上午11点才缓解。

  3. 银联、网联和微信支付:2019年3月23日,14点42分左右,银联和网联(两个清算机构)与微信支付上海机房的物理连接被挖断了,虽然他们快速切换了备用线路,但下游业务均受到了影响,所有交易(支付宝、微信支付、云闪付)都在抖。

  4. 114DNS:2019年4月4日,10:30~12:30,114 DNS和谷歌DNS 8.8.8.8 相继挂了。

  5. 上海移动:2019年5月29日,11:10~11:20,上海移动网络出现异常,网络和通话均受到影响,上海地区一度无法线下收单。

  6. 支付宝:2019年12月5日,16:23~16:45,支付宝出现全网故障,系统报错“010002:系统异常”陡增,历时22分钟。全网均有感知,新闻报道“支付宝崩了”。

  7. 阿里云:2019年12月6日,部分用户反馈阿里云华北、华东地域部分网络出现异常,影响部分云资源访问。

二,IT大厂事故

每年IT大厂都会飞出各种妖蛾子,下面我们盘点一下2019年到2020年春节前的IT大事故:

  1. MongoDB:2019年1月,网络安全人员Bob Diachenko在推特上爆料,深网视界的MongoDB数据库在公网上“裸奔”,允许完全访问,全球新闻界随后大举跟进了这起大规模数据泄露事件,该数据库包含256万条以上的个人信息记录,涉及身份证号码、签发和到期的时间、性别、国家、地址、生日、护照照片、雇主以及基于摄像头所记录的过去24小时内经过的地点信息,约668万条记录。

  2. 拼多多:2019年1月20日,拼多多一个100元无门槛优惠券(对应于一个已过期的运营活动)由于操作失误,导致凌晨又重新上线,从凌晨1点到10点,整整9个小时,羊毛党徒们狂欢,据信拼多多损失高达数千万元。

  3. Facebook:2019年3月22日,据匿名内部员工透露,从2012年至今,有将近2~6亿Facebook用户的账户密码可能是以纯文本形式存储的(即明文存储),并且可被2万多名Facebook员工搜索。

  4. AWS:2019年3月22日,前AWS网络工程师Thompson利用AWS的“配置漏洞”或“防火墙设置错误”,入侵了AWS客户美国第一资本银行(Capital One Financial)的S3 Bucket(存储桶)并下载了其中的内容,她还尝试利用 IPredator 的 VPN 和 Tor 来隐藏入侵痕迹。她将数据发布在其Github账号内,并在推特上吹嘘她持有这些客户隐私数据。

  5. AWS:2019年10月22日,亚马逊的AWS DNS 服务器遭遇猛烈而持久的 DDoS 攻击,攻击持续了15个小时!

  6. ES:2019年12月,还是Bob Diachenko宣布发现了一个巨大的、可公开无密码访问的ElasticSearch数据库,包含超过27亿个电邮地址,其中有10亿个的密码都是简单的明文存储,这种情况很像是原本买下了该数据库的某人本试图启动其搜索功能,却被错误配置成了公开可用。

  7. 京东:2020年1月8日,估计是误操作把京东自营小家电品类上到了200元无门槛券的适用区域里,时间长达五十分钟,据信涉及24万笔低价订单,预估商品金额7000万。

三,我们遭遇的各种外部软件缺陷事故

常在河边走,难免会湿鞋,用第三方软件用的久了,也会多多少少遇到它们的致命缺陷:

  1. Docker资源感知问题:2019年1月,我们发现在阿里云上搭建的容器集群上,各种Java应用的Docker容器实例会间歇性地被 SIGKILL(signal=9)。原因是Docker容器利用CGroup对进程使用的资源进行限制,而在容器中的JVM依然会利用宿主机环境的内存大小和CPU核数进行缺省设置,这导致了JVM Heap的错误计算。我们做了两个措施来规避Docker OOM Killer:1)开启CGroup资源感知,目的是将heap堆内存和容器限制的内存设置成相同大小,2)将容器内存限制由2.5G调整为3G(注:2G(heap空间)+1G(额外) =3G),同时建议使用SpringBoot,它比较轻量,占用资源比较少,目前我司部分工程使用SpringCloud 设置为1G(heap空间)+1G(额外)=2G。

  2. 阿里云镜像问题:2019年4月15日以及25日,我司在阿里云华北和华东机房的几台宿主机都曾突然出现IP地址缺失,导致上面跑的服务全部失联。此乃阿里云镜像的bug,对应于它的《KB:94181:检查与修复CentOS 7实例和Windows实例IP地址缺失问题》。我司随后检查所有机房并都通过脚本修复了。

  3. Consul缺陷:2019年6月18日,有关键业务突然告警说它在nginx的注册地址1.1.1.1注册失败。原因是在内部容器注册的流程中,consul-template程序将consul中的数据读取出来,再写入nginx的upstream模块的配置中,但如果consul-template读取不到数据,则它会将默认地址1.1.1.1写入到upstream模块的配置中,从而为事故埋下了隐患。Consul官方已经在0.9.0以上新版本中修复此问题,我司随后逐一升级了所有机房的consul服务。

  4. OKHTTP缺陷:2019年7月,据现场端反馈,即使在网络正常的情况下,也会有个别设备会在某个时段内出现支付缓慢,多笔交易连续失败的情况。原因是如果OKHTTP第一次出现SocketTimeoutException,后续即使网络已经恢复正常,请求也始终返回SocketTimeoutException,必须等到多活域名切换、重新连接WiFi,或重新启动应用程序才能恢复正常。此问题尤其是在4G网络下比较常见,官方未解决。我司只能在全局ResponseError监听器里,如果发现出现SocketTimeOut就清空连接池,并持续关注此issues修复状态,及时更新。

  5. MySQL缺陷:2019年8月12日,数据中心的主从数据库宕机。原因是innodb做table truncate时候,要把属于这个table的表空间文件的所有的页刷盘并从buffer pool中去掉。代码中的判断应该存在问题,触发了实例crash。后续已将MySQL版本升级至较新版本5.7.27,同时将数据中心的数据库报表库和其他关键业务库拆分到不同实例,减小影响面。

-END-

感谢阅读老兵笔记,祝百病不侵鼠你健康!

2019年IT事故盘点【IT必读】的更多相关文章

  1. 美国权威媒体CRN预测:2020年值得关注的10个新兴云计算趋势

    云计算在过去一年里极速发展,其速度之快,让人难以预测未来会发生什么.即使依照这些趋势而新发明的技术在不断变化并且极其脆弱,而推动这些趋势和技术不断发展的企业和组织最终也很有可能发生变化,但不妨碍这些大 ...

  2. 全面盘点当前Android后台保活方案的真实运行效果(截止2019年前)

    本文原作者“minminaya”,作者网站:minminaya.cn,为了提升文章品质,即时通讯网对内容作了幅修订和改动,感谢原作者. 1.引言 对于IM应用和消息推送服务的开发者来说,在Androi ...

  3. 年度Java技术盘点,懂这些技术的程序员2019发展大好

    与一年前一样,Java仍然是最流行的编程语言.据TIOBE的数据显示,几十年来,Java比其他语言更常名列榜首,Java因为它拥有可移植性.可扩展性和庞大的用户社区,所以许多知名互联网公司使用Java ...

  4. 深度学习论文TOP10,2019一季度研究进展大盘点

    9012年已经悄悄过去了1/3. 过去的100多天里,在深度学习领域,每天都有大量的新论文产生.所以深度学习研究在2019年开了怎样一个头呢? Open Data Science对第一季度的深度学习研 ...

  5. VS Code 成主宰、Vue 备受热捧!2019 前端开发趋势必读

    前端在生产和开发中占据着越来越重要的地位,PC 端.手机端.桌面端.智能手表端等等设备都离不开前端的身影.本文将围绕框架.编程语言.工具.React.Vue 等方面,全面回顾 2019 年前端与 We ...

  6. 2019年java技术大盘点

    福州SEO:2019年互联网企业在Java开发中有哪些主流.热门的IT技术呢,下面让我们来看一下. 微服务技术 微服务架构主要有:Spring Cloud. Dubbo. Dubbox等,以 Dubb ...

  7. Python分析盘点2019全球流行音乐:是哪些歌曲榜单占领了我们?

    写在前面:圣诞刚过,弥留者节日气息的大家是否还在继续学习呐~在匆忙之际也不忘给自己找几首好听的歌曲放松一下,缠绕着音乐一起来看看关于2019年流行音乐趋势是如何用Python分析的吧! 昨天下午没事儿 ...

  8. 2019收藏盘点(编程语言/AI/面试/实用工具)

    2020.1.5更新 我看过的后面会加上评价 编程学习 java开源项目汇总: https://github.com/Snailclimb/awesome-java 大数据学习入门: https:// ...

  9. 2018 AI产业界大盘点

    2018  AI产业界大盘点 大事件盘点 “ 1.24——Facebook人工智能部门负责人Yann LeCun宣布卸任 Facebook人工智能研究部门(FAIR)的负责人Yann LeCun宣布卸 ...

随机推荐

  1. 快乐编程大本营【java语言训练班】第5课: java的数组编程

    快乐编程大本营[java语言训练班]第5课: java的数组编程 第1节. 声明数组变量 第2节. 创建数组对象 第3节. 访问数组元素 第4节. 修改数组元素 第5节. 多维数组 学习地址如下:ht ...

  2. Bash 脚本中的 set -euxo pipefail

    有些开发人员会用Bash来实现很复杂的功能,就像使用别的高级语言一样.他可能觉得自己很牛逼但其他人早就想锤爆他了,Bash的可读性和可维护性远远低于任何高级语言.更要命的是,Bash并没有方便的调试工 ...

  3. Python 语言规范(Google)

    Python语言规范 Lint tip 对你的代码运行pylint 定义: pylint是一个在Python源代码中查找bug的工具. 对于C和C++这样的不那么动态的(译者注: 原文是less dy ...

  4. Codeforces 1064D Labyrinth(双端队列BFS)

    题意: 给一个图,"*"不可以走,给你一个起点,限制向左走L次,向右走R次,上下不限制,问你最多可以走到多少个格子 思路: BFS,每次将上下走的策略加入队首,左右加入队尾,(相当 ...

  5. A simple way to monitor SQL server SQL performance.

    This is all begins from a mail. ... Dear sir: This is liulei. Thanks for your help about last PM for ...

  6. webpack chunkFilename 非入口文件的命名规则 [转]

    官网的文档只理解了filename是主入口的文件名,chunkFilename是非主入口的文件名 filename应该比较好理解,就是对应于entry里面生成出来的文件名.比如: { entry: { ...

  7. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第六节:反爬策略研究

    之前的章节也略有提及反爬策略,本节,我们就来系统的对反爬.反反爬的种种,做一个了结. 从防盗链说起: 自从论坛兴起的时候,网上就有很多人会在论坛里发布一些很棒的文章,与当下流行的“点赞”“分享”一样, ...

  8. 编译原理实验之SLR1文法分析

    ---内容开始--- 这是一份编译原理实验报告,分析表是手动造的,可以作为借鉴. 基于  SLR(1) 分析法的语法制导翻译及中间代码生成程序设计原理与实现1 .理论传授语法制导的基本概念,目标代码结 ...

  9. 使用ASDM 管理 ciscoASA设备

    用vm虚拟机模拟了一台 ASA设备   自适应安全设备软件为 ASA8.25  asdm镜像为asdm-6.49.bin 用客户端连接时,一定要安装java  jre,版本我是用的是7,6应该也可以. ...

  10. 轻松理解JS中的面向对象,顺便搞懂prototype和__proto__

    这篇文章主要讲一下JS中面向对象以及 __proto__,ptototype和construcator,这几个概念都是相关的,所以一起讲了. 在讲这个之前我们先来说说类,了解面向对象的朋友应该都知道, ...