时隔一年阿里云又出大故障,并创造了云计算行业闻所未闻的新记录 —— 全球所有区域/所有服务同时异常。我们应当如何看待这一史诗级故障案例,以及,能从中学习到什么经验与教训?

事实是什么?

11月12日,也就是双十一后的第一天,阿里云发生了一场史诗级大翻车。根据阿里云官方的服务状态页,全球范围内所有可用区 x 所有服务全部都出现异常,时间从 17:44 到 21: 11,共计3小时16分钟。

根据阿里云公告称:“云产品控制台、管控API等功能受到影响,OSSOTSSLSMNS 等产品的服务受到影响,大部分产品如 ECS、RDS、网络等的实际运行不受影响”。

不过大量依赖阿里云服务的应用 APP,包括阿里自己的一系列应用:淘宝,钉钉,闲鱼,… 都出现了问题。产生了显著的外部影响,APP崩了的新闻组团冲上了热搜。淘宝刷不出聊天图片,闪送上传不了接单凭据,充电桩用不了,原神发不出验证码,饿了么下不了单,骑手进不了系统,点不了外卖、停车场不抬杆、超市无法结账。甚至有的学校因此无法用智能公共洗衣机和开水机。无数在周末休息中的研发与运维人员被喊起来加班排障……

包括金融云,政务云在内的区域也无一幸免。阿里云应该感到万幸:故障不是发生在双十一当天,也不在衙门与钱庄的工作时间段,否则大家说不定能上电视看故障复盘了。

原因是什么?

尽管阿里云至今仍未给出一份事后故障复盘报告,但老司机根据爆炸半径,就足以判断出问题在哪里了 —— 鉴权组件 / Auth 服务

原因很简单,能让全球所有区域同时出问题的肯定不会是机房/硬件故障,而是跨区域共用的云基础设施组件 —— 要么是认证,要么是计费,极低概率是其他全局性服务。

根因出在认证服务上的可能性最大,因为被管控的资源:类似云服务器 ECS / 云数据库 RDS 仍然可以继续运行,用户只是无法通过控制台/API对其进行管理操作;然而深度与云API/认证集成的对象存储 OSS (S3),表格存储 OTS , SLS,MNS 服务本身可用性直接受到影响。

不仅仅是 OSS,使用其他深度集成 IAM/认证 服务类的云产品也会有这样的问题,比如 OTS,SLS,MNS 等等。例如,对标 DynamoDB 的 OTS 同样出现了问题,这是因为 OTS 不像 RDS for PostgreSQL / MySQL 使用数据库自身认证,而是直接用IAM。

尽管上面的分析过程只是一种推断,但它与流传出来的内部消息相吻合:认证挂了导致所有服务异常。至于认证服务本身到底是怎么挂的,在尸检报告出来前我们也只能猜测:根据各种先例来看,人为配置失误的可能性最大,比如有小道消息称:

一位了解内部信息的人士表示:“这次双11期间,技术人员连续一周加班加点,双11一过,大家都松懈了。有个新手写了一段代码,更新了组件,导致了本次的断网

如果真的是这样的原因导致认证服务不可用,那可真的是 草台班子 到家了。尽管听上去很离谱,但也不算太令人惊奇。再次强调,以上为路边社消息与合理推论,具体事故原因请以阿里云官方给出的复盘分析报告为准。

影响是什么?

认证这样的基础组件一旦出现问题,影响是灾难性的。这会导致整个云管控面不可用,伤害会波及到控制台,API,以及深度依赖云认证基础设施的服务,比如 OSS、OTS、SLS、MNS。尽管从公告上看来好像只有几个服务受到影响,但 OSS 这样的基础性服务出了问题,带来的爆炸半径是难以想象的,绝非“个别服务受到影响” 就能敷衍过去。

对象存储 OSS (Amazon S3)这样的服务不同于虚拟机这种资源,是通过云厂商包装的 HTTP API 对外提供服务的,因此必然深度依赖认证组件:你需要AK/SK / IAM签名才能使用这些 HTTP API,而认证服务故障将导致这类服务本身不可用。

