脆弱1.jpg

在钛媒体集团及旗下中国最大技术社区 ITValue联合主办的“2017 IT价值峰会暨中国企业级技术峰会”中,凡泰极客(FinoGeeks)联合创始人、前广发证券IT董事总经理兼首席架构师、前雅虎北京研究院首席架构师梁启鸿介绍对于反脆弱型IT组织的前沿思考。

凡泰极客由一群金融互联网技术的跨界工程师组成,他们把多年来在金融尤其是证券领域积累的众多创新想法与愿景,通过全新技术理念来实现和实践。凡泰极客在容器化技术、微服务、面向对象设计、分布式架构、多语言混合编程、Peer-to-Peer技术等方面有前沿应用与深刻理解,特别是先把创新产品用在自己身上、再输出到市场,提倡“Eat your own dog food”。

梁启鸿认为,大部分企业IT组织继续沿用90年代的IT组织结构与方法论在当今这个数字化时代以犀牛的速度前行,也许稳固可是无法应对快速变化的市场。更多的互联网公司,则是通过扁平化组织与敏捷方法把自己变成了捷豹。但这个时代最有竞争力组织结构,可能是反脆弱型组织。 

“反脆弱”的概念来自于《黑天鹅》作者塔勒布的下一部《反脆弱:从混沌中受益》。究竟什么是“反脆弱”?如何把“反脆弱”用于IT组织的设计?对于这一极为前沿的课题,凡泰极客提出了自己的见解。


以下为凡泰极客(FinoGeeks)联合创始人梁启鸿在“2017 IT价值峰会暨中国企业级技术峰会”上的演讲实录,经编辑整理:

梁启鸿:今天跟大家探讨一下在传统行业IT转型的过程中一些思考,我本人是架构师出身,我们都知道康威法则,架构师天然关注组织结构,过去十几年基本上跟“架构与组织结构相适应”这个课题打交道,尤其是最近四五年在帮助传统金融机构组建金融科技组织的过程中,感触比较多。


数字化程度越高的世界面临越频繁的黑天鹅事件

在互联网科技大潮下,不少企业也自觉或被迫持续追逐不断更替的技术,但个人总是觉得这是无止境的,组织的技术水平也不见得用了一些什么技术就获得提升,科技的基因也不见得就能培养,始终是佛教用语所谓的“不得究竟”。有很多问题,可能应该从组织结构角度才能根本解决。

首先,现在我们都知道这是一个数字化越来越高的世界,数字化像一个黑洞把线下的一切席卷进去。随着云计算的大潮,出现越来越多的“某某即服务”,比如除了“平台即服务”、“数据即服务”,现在又有AI即服务、函数即服务,在一个业务流程里,人工的占比越来越少,机器的占比越来越多。

IT基础设施的数字化带来两个结果。一个是创新的技术成本会不断降低,另一是变更的节奏越来越快因而极端情况出现的几率也更高。比如以前把系统部署到所谓Datacenter Snowflake的传统机房可能要几个礼拜甚至月,然后到虚拟化/云化的分钟级,再到容器化的秒级,最终到Lambda(所谓无服务器)的毫秒级别的部署。商业节奏乃至整个世界的节奏只会越来越快。

在证券行业,基础设施数字化的程度是非常高的,去年2月份纽约时报的一个报道,说华尔街现在基本上已经是“机器人”在对战了。人声鼎沸、充斥穿着马甲的大声叫喊的交易员,可能是大家想象中的交易所,但现实里的交易所只是一堆堆冷冰冰的机器在交易而已。 

我们正在面对人类无法响应的环境变化。国际象棋大师对棋局危机(例如被将军)的判断反应是650ms,大多数人类活动中的类似反应也需要1000ms,但交易专用芯片(ix-eCute)交易处理是740ns (0.00074ms)、InfiniBand及其他网络技术网络延迟:<低个位数μs(百万分之一秒)级别。所以现在的IT环境里面出现了任何问题,就已经不是人力可以解决的了。

