其他
当云服务也不靠谱之后——云生态视角看Gitlab事件
Gitlab.com最近出了点大故障,五层备份机制都挡不住一个误操作。云计算时代和旧时代变化很大,一斑可窥豹一叶可知秋。我无意继续重复这次事件,而是从各方反应来看云计算时代IT行业的新特性,以及对应各个群体的建议。通过此事我看到有三方面的新特性。第一,高水平运维人员严重缺失,大家热衷于炫技而非做实事。第二,相比自建服务,采购云服务责任极小,会刺激技术人员继续上云。第三,企业级云服务场景中技术运营角色的缺失。一切问题都可以归结成人的问题,这次故障也不例外,当Gitlab说自己做了五层备份措施,我就想到了五个和尚没水吃。运维工程师本来是一个风格保守、专注业务可用性的行业,在传统企业服务领域里一言九鼎。个人互联网业务要求“多快好省”,旧式运维过于保守甚至懒惰了,但互联网运维只记住了“多、快、省”,偏偏把“好”的标准定错了。互联网运维从学习到面试到工作,大家都喜欢诸如高可用、弹性扩展、运维自动化、超大并发、云计算等等炫酷技术,这样容易出业绩也容易拿高薪;而无论是学习还是面试都只能把单个知识点考到,等到生产环境才能验证你的全局统筹能力。回到这个故障上看,五层备份有很大目的是炫技,快看,我把所有备份方法都用起来了;如果每层备份的可靠性都超过99.5%,做两层备份就比出车祸几率小,做三层备份肯定没美苏核战的几率大。但从对方披露的公开资料来看,每层备份的可靠性在50%到90%之间。云计算厂商是个企业服务供应商,无论是IaaS、PaaS还是SaaS,都应该传统IT服务的优点捡起来,多关注服务可靠性和业务可用性。缺乏合适运维的问题很难解决,因为业务保障能力很难靠培训习得,应聘谈薪和自主创业时,做功能保障的人才非常吃亏。笔者在两年前听某云计算公司的CTO说,他和CEO俩人刚开公司时连二三层网络都分不清,多做快做新功能才能拉到用户和风投。从用户的角度说还好了,云计算本来就是为了解决人力短缺问题的,IaaS云平台让你少考虑系统可用性,PaaS平台让你少考虑服务可靠性,SaaS平台让你只关注账户密码的安全性,做业务保障的人你可以少招一些。本次出故障是一个SaaS平台搞砸了,但是很有趣的一幕出现了!99%的客户采购决策人不会因此挨骂,90%的客户不会做跨厂商容灾。如果你内网自己搭建个Gitlab服务,丢数据是要写检查甚至被辞退的,但采购公网服务出故障了像遇到天灾一样,大家都只能认倒霉。笔者曾经观察到某RDS笨拙的平滑扩容,笔者也知道很多云负载均衡只有LB没有HA,但是懂行的人根本不在意此事,懂得越多怕的越多啊,我的人品肯定比某云平台更好吗?我只是扶老奶奶过马路,这些厂商可都是几千万几个亿的做慈善啊。采购云服务有一个心照不宣的秘密就是维护责任外抛,甚至采购评估责任都可以外抛。客户采购云服务可以专注功能和核心业务,让云服务厂商做业务保障总好过没人做业务保障。现在GitLab用户的心态和30年前采购数据库的那些人心态一样,这个厂商这次不靠谱,不代表换个新厂商就靠谱,而且老厂商总会知耻后勇吧,此起彼伏的挖电缆新闻没吓跑几个客户。云计算服务还不成熟,让客户对厂商的期望值其实并不太高,希望厂商们努力逐渐对得住客户。第三个新特征就比较绕口了,企业级云服务场景中技术运营角色的缺失。笔者接触的人员有限,但各个云计算厂商没有明确的可以为技术运营负责的人员。如果你是游戏运营人员,技术人员说某个功能不可用你很快能听懂;如果你是IDC运营人员,监控人员报某用户流量异常你也可以很快处理;如果你是网站运营人员,现在全站瘫痪优先恢复哪几个频道可以快速和技术沟通。但是云计算是一个新兴产业,厂商和客户都在摸索中前行,没有公认的运营规范。GitLab遇到的只是最浅层的问题——有异常流量要手动处理,这个过程中手滑了出故障了,但笔者无责任乱猜了一下,如果有精确的正常流量定义,那根本不需要手动处理异常流量啊。这个岗位职责既需要了解平台技术现状,还要了解客户业务需求,还要对平台资源甚至商务促销都有很深的把控力度。先说了解平台技术现状和客户业务需求,这个容易理解一些。大部分人不知道软路由处理不了SynFlood一类海量碎包,那么你在SLA里不可能加上网卡包量限制条款。某云平台总是爆出虚拟机系统盘回档的故障,那是因为本地磁盘就是一天一备份,我们应该引导客户将数据放在数据盘、RDS、NoSQL和OSS。企业客户是讲道理的,不会跟厂商漫天要价,但他们会要求厂商言而有信,我相信假以时日,技术出身的售前工程师可以顶上这个缺位。这里比较难理解但也有足够威慑的是平台资源统筹管理。一个用户拿七位数的资金就能合理合法的瘫痪国内任何一家公有云平台,因为大家都喜欢开放注册,也都是秒级按量付费。后续操作细节就不说了,不想教坏小朋友,内行自然懂的。资源超卖是合理合情的行为,有超卖就要承担品质下降乃至崩盘的风险的。要防范品质下降乃至崩盘只有两条路,第一是少超卖多预留资源,并增强快速扩容演练,第二是如何不失体面不被用户骂抠门,尽量约束用户的操作。但是这事谁来做,谁来扛责任?貌似COO和CTO要打起来了。云计算是一片生机无限的星辰大海,沉舟侧畔千帆过,病树前头万木春,每一次故障都是一次机遇。前面说了几个云行业的新特征,后续是我给业内玩家的建议,这些玩家包括云计算大运营商、小运营商、自建私有云和甲方工程师。
2017年2月3日