但是对象存储 OSS 实在是太重要了,可以说对象存储是云计算的“定义性服务”,也许是唯一一个在所有云厂商上能达成共识与标准的服务。云厂商的各种“上层”服务或多或少都直接/间接地依赖 OSS,例如 ECS/ RDS 虽然可以运行,但 ECS 快照和 RDS 备份显然是深度依赖 OSS 的,CDN 回源是依赖 OSS 的,各个服务的日志往往也是写入 OSS 的。

从现象上看,核心功能跟 OSS 深度绑定的阿里云盘就挂的很惨烈,核心功能跟 OSS 关系不大的服务,比如高德地图就没听说有什么大影响。大部分相关应用的状态是,主体可以正常打开运行,但是和图片展示,文件上传/下载文件这类有关的功能就不可用了。

有一些实践减轻了对 OSS 的冲击:比如通常被认为是不安全的 —— 不走认证的 PUBLIC 存储桶就不受影响;CDN 的使用也缓冲了 OSS 的问题:淘宝商品图片走 CDN 缓存还可以正常看到,但是买家聊天记录里实时发送的图片直接走 OSS 就挂了。

不仅仅是 OSS,使用其他深度集成 IAM/认证 服务类的云产品也会有这样的问题,比如 OTS,SLS,MNS 等等。例如,对标 DynamoDB 的表格存储服务 OTS 同样出现了问题,这是因为 OTS 不像 RDS for PostgreSQL / MySQL 使用数据库自身的认证机制,而是与云厂商的 Auth 深度绑定。

那么这件事对于阿里云本身会有什么影响呢?首先当然是违反 SLA 产生的赔偿,3个半小时的故障范围,当月可用性指标应当为 99.5%,落在绝大多数服务 SLA 赔偿标准的中间档位上,也就是补偿用户月度服务费用 25%-30% 的代金券。特殊的是这一次故障的区域范围和服务范围是全部

当然阿里云也可以主张说虽然 OSS / OTS 这些服务挂了,但他们的 ECS/RDS 只挂了管控面,不影响正在运行的服务所以不影响 SLA。说起来这种补偿即使是真的全部落地也没几个钱,更像是一种安抚性的姿态:毕竟和用户的业务损失比,赔个服务月消 25%代金券简直就是一种羞辱

比起用户信任、技术声望以及商誉折损而言,赔的那点代金券真的算不上什么。这次事件如果处理不当,很有可能会成为公有云拐点级别的标志性事件

评论与观点?

马斯克的推特 X 和 DHH 的 37 Signal 通过下云省下了千万美元真金白银,创造了降本增效的“奇迹”,让下云开始成为一种潮流。云上的用户在对着账单犹豫着是否要下云,还没上云的用户更是内心纠结是否还要上去。在这样的背景下,作为本土云领导者的阿里云发生如此重大故障,对于犹豫观望者的信心无疑是沉重的打击。恐怕此次故障会成为公有云拐点级别的标志性事件

阿里云一向以安全稳定高可用自居,上周还刚刚在云栖大会上吹极致稳定性之类的牛逼。但是无数层所谓的的灾备,多活,多中心,降级方案,被一次性全部击穿,打破了N个9神话。如此大范围、长时间、影响面如此广的故障,更是创下了云计算行业的历史记录。包括金融云和政务云在内(是否是私有化部署的版本?)也同样出现了服务不可用。

阿里云全球故障揭示出出关键基础设施的巨大风险:完全依托于公有云厂商的大量 Web 服务缺乏基本的自主可控性:在故障发生时除了等死做不了别的事情。同时也展现了垄断中心化基础设施的脆弱性:互联网。这个去中心化的世界奇迹现在主要是在少数几个大公司/云厂商拥有的计算机上运行。如果 AWS 的主要区域之一出现故障,几乎一半的互联网都会随之下线。某个云厂商本身成为了最大的业务单点,这可不是互联网设计的初衷!

而这次更为严峻的挑战恐怕还在后面,来自全球用户的追索赔钱事还小,真正要命的是在各个国家都在强调数据主权的时候,如果因为在中国境内的某个控制中心配置失当导致全球故障的话,(即:你真的卡了别人的脖子)我相信很多海外客户会立即采取行动,迁移到别的云供应商上:这关乎合规,与可用性无关