欢迎来到“极端斯坦” Extremistan - 《黑天鹅》作者塔勒布提出的一个比喻性的虚拟国度,在这个国度里,黑天鹅经常光顾的、传统概率思维不适用的、甚至其中的规则不受物理世界规律限制。

我们知道物理世界受很多物理规律左右,比如说人的身高不可能超过3米,你基本上不大可能像忽然碰到一只此前从来没出现过但真实存在的黑天鹅那样碰到一个3米巨人。但是在数字化的世界里却容易出现极端的情况。比如比尔盖茨的财富与一个身无分文的人相比,就是一个非常极端的情况,财富数字可以无穷大也可以归零甚至为负,它不受任何物理世界规律所左右。黑天鹅事件通常是稀有的,虽然往往“马后炮”事后可追溯但事前难预测,而且通常带来的影响都非常极端。

塔勒布在书里面有一个“感恩节的火鸡”的比喻——吃好住好的火鸡忽然有一天毫无迹象的被屠宰了,这在它此前的生命体验里从来没有过蛛丝马迹的“经验”可供“预测”。很多IT系统就是这么一只火鸡,有些古老而稳定的系统可能近十年都没有发生任何事情,但是有可能忽然间有一天就崩了。一个交易系统可能因为N年前假设了市场上的股票数量,结果某一天IPO出来几只新股票之后系统居然就崩了,这可能是过去很多年都没有发生过的事情,此前谁都没想过。

所以哪怕系统现在还没有崩溃,不等于它未来几年或者几个月就不会崩掉,套用一句说烂了的话“世上唯一不变的就是变化本身”,市场的变化、业务的变化、创新带来的各种变化、环境的变化等。这些变化永远快过IT系统本身的进化,数字化时代的高频变化,让IT组织尤其是金融IT都活在塔勒布的“极端斯坦”中。

在数字化世界里的金融IT,概率预测已经不再作准,只要发生一次黑天鹅,马上就可以让你“回老家”。但是按塔勒布的说法,“黑天鹅”也并不都是负面的,就像刚才一开始提到做各种各样“XaaS”(某某即服务),让业务创新的技术成本越来越低。

对于大部分传统行业来说,很多创新只有想不到的,可能还没有软件技术做不到的。做不到的原因通常只有一个:IT太“脆弱”,无法迅速响应与支持创新带来的良性变化。

“脆弱”不是“牢固”的反义词,在塔勒布的《反脆弱》这本书里面,“脆弱”其实是因为对市场、对外界环境的变化没有办法做及时的响应,世界变了你不变,突变带来崩溃。

但变化也是机会,塔勒布探讨了如何从不确定性中获益。现实中也有不少例子。举例而言,玻璃杯是一个脆弱系统,它百分之一百不被打烂的唯一保障就是不去挪动它变化它的位置,只要移动就有摔烂的可能。中世纪的城堡、ITIL的方法论,则可以说是“健壮系统”的例子 – 它们通过“加固”、“流程”、“制度”来延缓变更、保障自身,但它们无法在变化的环境中捕捉机会而只能防御。被禁毁的小说和电影,则往往生命力强大,据统计20世纪最受欢迎的100本书中有46本曾经被禁;同理,明星的负面新闻传播越迅猛其知名度越高——西方有句谚语“除了死人的讣告,没有坏的公关”,这些都是“反脆弱系统”的例子。技术领域最完美呈现“反脆弱性”的是BitTorrent,在这个技术体系下,越多人下载的的视频或文件,其下载体验越好、越高可用。

总体来讲,我们认为IT拥抱变化的时候,其利(Gain)可以大于弊(Pain),传统IT总体来说比较“恐惧”变更,或者说对变更是不能算友好的。发版越低频,越容易产生恶性循环:每次升级时都假设了测试不足有很多的bug,从而通过各种流程各种管控延长发版周期以维护稳定性,而这会积累更多的代码,更多代码则意味着更多的bug的可能性,让生产环境更不稳定,而运维的压力就越大,运维的被追责压力越大就越抗拒频繁变更,这就陷入一种恶性循环。

