Atlassian云服务宕机事故究竟给了我们什么启示?
01
究竟发生了什么事?
02
我们从事故的发生能学到什么?
1. 沟通出现问题。请求停用的团队和运行停用的团队之间存在沟通问题。请求停用的团队没有提供想要停用的应用的ID,而是提供了想要停用的应用所在的整个云站点的ID。
首先,这不是一个全功能团队,请求停用的团队和运行停用的团队是两个团队,这样就会导致团队间存在工作传递和交接,无论从效率上还是从准确度上,都为出现偏差留下了隐患。
其次,他们显然没有进行面对面的沟通,对于为什么要进行此次操作,执行方并没有透彻理解,只是机械照做,连ID也需要请求方提供。设想一下,如果请求方只是向执行方说明想要停用的应用名称以及停用的原因,其他一概都由执行方来自主进行(包括确定ID),是不是此事故发生的概率就会大大降低。
再次,看起来校验过程缺失或缺乏有效性。把应用的ID写成了整个云站点的ID也没有在请求方内部被发现,而执行方又只是机械执行,没有确认请求的原因并且再次对ID进行校验。
最后,管理的自动化程度有待提高。如果有非常好的配置管理,以及运维的后台保障,ID仅仅是后台的配置项之一,整个停用应用程序的过程应该是前台的一键操作,不需要请求方提供并传递应用的ID,也就不会出现错误。
2. 脚本的使用有问题。他们使用的脚本具有两种能力:“标记删除”能力,这种能力用于日常的操作(如需要还可以恢复);同时还具有“永久删除”能力,这种能力用于因合规性要求而需要永久删除数据时。然而他们在执行脚本时,使用了错误的执行模式和错误的ID列表。结果导致大约400个客户的网站被不当删除。
执行模式和ID列表是不是都是以数字或字母形式存在的,如果是这样,操作人员因为记忆的错误或者手误都有可能无意中导致事故。如果把这些都翻译成更友好的自然语言展示给操作员,而把晦涩易错的数字或字母通过配置管理藏在后台,是不是就可以更大程度减少事故的发生。
当然,校验过程的缺失或缺乏有效性,也会增加出问题的概率。
03
我们从事故的恢复能学到什么?
04
总结与升华
https://marketplace.atlassian.com/apps/1212137/insight-asset-management
https://www.atlassian.com/engineering/april-2022-outage-update
https://jira-software.status.atlassian.com/
推荐阅读
敏捷转型包括:敏捷转型的策略/敏捷转型的避坑方法/敏捷转型的成功案例
业务敏捷包括:团队级敏捷运作/数字产品管理/数字化转型/创新创业
敏捷组织包括:敏捷战略/精益投资组合管理/敏捷人力/敏捷财务/敏捷治理/敏捷运营/敏捷组织架构/敏捷企业架构