去年十二月阿里云香港机房的故障已经暴露出来了许多的问题,然而一年后没有不见改进反而来了一个更大的惊喜。这样的事故对于阿里云的品牌形象绝对是致命打击,往大了说,像这样的故障对整个行业的声誉都有严重的损害。阿里云应该尽快给用户一个解释与交代,发布详细的故障复盘报告,讲清楚后续改进措施,挽回声誉与用户的信任。

毕竟,这种规模的故障,已经不是“杀一个程序员祭天”能解决的事了,得由 CEO 亲自出面解决。例如 Cloudflare 月初的管控面故障,CEO 亲自出来写了详细的事后复盘分析。不幸的是,阿里云经过了几轮裁员,一年连换了三轮 CEO ,恐怕已经难有能出来扛事接锅的人了。

能学到什么?

往者不可留,逝者不可追,比起哀悼无法挽回的损失,更重要的是从损失中吸取教训 —— 要是能从别人的损失中吸取教训那就更好了。所以,我们能从阿里云这场史诗级故障中学到什么?

不要把鸡蛋放在同一个篮子里业务域名解析一定要套一层 CNAME,且 CNAME 域名用不同服务商的解析服务。这个中间层对于阿里云这样的故障非常重要,用另外一个 DNS 供应商,至少可以给你一个把流量切到别的地方去的选择,而不是干坐在屏幕前等死,毫无自救能力。

区域优先使用杭州与北京可用区,阿里云故障恢复明显有优先级,阿里云总部所在地的杭州(华东1)和北京(华北2)故障修复的速度明显要比其他区域快很多,这两个区域可以考虑优先使用。虽然同样都是吃故障,但你可以和阿里自家云上业务享受同种优先待遇了。

谨慎使用需要额外认证的服务:认证鉴权这样的服务属于基础中的基础,大家都期待它可以始终正常工作。然而越是人们感觉不可能出现故障的东西,真的出现故障时产生的杀伤力就越是毁天灭地。深度使用云厂商提供的 AK/SK/IAM 不仅会让自己陷入供应商锁定中,更是将自己暴露在云基础设施单点的问题里。例如在这次故障中,不使用云厂商认证体系的的 ECS/RDS 本身没有受到直接冲击:管控失能无法发起变更,但现有资源仍然可用。

谨慎使用云服务,优先使用纯资源。类似 ECS/ESSD 这样的资源以及单纯使用这两者的 RDS,可以不受管控面故障影响继续运行。然而 OSS 对象存储这样的服务会对云基础设施有额外的依赖,额外的依赖意味着额外的失效点。只使用基础云资源的另一个好处是,它们是所有云厂商的提供服务的最大公约数,有利于用户在不同公有云、以及本地自建中间择优而选。

不过,很难想象在公有云上却不用对象存储 —— 在 ECS 和天价 ESSD 上用 MinIO 自建对象存储服务并不是真正可行的选项,这涉及到公有云商业模式的核心秘密:廉价S3获客,天价EBS杀猪

自建是掌握自己公司命运的最佳手段:如果用户想真正掌握自己的命运,最终恐怕都会走上下云自建这条路。当年互联网先辈们平地起高楼创建了这些服务,而现在只会容易的多:纯资源云与开源平替的出现让这件事变得容易太多了。IDC2.0 + 开源自建的组合越来越有竞争力:短路掉公有云这个中间商,直接与 IDC 合作显然是一个更经济实惠的选择。

在当下供过于求的情况下,稍微有点规模的用户下云省下的钱可以换几个从大厂出来的资深SRE还能盈余不少。毕竟,自家人出问题你可以进行奖惩激励督促其改进,但是云出问题能赔给你几毛钱代金券,又能顶什么用呢?

明确云厂商的 SLA 是营销工具,而非战绩承诺

在云计算的世界里,服务等级协议(SLA)曾被视为云厂商对其服务质量的承诺。然而,当我们深入研究这些由一堆9组成的 SLA 时,会发现它们并不能像期望的那样“兜底”:你以为给自己的服务上了保险可以高枕无忧,但其实白花花的银子买的是提供情绪价值的安慰剂。与其说是 SLA 是对用户的补偿,不如说 SLA 是对云厂商服务质量没达标时的“惩罚”。

比起会因为故障丢掉奖金与工作的专家工程师来说,SLA的惩罚对于云厂商属于是自罚三杯,不痛不痒。如果惩罚没有意义,那么云厂商也没有动力会提供更好的服务质量。用户遇到问题时只能提工单等死。所以,SLA 对用户来说不是兜底损失的保险单。在最坏的情况下,它是堵死了实质性追索的哑巴亏。在最好的情况下,它才是提供情绪价值的安慰剂。