金融业IT,过去天然是不会拥抱变化积极升级的,因为频繁变更绝对能产生非常恶劣的问题,而我们都知道金融系统稳定性的重要。我们说这类IT组织是“脆弱”的,经不起“折腾”,不能“瞎折腾”。但是另一方面节奏日益加快的数字化世界(以数字化程度高的金融为最)又越来越不能容忍“慢腾腾”,怎么样才能又稳又快呢?这个问题可能是金融IT人最被折磨的问题。


IT脆弱性的来源

IT脆弱性的来源,我总结起来有几种:对“业务即代码”的认识偏差;自身内部信息不透明、不对称;流程陷入“XYZ Theater”(流程秀);方法论没有与时俱进;组织结构无法适应、亲近、拥抱变更等。

遇到一些CIO非常自豪地说,自己的系统有几百万行代码或者一千万代码,但是我一直不认为代码数量是值得自豪的。代码是什么?是企业航船上的财富还是阻碍航行的锚?如果按US GAAP(美国会计准则)企业创造的代码被认为是一种资产,但其实更多时候在现实里面,它只是镀了金的锚。

为什么叫镀了金的锚?这里有一个典故,GE曾经大量的把软件开发外包。外包开发商的商业模式决定他们希望工作量越大、写的代码越多越好,因为项目规模大收费高,故此咨询顾问们积极提出各种方案开发出各种繁复的代码,不断地帮企业开发各种不存在的场景或者过度工程,最后就形成一个庞然大物,看上去很厉害因为被外包商、咨询顾问们镀了一层金,但它其实是让企业无法快速航行的一个锚,虽然它镀了金。最后GE还是不得不削减外包,回归自主研发。

当积累了很多的历史包袱之后,IT可能慢慢就成为了一条“雷龙”,因为更多的代码也代表着更多的风险,代表着更多维护的成本。作为一个被业务部门问责的IT管理层,就像雷龙的小脑袋,通过长脖子漫长的反射弧把指令传达到四肢,整个躯体才能迟钝的反应作出行动。

第二个是信息不对称。特别是开发与运维之间的信息对不上,往往会令大家大吃一惊,结果就像刚才说的火鸡,就看谁做了接盘侠,这叫做“脆弱物品转移”或者叫“击鼓传花”。

第三个是形式主义。在美国有一个说法叫“Security Theater”,诟病911后一些公共场所的安检完全是表面文章,是安全秀,没有效用。大家进地铁站或者某些公共场所可能体验过,门口做安检非常马虎,这些安检全是流于形式,对于存心作恶的人可能没有任何作用,而它唯一的作用是让大家觉得非常不方便,所以就是为了防范少数的恶,以管理制度与流程增加绝大多数的“善”的不便,而真实效用甚微。在金融领域借用这个概念也有所谓的“Risk Management Theater”,即“风控秀”。此外还有“测试秀”——假装有一整套严密测试体系并且自己都信了,可是边边角角临界情况都没有覆盖,2012年著名的黑天鹅事件做市商Knight Capital在半小时内损失4亿美元,有美国架构师同行认为它可以算是自己“测试秀”的受害者。

这种形式主义的致命之处在于,机构往往错以为自己有了这些流于形式的流程就是安全的,最后的结果却只是延误问题的爆发或者堆积问题的规模,而且往往爆发出来的能量非常大。在金融业IT问题长期积累就能造成灾难。正如刚才说的,越漫长的升级发布周期、积累越多未经生产验证的新代码,理论上可以产生bug的概率更高。

