年轻人不讲武德,偷袭阿里的机房

百家 作者:半佛仙人 2020-11-11 22:45:17


这是半佛仙人的第398篇原创


1


从商业的角度来看,无论是技术还是产品,过于极致的稳定都是一种累赘。


有人讲过一个故事,有一个公司生产出了绝对不会故障和损坏,可以永久使用的产品。


顺理成章的,这个公司的产品迅速占领了市场,把竞争对手打得落花流水。


接下来会怎样?它会更加迅速地倒闭。


这同样很合理:他们既不能向客户提供售后维修服务,也没法向同一个客户卖出第二台机器。


对绝大多数商品来说,一定范围内的产品故障率并不是坏事。


如果没有故障,怎么来的维修业务,怎么卖配件,怎么促进客户购买迭代产品?


就好像苹果把卡顿问题解决得太过完美,导致真正的果粉可以死守苹果6一样。


绝对安全且绝对稳定的技术,其实是反商业的。


一般的商业领域允许出错,甚至会贩卖错误。


如果一家企业只考虑商业利益,它当然没必要吹毛求疵,追求投入产出比的最大化就可以了。


但是当一种技术蔓延到商业秩序之外,开始承担社会责任,甚至是转型为基础设施的时候,普惠与稳定,就会变得比赚多少钱更重要。


对这种技术来说,如果不够先进,就没有承托起社会运转的能力。


如果不够稳定,就无法负担起牵一发而动全身的责任。


问题是,先进和稳定,其实是对冲的。


技术的发展总是遵循这样一个规律:


越先进,就越不稳定。


越精密的技术,涉及的因素越多,单一变量容易影响全局,整体出故障的概率越大。


如果有一天世界末日了,人类要留下一个标志告诉外星人人类文明的存在,怎么保存信息才能存储得最久,最不容易被意外破坏?


不是任何先进的技术,正确答案是在花岗岩上刻字。


在石头上刻字,是人类至今最稳定的信息储存技术。


这很魔幻,但很真实。


想要在保持技术先进的同时,做到绝对稳定,这是一个犹如西西弗斯推石上山般的挑战——石头总会在到达山巅的前一刻滚落,看似能够逼近终点,但余下的路途遥遥无期。


2


双11是电商行业的盛宴,也是对阿里云技术能力的一场考验。 


营销人和电商从业者会关注最后的GMV,但峰值数字才是衡量这一年双11技术难度的重要标准。


对负担双11云服务的阿里云来说,它必须要承载得起峰值时刻的冲击,才算“过了关”。


今年的11月11日0点26秒,天猫双11的订单创建峰值达到了58.3万笔/秒,这是2009年第一次天猫双11的1457倍,也是目前全球最大规模的流量洪峰。


12年来,双11的流量峰值一次次刷新,在提高技术挑战难度的同时,也在倒逼阿里云的工程师们马不停蹄地攀登下一个极限。


往往刚通过了上一个考验,还没来得及满饮庆功酒,下一个挑战就接踵而至。


他们必须和时间赛跑。


阿里云一旦跟不上、扛不住,出问题的不光是双11。


整个淘系电商,乃至阿里云给外部企业租用的云服务,这些都是由阿里云的技术底座所承载的。


如果阿里云有十分钟不能提供服务,这期间所有交易,所有账目显示都会暂停,影响到的,将是整个社会的商业秩序。


离不开这份技术能力的,还有物流。


云计算对线上交易有多重要不必多说,但很多人不知道,在物流领域诸多物流公司背后,同样是阿里云在提供基础技术的支撑。


很多主流物流公司都把核心技术系统托付给了阿里云,今年双11前菜鸟物流网络平台也把核心系统全面迁到了阿里云上。


假如在双11爆单的时候阿里云掉了链子,从交易到物流的整个链路都会陷入混乱。


如果说这些影响还停留在互联网行业,那么阿里云在传统行业扮演的角色,就更加不允许它行差踏错。


云计算在工业生产领域的应用,被认为是“鼠标+水泥”故事的新版本。


鼠标,指的是互联网技术,水泥,在这里象征的是工业生产。


形象地说,阿里云正在用最先进的算法模型为最土味、最厚重的锅炉完成原材料配比的优化。


有个钢厂在引入阿里云“工业大脑”,对产线做了全面优化后,每年的能耗支出节省了两千多万。


亚洲最大的水泥供应商借助智能制造平台和销售物流平台,让已有的140条生产线多创造了十亿元的效益。


比云计算混搭工业更朋克的,是把农业搬到云上。


中国最大的贵妃鸡数字化养殖基地,在和阿里云合作配置AI养殖系统后,完成了养殖的自动化和数字化。


在基地的帮扶下,当地的贫困农户也开始养殖起贵妃鸡。


但规模化的养殖不比散养,疫病预防,鸡舍清洁,鸡苗选育,这些知识和经验无法一蹴而就。阿里云就每天通过手机给他们发通知,提示疫苗种植和喂养流程。


不光是那些极大的、宏伟的商业,阿里云同样服务于那些极小的,小到一个个普通人,乃至他们身后家庭的民生。