尊重技术,善待工程师

阿里云这两年走了很多人:学人家马斯克推特大裁员降本增效,人家裁几千个;你几万几万的裁;队伍动荡,人心不稳,稳定性自然会受到影响。推特一天挂几次,用户捏着鼻子骂两句继续凑合用,ToB 业务跟着连环裁员连环挂,你看企业用户可忍得了这个?

很难说这跟企业文化没有关系:996 修福报,大把时间内耗在无穷的会议汇报上。领导不懂技术,负责汇总周报写PPT吹牛逼,P9 出嘴;P8 带队,真正干活的可能都是些新鲜从业务线薅来的 P6和P7 ;顶尖技术人才与真正能打的人才根本不吃这一套PUA 窝囊气,成批出来创业单干 —— 环境盐碱地化:学历门槛越来越高,人才密度却越来越低。

我亲自见证的例子是,一个独立开源贡献者单人搞的 开源 RDS for PostgreSQL,可以骑脸输出几十人 RDS 团队的产品,而对方团队甚至连发声辩白反驳的勇气都没有 —— 阿里云确实不缺足够优秀的产品经理和工程师,但请问这种事情为什么可能会发生呢?这是应该反思的问题。

阿里云作为本土公有云中的领导者,应当是一面旗帜 —— 所以它可以做的更好,而不应该是现在这幅样子。作为曾经的阿里人,我希望阿里云能吸取这次故障的教训,尊重技术,踏实做事,善待工程师。更不要沉迷于杀猪盘快钱而忘记了自己的初心愿景 ——

为用户提供物美价廉的公共计算资源,让计算和存储资源像水电一样普及

阿里系多个产品崩了的消息登上热搜

根据阿里云方面的消息,阿里云是在当天17点44分起,“监控发现云产品控制台访问及API调用出现异常”,不同寻常的是,此次波及的范围尤其广泛:受影响阿里云产品超过达数十个,受影响地域涵盖全国、东南亚、欧洲、北美。晚上21点11分,受影响云产品才全部恢复。

去年12月,阿里云发生了运营十多年以来最大规模的10小时宕机事件,间接或直接地导致了原阿里云智能总裁张建锋卸任,时任阿里巴巴董事局主席兼CEO张勇亲自坐镇阿里云。

仅仅过去不到一年,又恰逢阿里云正在准备分拆上市的关口,阿里云再次发生严重事故,这可能会成为压垮骆驼的最后一根稻草。

不进则退

关于阿里云,有一句话广为流传:“不是任何一朵云都能撑住阿里双十一的流量。中国有两朵云,一朵是阿里云,一朵叫其他云。”

这句话的背后寓意,是阿里云吃尽了消费互联网时代的红利。

2009年成立的阿里云,背靠着中国十多亿网民的庞大规模,仅2015年到2019年这几年,阿里云年营收就从30亿元迅速涨到了400亿元。曾经的阿里云,还拿过“上云就上阿里云,市场占有率超过第2-5名总和”这样的说法来做广告。

2018年末,阿里云在公有云IaaS+PaaS市场占比高达42.7%,来源:IDC

但时过境迁,在红利逐渐消退之时,阿里云不得不面对增速不断下降的现实。

2018财年(2017年4月至2018年3月底),阿里云营收133.9亿元,同比增长101%。当时阿里云引以为豪的,是连续十二个季度超过100%的营收增速。

自此之后,阿里云的增速已经开始下滑。2019财年、2020财年及2021财年,阿里云的营收增速分别是84%、62%、50%。到了2022财年,阿里云的营收增速直接腰斩,来到了23%。

更为严峻的则是2023财年,阿里云的营收为772.03亿元,同比增长仅为4%。财报称,云业务收入同比增长反映了金融服务、汽车行业和零售行业收入稳健增长带动的非互联网行业收入增长,但部分被互联网客户收入下降所抵消,主要是由于“互联网行业的顶级客户由于非产品相关原因逐步停止使用其海外云服务进行其国际业务”。