第四个是传统IT方法论其实比较脱节,现在大部分的IT组织可能还是用七八十年代大型机向Client-Server转型时代的软件工程方法论,但是我们实际上已经处于2010年以来的移动互联网和物联网时代,方法论与时代完全脱节。七八十年代的IT对企业的商业支持也许是繁复的(complicated)但是同时也只是较为单一、选择性(selective)的,IT并未无处不在的覆盖整个企业与市场。随着时间的推移,IT对企业的商业支撑日益全局化(holistic)并且非常复杂(Complex)而不仅是“繁复”,技术与业务交织在一起,IT成为现代企业的“商业神经系统”(Business NervousSystem)。如果不升级你的IT方法论,完全无法适应今天的商业环境。

最后一个非常重要的要素是组织结构。以前和不少来访问我们的金融机构IT组织做交流,发现他们主要关注技术“取经”,例如如何用容器、怎么设计微服务、怎样建设证券大数据平台、在AI领域有什么杀手级应用等等,但是他们从来没有关注自己的组织能不能驾驭这些技术,从来不咨询一个金融科技的IT组织应该如何建立。

希腊化时代的军事组织用的是马其顿方阵,拿破仑时代大量使用炮兵,现在则中国都成立火箭军了,不同的武器要求相应的兵种相适应。在考虑用新技术的时候,首先得考虑一下组织形式、组织内自身的知识结构,能不能驾驭这些技术,组织是能否协同、组织层面的学习能力等,都是很多组织所忽略或者没有花心思研究的。相比个别技术,这才是更根本的问题。


后工业时代的IT组织

分享一张“浴缸”曲线图:把人类的最近一两百年分成三个时代,其中处于中间的叫泰勒工业时代,其命名来源于美国工程师泰勒(Frederick Winslow Taylor),他于1911年提出的解决大规模生产组织与管理的“科学管理”(ScientificManagement)理论;这个时代企业的核心竞争力体现在如何以更少的人更低成本生产更多的商品。我们现在所处的可以说是后工业时代或者是数字化时代,企业核心竞争力体现在快速响应市场变化以及个性化。泰勒工业时代的组织结构是典型的金字塔型 – 高管决定战略方向、中层领会与传递、基层按计划实施,现在大部分的IT还是泰勒型组织。

后工业时代有两种类型的组织 – 扁平化(或者说beta型)、去中心化(或者说cybernetic型)。现在可能不少新兴行业的企业(例如互联网公司)是扁平化的,利用现代的通讯管理工具,让企业高管层决策层更直接的去管理驱动基层,缩短反射弧,避免像雷龙的小脑袋一样指挥庞大笨拙的四肢;这种组织本质上还是中央集权、计划经济,但比泰勒型组织响应市场快速的多。

去中心化的组织,则是把整个企业构建成一个平台,企业的管理者更加像平台的守护者提供者,让各基层团队利用这个平台服务客户、发挥主观能动性、快速响应市场。当然,去中心化的组织并不一定适用于所有行业。在金融里面,如果把IT前置,与前端的业务团队融合在一起,是最能响应市场最能快速创新的;但另一方面会造成很多的信息孤岛,缺乏标准化、缺乏组织层面的研发的支撑、缺乏平台,也无法控制跨团队的技术标准。我们也许需要一个混合方案——一方面业务IT前置、另一方面平台IT控制标准和进行中央治理。

组织结构和技术架构是相辅相成的。我们把康威法则都讲烂了,但确实它就是非常重要,没有做过系统架构设计的IT管理者,不知道是否深刻体会:如果系统架构不支持,其实没法建立一个高效的组织结构,但如果没有一个相匹配的组织结构,其实也没有办法建立一个高效系统架构。所以作为架构师,我们永远都会关注组织与基础架构之间的这个关系。

IT的反脆弱型组织,是这个数字化时代里可能最能通过拥抱变化来协助企业快速创新、快速把握市场变化带来的机会的组织形态。技术界已经有一些这方面的研究,也有一些论文上提到的如何构建一个反脆弱组织,例如ACM Queue上可以看到一些关于Antifragile Organization的论文。

DevOps是反脆弱型组织的重要方法与工具。能掌握DevOps的组织需要是一个CAMS型组织:Communication(也有一说是Culture)- 沟通协同、开放的组织文化基因;Automation – 一句话,“能自动的绝不手工”;Measurement– 衡量一切、度量一切;Sharing – 信息透明、分享,消灭信息不对称。