这些事情困难吗?对阿里云来说,技术难度可能只是小菜一碟。但关键是,它的服务不能放弃,不能中断,更不能出错。


无论是作为商业还是民生的基建,阿里云都错不起。


3


既然错不起,那就要想办法面对。


工程师们没有在“创造出金刚不坏的技术”上面死磕,他们选择了另一条道路:


提高系统的容灾和容错能力。


让技术获得韧性。


技术的韧性,这是一个很有趣的概念。


指望一个技术绝对不出错,这是不可能的。


无论你怎么堆料,把标准提得多高,承载系统的硬件设备也总是有使用寿命和故障率的。


但假如它仍然会犯错,仍然会有故障,但在犯错后系统可以迅速自查和修复,而且不会造成后果,其实在客户端的感知上,就等价于没有犯过错。


阿里云的技术哲学,不是不犯错,而是把错误变得可控。


阿里云的服务器可能会坏吗?当然是会坏的,没有绝对不会坏的服务器。


但工程师们预留了大量的冗余服务器,它们的作用就是随时待命,在那些正在工作的服务器出现故障的时候,立刻接替上去,让系统能够迅速把数据“飘”到冗余服务器中。


阿里云有个标准,任何故障都要在十分钟内完成修复。


这个修复,不是当即把故障的机器修好,这不现实——天知道故障出在了什么地方,等检测出来,黄花菜都凉了。


修复,指的是让服务和应用恢复正常。


我只需要按预案行事,做好隔离,启用冗余,该提供的服务照样提供,该保留的数据一个不少,没必要在故障的机器或产品上纠结。


总会有各种原因和各种理由让一台服务器发生故障的,可能是过载了,可能是老鼠咬线了,可能是冷凝液泄露了,甚至可能是被知乎用户派人炸了。


知乎上有人问过一个问题,如果阿里云数据中心崩了或者被人炸了,是不是淘宝就不能用了?账单就不用还了?


这个问题看似无稽,但阿里云其实已经解决了。


应对的办法,就是冗余和异地多活。


冗余,就是本来用二百台机器就能满足的数据运算量和储存量,我可能准备六百台机器。其中二百台作为备份,另外二百台作为备份的备份。


异地多活,就是在不同城市建立独立的数据中心,这些数据中心彼此并联,互为备份。


阿里云一开始只有杭州的数据中心,后来发现运算量越来越大,服务器和机房不够用,而且抗风险能力太弱了。


万一着火了怎么办?万一天降陨石怎么办?万一外星人不讲武德,一个闪电五连鞭偷袭我们的数据库怎么办?


所以阿里云这帮工程师又去上海建了一个超级数据中心,建完以后还是觉得不放心,又找地方继续建。


到今天,阿里云一共建成了五个超级数据中心,其它大大小小的数据中心超过一百个,分布在全球22个地域。


一台服务器崩了不要紧,同一栋楼内,我直接把数据飘过去,连延迟都没有多少。


整个超级数据中心都崩了,我还有四个独立的数据中心,还能继续备份和溯源。


就算五个数据中心都崩了,小型的数据中心我还有一百个。


“突然被人炸了服务器”还不是最极致的抗灾准备,工程师还为台风,极寒和极热等各种极端气候都准备了应急预案。


唯一值得庆幸的是,他们至少不需要研究气象学,因为他们可以看天气预报。


为了抵御各种可能出现的破坏性状况,阿里云的工程师们,把自己变成了真正的“被迫害妄想症”。


比如说,为了应对突然断电的情况,阿里云所有数据中心都有起码两条不交叉的输电线路。


即使道路施工的时候不小心被挖断了一条,还有另一条。


如果两条一起被挖断了——这个概率极小——还有可以立刻供电的备用电池。


如果备用电池刚好也故障了,还有30秒内自动响应、能撑8个小时的柴油发电机。


如果柴油发电机刚好没油了,阿里云还跟附近至少两个加油站签了协议,2个小时之内必须紧急供油。


如果加油站也没油了,一些数据中心还有太阳能电池。


那你问太阳能也没用了怎么办,那阿里云说我也没办法了。


你说太阳能没用了,是不是太阳没了。


太阳都没了不就世界末日了,世界末日了我还上什么班。


毁灭吧,累了。


4


由于边际效用的存在,为了规避最后一些边边角角的小问题,往往需要花掉比解决大问题多出无数倍的努力。


完美的系统不但不现实,即使能实现,也会付出过高的成本。


不去强求毫无风险,但把风险的危害性变得可以承受,这是比追求完美更聪明的选择。


当然,这条道路同样困难重重。


最大的困境就在于,在问题出现前,你永远不知道还能有什么问题。


这就像盲人骑瞎马,夜半临深池。


进亦危,退亦危。


唯一的办法,就是“自虐”。


在阿里内部,有一个“突袭”传统,技术人员会分为红蓝军两方对抗,一方搞破坏,一方来救场。


这些突袭不会事先通知,玩的就是心跳。


早几年,有个阿里云工程师在家里睡觉,忽然部门的总负责人打电话给他,说你们的机房没了,他吓得背起包就跑。