在2018年末,时任阿里云CEO的张建锋,还自信满满地为阿里云定下了三年营收破千亿的目标。结果直到2023年,这一目标恐怕也很难达成。

今年上半年,阿里云在IaaS市场份额占比已经跌到了29.9%,来源:IDC

长期处于市场领先地位的阿里云,龙头地位岌岌可危,而在其身后的,是迅速崛起的竞争对手们。

他们之中的代表,是三大电信运营商支撑的云服务业务——天翼云、移动云、联通云,2022年,这三大云厂商营收增速均超过100%。而另外一位,则是自带光环的华为云,其2022年营收增速更是高达122%。

根据国际数据公司IDC发布的《中国公有云服务市场(2023上半年)跟踪》报告,2023年上半年中国公有云服务市场中,阿里云在Iaas市场的占比已经跌到了29.9%,紧随其后的是华为云与天翼云,占比分别为13.2%和12.2%。

在“泽平宏观”给出的一份2023年中国独角兽企业榜单中, 阿里云以8542亿元人民币的估值,高居中国独角兽企业第二位。

但对于增速下滑面临竞争对手围攻的阿里云来说,如果无法改变增长的难题,阿里云很有可能会在此跌彼涨中失去领先地位,而在即将上市的关口,阿里云的8000多亿估值恐成空中楼阁。

阿里不“懂”政企客户

消费互联网的红利期之后,在产业互联网时代能够继续带来高速增长的仅存蓝海,是大量有着数字化需求的政企客户——尤其是规模巨大的政务、央企、国企的客户。

在消费互联网时代纵横捭阖的阿里云,却长期无法摸透政企客户。上述这些能为阿里云重新讲出增长故事的政企客户,与其相性不合。

首先,是阿里云陷入了路径依赖之中。阿里云平台早在推出之初的定位,就是创业者和中小企业,也可以笼统地称之为互联网企业。阿里巴巴新任董事局主席蔡崇信就在10月底的云栖大会上提到,目前全国80%的科技企业都跑在阿里云上。

做消费互联网出身的阿里云,曾经可以凭借技术领先,凭借自己在电商领域的经验,通过补贴、压价、烧钱等手段,便能赢得大量中小企业的客户。

2022年6月的阿里云峰会,张建峰仍在强调“坚持技术长征”。来源:峰会截图

但在面对政企客户时,这些经验几乎都用不上。因为政企客户的最高优先级并非技术领先或是补贴的多少,而是近乎“私人订制”般的客户服务。

举个例子,以往的阿里云客户完全可以在官网自助下单、线上签约,通过线上提供方案。但政企客户偏偏对线下服务的要求较高,他们不仅是购买公有云资源,还涉及到私有云部署等定制化解决方案,这对阿里云的客户服务水平要求极高。

这偏偏是阿里云的弱项。直到2021年,阿里云才史无前例地在全国开了16个区域分公司,强调“本地化”,包括和本地化客户连接、建立本地化的生态等。时任阿里云智能总裁张建锋甚至在采访中说道,“如果今年只做一件事,那就是做好服务。”

其次,失去优势的阿里云,在政企领域碰到的对手,还是“国字头”的三大运营商,以及深耕政企领域多年的华为。

来势汹汹的三大运营商,根据IDC报告,其公有云业务(Iass+Pass)增速均超100%。今年4月,移动云确立了未来三年冲刺1500亿元营收的目标,天翼云将今年的营收计划定在了千亿级别——这是发展了十几年的阿里云都尚未到达的高度。

三大运营商奋起直追的底气之一,正是政企客户们的青睐。有媒体统计,2022年3月到今年3月,全国公示超1亿元的政企数字化大单,其中中国移动获得订单230个、中国电信175个、中国联通12个、阿里云3个、腾讯云4个。(注:大量政府采购项目未公示,统计只包含已公开部分)。

全国1亿元以上政企数字化大单分布,来源:财经十一人

在这些根基深厚的竞争对手面前,阿里云想要分一杯羹,还要面对成本压力,因为中国的云服务商还是要向运营商租资源,导致面对运营商云服务时无法发挥规模效应。

至于华为云,则是在客户服务上遥遥领先。有华为前员工告诉媒体,华为内部甚至有专门的“组织部”,为了一个大型客户,能专门成立一个数十人甚至百人的公司,来摸清客户的需求、架构、业务情况。而且每个政府或部委都有专门的接口人,长期对接一个客户。