具备CAMS要素的组织有助于抵御“黑天鹅”和形成“反脆弱性”。结合刚才提到的平台IT 为中心 + 业务IT前置,以证券领域为例我们也许可以尝试部分去中心化。IT“内核”由几个部分组成:信息不对称的问题或者信息透明化需要一个专门的团队去解决,叫做collaborativeengineering(协同工程),在一个足够大的企业里面完全值得有一个团队专门做这件事情;还有所谓的chaos Engineering(混沌工程,Netflix的理念),就是要像救火演练一样经常性的把人为变更加到IT系统里面,增强它的抗脆弱性,然后通过生产环境里面的破坏性测试或者是频发的迭代等各种手段,增强系统拥抱变更的能力;此外还有Platform Engineering(技术平台如中间件、基础设施)、IntuitiveEngineering(借用Netflix的概念)以最直观的技术方式分析、可视化、监控一切系统的技术与业务指标。在这四个专人专职团队组成的“内核”外,是直接对接业务线的“前置”IT研发团队,与业务团队融合,在第一线接触市场与客户,以最融合最高效的方式支撑业务创新。

从泰勒型组织到beta型组织到cybernetic型组织(包括我们的上述混合组织),有对应的技术架构(单体架构、多层架构、SOA、微服务),有不同的方法论(RUP、Agile、DevOps、ITIL、Reactive),组织结构、技术架构、IT方法论是密切相关的,微服务与去中心化的组织结构相互映射,Reactive的技术风格是微服务的特征属性,而DevOps则是这类组织维护和发展这类技术服务的必然手段。

无论何种方法何种技术风格,Netflix抽象出一个更根本的OODA(Observe-Orient-Decide-Act)闭环,这个理论原来是美国空军上校、战略家John Boyd提出并发展,在实战观察中总结的实时决策闭环。Netflix的实现包括四个环节:第一个是收集数据(Observe);第二通过大数据来进行各种各样的分析(Orient);第三个决策(Decide、ManagementBuy-in),可能是人工智能也可能是商业智能;第四是行动(Act)。这四部一定要形成一个决策的闭环。JohnBoyd并提出一个“能量机动性理论”(Energy-ManeuverabilityTheory),即空战中战机的取胜不取决于其绝对速度,而取决于其加减速、变更方向的机动能力。OODA闭环是这种能力的保障。我们如何建立组织结构以掌握相应的技术架构、设计技术架构以支撑相应的组织结构,从而促进OODA在IT的实现以获得机动能力,就是构建反脆弱组织、形成反脆弱技术基因的过程。

最后尝试总结一下传统IT跟反脆弱型IT的不同特征:

其中脆弱型的传统IT,通常陷入“流程秀”、基于规则主导的文化(企图让世界的变化例如新技术的出现来适应过时的规则)、通过“管控”来防范事故与坏行为、假设系统出现故障时人是制造问题的根源、制造信息不对称;反脆弱型的IT,则是强调信息透明的“反馈环”、强调基于原则主导的文化、通过信息透明化来防范事故与坏行为、接受“系统最终都会失败-因为世界变化快于系统演进”的事实并把人看成解决问题的依靠、监测一切度量一切。

你可以选择成为恐龙,也可以继续沿用90年代的IT方法论把自己变成了一头犀牛,犀牛虽然不会那么快就死掉,但是它的反应很慢、挪动迟缓,迟早成为活化石。现在有更多的互联网公司,采用用敏捷的方法和扁平化管理,让自己保持猎豹的迅速,但是这些可能都不是这个日益数字化的时代最有竞争力组织结构,如何打造一个反脆弱型组织,拥抱数字化时代特有的高频变化、不仅应对黑天鹅并从中获益壮大,也许是超越证券业IT而具有跨业共性的东西,值得大家一起探讨。谢谢!