到了才知道,其实是内部突袭,攻击方把一个小型数据中心的网断了。


现在看起来,阿里云好像对各种风险都胸有成竹。


但这些工程师们,也都是从稚嫩中走过来的。


有个很令人汗颜的细节:破坏方对阿里云的突袭,前面几次无一例外都是成功的——什么叫成功,就是搞破坏的人无一例外都搞成功了。


防守方的技术人员根本防不住这些突袭,他们的角度太刁钻了。


当然搞破坏的机子都是冗余的机子,不会影响到用户,不然工程师们已经可以通过把投诉信卖废纸致富了。


毒打挨多了,也就习惯了。


就像古早漫画《圣斗士星矢》里的梗,“同样的招式无法对圣斗士使用两次”,搞破坏的人逐渐黔驴技穷,防守方逐渐驾轻就熟,甚至学会了“抢答”。


什么叫“抢答”,就是预先猜到会出什么问题,设置自动触发的处理机制,让系统自己维护自己。


今年双11期间,阿里做了最后一次全链路压测。


凌晨2点临近结束的时候,阿里云的工程师们遇到了一次突袭。


那一瞬间,交易曲线下跌40%,然后慢慢爬升,在1分28秒内恢复到了正常。


1分28秒,慢一点的电脑可能才刚刚开机,阿里云已经从一场突发困境中破局。


这是阿里云那些工程师们秀出的肌肉。


最强壮的肌肉,长在大脑里。


Netflix 的一位前工程师写过一本叫《混沌工程》的书,里面提到过一个很有趣的思路:


可以开发一个工具,模拟一只讨厌的猴子在系统中上蹦下窜,不停捣乱,直到搞挂你的系统,而你要想办法在遭受破坏的同时,通过各种方式维系系统的稳定。


破坏不是关键,关键是,在被一次次破坏的过程中,你可以了解到系统自身的薄弱之处,然后提前设置解决预案,在问题发生的时候自动触发。


也许有一天,这些突袭和模拟可以穷尽所有可能出现的问题。


到那时,阿里云的技术,就成为了真正的“金刚不坏”。


当然,这一天也许永远不会到来。


穷举法的尽头,也许还是穷举。


但过去经历的一次次突袭,一次次在系统中模拟出主动且可控的破坏,又确实造就了阿里技术的韧性。


这就足够了。


功不唐捐,玉汝于成。


5


在所有关于阿里云工程师的传说里,我最喜欢的不是那些商业上的暗涌,也不是他们攻克技术难关的意气风发,而是那些温暖的小细节。


当年阿里云还只有杭州数据中心的时候,团队小事情多,数据高峰的时候,为了保证业务的稳定性,数据中心7×24小时都要有人巡检。


数据中心的地址很偏僻,团队里的男孩们担心女孩子夜里回家不安全,主动提出他们多轮值一班,让女孩可以早点回家。


在这个故事里,他们没有停在云端,而是饱尝人间烟火。


给阿里云穿上无敌铠甲的,不是什么住在神坛上的极客高人,他们就是一群生活中特别常见的普通人。


下机房也会累,走夜路也会怕,在女孩面前,他们也会温柔。


后来这样的故事渐渐变成了往事,因为阿里云数据中心配备了巡检机器人。


这个叫作“天巡“的机器人系列,到今年双11的时候已经升级到了第二代。


通过技术手段,它可以自动完成很多原本需要人力来完成的故障预测、诊断和修复工作。


虽然数据中心还是离不了人,很多工作只有工程师能做,但至少他们不再需要高频次进入机房,工作量也减少了许多。


“虽然做不到完美,但可以做到更好”,这是工程师们工作环境的改变,也是整个阿里云发展的缩影。


即使到了今天,阿里云仍然只能承诺在一年中99.995%的时间里保持绝对稳定,持续的努力,是把“9“的位数不断往后推移,但不可能真正变成百分之百。


技术当然不可能做到完美。


这不是任何思路或付出所能解决的问题。


所谓的“完美“终究只是一个抽象的概念,可以一点点逼近,却永远不可能实现。


阿里云的工程师们,其实比外界任何人更清楚技术的局限性。


但那又如何?他们当然知道自己不可能做到完美,但这并不妨碍他们努力去把技术变得更好一点点。


哪怕只进一寸,也有进一寸的欢喜。


无法触达完美,这是凡人的悲哀。


但也是凡人的幸运。






-----------------------

公众号:半佛仙人(ID:banfoSB)

B站:硬核的半佛仙人

微博:半佛仙人正在装

知乎:半佛仙人

这是一个神奇的男人,你完全猜不出他会写出什么,他自己也不知道。


长按下图二维码关注,你将感受到一个朋克的灵魂,且每篇文章都有惊喜。


-----------------------

感谢你的阅读,下面是1个抽奖链接按钮,11月21日晚上19点开奖,一共6666元,2020个红包,感谢大家的支持。


感谢大家一直以来的阅读、在看和转发,点我参与抽奖!点我参与抽奖!


【凡人的力量,也可比肩神明】

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接