根据IDC数据显示,华为云在中国政务云基础设施市场(专属云+公有云)的占比为25.8%,已经连续五年保持第一。

最后,阿里云并没有构建出适配政企客户的内部结构。比如,阿里云内部的kpi制度无法适应政企大客户,因为这种按月按制度计算销售等业绩的制度,在面对政企这种通常以年为周期的合作时不够灵活。

痛定思痛之下,阿里云决定内部改革,面对政企客户水土不服的问题,从华为云挖来了高管蔡英华。2022年3月,原华为企业业务中国区总裁蔡英华,以全球销售总裁头衔加入阿里云,开始负责阿里云整个国内及国际销售业务,向阿里云智能总裁张建锋汇报。

目前来说,这一操作收效甚微,阿里云并未在短期内实现高质量增长,甚至在财务上出现了关键数据的下降与放缓趋势。按照阿里方面的规划,阿里云原则上需要在明年5月完成上市,也就是距今还有大概半年的时间,在时间如此紧迫的情况下,阿里云需要新的破局手段。

大模型“平台”

从目前的局势来看,阿里云短期内很难从政企大客户那里啃下太多的市场,更实际的做法,是讲一个新的故事。

9月11日,阿里巴巴集团控股有限公司的公告显示,吴泳铭将接替张勇出任阿里云智能集团代理董事长兼首席执行官,委任于2023年9月10日生效。

次日,吴泳铭发布全员信,宣布根据两大战略重心:用户为先、AI驱动,重塑业务战略优先级。战略投入也会围绕技术驱动的互联网平台业务、AI驱动的科技业务、全球化的商业网络进行战略投入。

吴泳铭对于AI的重视,意味着大模型将成为阿里云要讲述的新故事。

ChatGPT的火爆,让中国互联网巨头们仿佛找到了一座金矿。在百度最先公布“文心一言”后,时任阿里巴巴董事局主席张勇,也在今年4月发布阿里云开发的大模型“通义千问”,并宣布此语言模型会接入阿里旗下的所有业务中。今年9月,“通义千问”开始面向公众开放。

今年的阿里云峰会,张勇负责讲解“通义千问”,来源:峰会截图

但推出“通义千问”仅仅是个开始,阿里云要下的是一盘更大的棋。

中国信通院发布的《云计算白皮书(2023年)》显示,2022年,全球云计算市场规模为4910亿美元,增速19%。中国云计算市场规模为4550亿元,同比增长40.91%。中国信通院认为,云计算实现稳定增长的一大来源,就是大模型的需求刺激。

一个“通义千问”,在“百模大战”的情况下,谁胜谁负尚未可知。相比于一个大模型所带来的云计算需求,阿里云更想要的是“我们要让所有的人工智能公司和他们的模型,来使用我们阿里云的基础设施。”——语出阿里巴巴2024财年第一季度财报电话会,时任董事局主席张勇。

阿里云布局已久。

去年11月的云栖大会上,阿里云CTO、“通义千问”开发负责人周靖人提到了一个概念叫MaaS,是“Model as a Service”的缩写,即“模型即服务”。

简单来说,就是从单纯开发模型的模式,转变为围绕模型提供各种各样的服务。而阿里云在其中的角色,既是算力的提供者,也是模型的开发者,同时还是一个大模型平台。

为此,早在“通义千问”发布之初,阿里云就宣布开源7B、14B版本,成为国内最早开源自研大模型的企业之一。

今年的云栖大会上,阿里云着重提到的两个数据,一个是全国有一半的大模型跑在了阿里云上;一个是阿里的魔搭社区已经聚集2300多款AI模型,吸引280万名AI开发者,AI模型下载量突破1亿。

魔搭社区接入了大量大模型

阿里云甚至还打了个样,除了公布基于通义打造的8个行业大模型,还发布了一站式大模型应用开发平台——阿里云百炼,号称可以让开发者在5分钟内开发一款大模型应用,几小时即可“炼”出一个企业专属模型。

仿佛是2023年版的“让天下没有难做的大模型”,终于又回到了阿里熟悉的领域。

参考资料:

36氪《阿里云 在不合时宜的时代》

南方都市报《阿里云时隔一年再现大规模故障,云厂商宕机事故频发》