未来已来,只是分布不均。
The future is already here, it’s just not evenly distributed.
---William Gibson ( 1948---)
01
1972年,斯坦福大学人工智能实验室的学生,通过ARPANET(Internet的前身)卖给了MIT麻省理工的学生一些大麻,这是通过网络达成的第一笔交易。
此时,未来已来,只是分布不均。
1995年4月3日,John Wainwright,面向对象编程的先驱者,也是ScriptX、MaxScript和Objects in C的作者,在一家刚刚上线的网站上买了一本书,这是Amazon在网上卖出的第一本书。
此时,对于Amazon来说,未来已来,只是分布不均。
在网上卖商品的未来已经来临,只是分布不均。在地理上,它只分布在美国;在人群上,它只是分布在技术专家;在商品上,它只是分布在书籍。
接下来二十多年,已来的未来冲向那些尚停留在现在的地域、人群和商品,把整个世界带入未来。
02
二十年前,1998年,我到处讲一套PPT,主题是Cisco的愿景:“Internet改变人们生活、工作、学习和娱乐的方式”,Amazon是其中一个案例,为了解多些,我还特意去Amazon上买了本书。
当时,假如有人告诉我,二十年后这家网上书店不仅卖书,会在网上卖几乎一切消费品,我多半会半信半疑。
当时,假如有人告诉我,二十年后它不仅会向个体消费者卖东西,还会把IT基础设施资源以服务能力的形式卖给企业客户,而且IBM、HP都会因此衰败,那我估计是怎么都不会相信的。
或许,我会自作聪明地说:“未来也许有可能,但二十年内还不可能。”
其实,未来已来,只是我没有看见。
03
Jeff Bezos看见了未来。
1994年,30岁的Jeff Bezos是华尔街上一个比同龄人成功但也还普通的投资经理,为寻找投资机会开始调研刚开始兴起的Internet,调研时他发现Internet的使用量正以每月2300%的速度飞升,Bezos立即意识到其中蕴含的巨大机会,他开始思考会有怎样的未来随之而来。
Bezos列出了可以在Internet上销售的商品的“Top 20”清单,他决定从低成本、高标准化的书籍开始,他立即不顾上司的挽留从华尔街辞职,筹集了父母的积蓄,创办了Amazon。
1995年4月3日,Amazon在网上卖出了他们的第一本书给John Wainwright。这只是开始。
John Wainweight在Amazon网站上买的第一本书
书,是“Top 20”清单上的第一项。
It's just begining.
04
我参加了刚刚结束的AWS re:Invent,几天议程里,Amazon陆陆续续发布了几十个新产品,总的产品列表已经有差不多两百项,在大会一眼望不到头的大屏上铺开来蔚为壮观,更不要说产品里面还包含众多的子产品和子服务,有的产品里面子服务也已经上百。
作为一个软件产品公司的负责人,整个过程中我一直在思考的问题就是,Amazon为什么要同时做这么多产品?他们怎么能同时做好这么多产品?为什么要做这么多产品?同时做这么多产品能做好吗?这需要怎样的能力才能做到?
05
Steve Yegge是一位著名的前Amazon前Google员工,他之所以著名,是因为两篇吐槽,尤其是2011年的第一篇。
当时Steve Yegge在Google工作六年多了,此前他在Amazon也干了六年多。那天晚上,他在Google (不知还有人记得这个产品吗?Google尸骨累累的产品墓地里最大个的之一)的“前Amazon员工组”里发一篇吐槽,但据说因为喝多了(天知道!),手抖发到了大群里,掀起轩然大波,直到最后Google创始人出面说不会因此开除他。Google还是nice的,他在Google又干了7年直到今年初才离开,离开时也没客气,又手抖了一篇吐槽,历数Google不再具有创新能力的四大罪状。
在2011年这篇吐槽里,Steve说在Amazon和Google各干了6年半,一想到两家公司的差异,第一印象就是“Amazon全干错,Google全干对”(Amazon does everything wrong, Google does everything right),Amazon待遇低,压力大,办公环境差,招聘标准混乱,从不给慈善事业和社区捐一分钱,代码也是一团糟,等等。
但是,注意,但是,Amazon有一件事干对了,干的比Google强。在2002年左右,Bezos发了一道圣旨。(Steve吐槽说,Bezos经常发圣旨,每当圣旨传到,人们就会像被锤击的蚁群开始仓皇行动)
圣旨如下:
1)所有团队今后都要通过服务接口提供数据和功能。
2)所有团队的通讯必须通过这些接口。
3)除服务接口外不得允许任何其它形式的通讯存在:不许直接链接,不许直接读库,不许共享内存,不许任何后门。唯一被允许的通讯就是通过网络的接口调用。
4)不管你用什么技术都必须如此。HTTP、Corba、Pubsub、定制协议,不管什么技术,都必须如此。Bezos才不在乎你用什么技术。
5)所有的服务接口,毫无例外,都必须设计为可以对外提供的,也就是说,必须被规划和设计成可以提供给Amazon之外的开发者使用的。没有例外。
6)任何不照此执行的人,开除。
7)Thank you, have a nice day!
Steve是个调皮的作者,复述完这7条后,他立即说:“哈哈,你们这150个Amazon老员工当然立即会发现第7条是我编的,Bezos才不管我们有没有nice day!”
接着他说,但第6条可不假,人们立马开始行动。Bezos分配了一批巨犬,在首席巨犬、前Walmart头号虐待官CIO Rick Dalzell的带领下监工,大块头的Rick是西点军校毕业的军官和拳击手,天天喊着“强化接口!强化接口!”,事实上他自己就像个会说会走的强化接口,每个人都只得拼命干出大进展来给Rick看到。在被解雇的工具下,付出几年巨大的痛苦,克服无数宣传SOA的书本上永远不会碰到的问题之后,技术团队在Amazon内部实现了真正的SOA(面向服务架构),并随后将这些服务接口陆续向外提供,成为了今天的AWS。
Steve Yegge随后写道:“我2005年中离开Amazon,他们还在努力之中,但已经做的相当不错了。从Bezos颁布圣旨到我离开,Amazon已经让整个公司完成了文化转型:用‘服务第一’(一切皆服务)的方式思考一切事情。现在这已经成为他们做所有设计的基础,包括那些可能永远不会对外提供的内部设计。“
06
Steve Yegge的吐槽很长,大家可以自己搜来看,对我来说,上面这一段是最重要的。它多多少少部分解释了Amazon为什么能把这么多产品做好。原因很多,这里我只说一条。
被逼出来的。
首先是被业务逼出来的,所有这些产品,最起码在起初,是Amazon自己内部使用的,这就逼着Amazon必须把产品做好,最起码要可用可靠。
但Amazon的系统要支撑庞大的电子商务百货商店和巨大的业务压力,按说要把系统做成能高度模块化拆解的众多标准化服务,几乎不可能。
这时候,就靠人来逼了,从Jeff Bezos的无情圣旨,到Rick Dalzell的愤怒吼叫,加上已经形成的苛刻严格的企业文化,无助的工程师们在威逼之下完成了不可能的任务。而在文化自由度较高的Google,要做到这点就非常困难了。(怎么让我想起前一段时间国内一篇著名吐槽文章里对阿里和腾讯的对比?)
因为所有的团队都要以标准化的方式向其他团队提供服务接口,意味着每个团队都有明确的客户,而且Amazon的业务需求使得客户对产品的可用性要求很高,来自客户的不间断运行的业务需求压力和巨大的管理和文化压力,逼出了AWS上众多的产品级的云服务。
07
Jeff Bezos为什么要颁布圣旨?AWS又为什么要不断地推出众多新的云服务产品,甚至其中有些已经是Amazon自己内部并不会使用的产品?
有几条线索和逻辑在共同起作用。
Jeff Bezos的圣旨,很可能发端于一次Amazon的内部读书会。作为书店起家的巨头,Jeff Bezos最大的个人爱好是阅读,他也将此发展成了企业文化中的重要一环,高管层会定期进行集体参与的读书会。
某次读书会,讨论的是《Creation》,此时Amazon管理层正饱受IT系统建设和运维之苦,在讨论时书中提到的Primitives(原件、基本体)概念给了大家启发,开始思考如何将IT系统结构成一个个基本的服务单元。讨论最终催生了Jeff Bezos的圣旨,并在强执行力的文化驱动下,开启了AWS的云服务大门。
08
除了《Creation》的Primitives概念的启发,我觉得Bezos已经看到了把这些基本IT服务单元当作商品向外出售的未来。大家注意圣旨的第5条:
5)所有的服务接口,毫无例外,都必须设计为可以对外提供的,也就是说,必须被规划和设计成可以提供给Amazon之外的开发者使用的。没有例外。
Bezos很明确地提出了服务接口要设计为可以对外提供的,作为在1994年就拉出可以在网上卖的商品清单的前瞻者,当时他一定已经看见了已来的未来不仅要蔓延到书籍以外的各种消费品上,也会蔓延到企业使用的IT服务上,而全球网络基础设施的日渐成熟和业务系统向互联网的迁移,已经为未来的流淌铺好了河道。
未来已来,只是分布不均。
09
AWS的云服务产品清单越来越长,他们已经在把所有现在存在的IT产品都搬到云上,转化为云服务的产品形态,不管是不是他们自己内部使用的,只要客户需要,他们就做。
而云服务的产品形态给他们带来传统产品模式无法比拟的在迭代、控制、效率上的优势,从而创造了惊人的产品推进速度,不仅仅是基础设施,不仅仅是虚机、容器,不仅仅是存储、网络,包括几乎所有类型的数据库服务,中间件服务,数据分析服务,机器学习服务,IoT服务,各种开发环境和开发工具,几乎覆盖到所有你能想到在服务端需要的,如Andy Jassy在re:Invent主题演讲上引用的歌词:“I Want it all, I want it now!”
Andy Jassy微笑着说:“ We give you all, we give you now!”
10
听到这句话时,忽然有点儿明白,AWS并不是在做那么多产品,他们只是在做一个巨大的产品。
AWS,其实是All World Server,或者说,A World Server。
AWS的未来,就是全世界只有一台大服务器,它的名字是A World Server,缩写为AWS。
AWS主页上长长的产品目录,其实是这个服务器的BOM单(Bill-Of-Materials),那众多的云服务产品,于这台大服务器而言,相当iPhone里各种零部件、软硬件组件、驱动程序和操作系统之于iPhone的关系。
AWS之野望,就是成为那台唯一存在的大服务器,不仅是服务器,还是唯一存在的操作系统,唯一存在的数据库,唯一存在的中间件,唯一存在的开发工具,有一天,所有的写服务端程序的开发者只需要写写业务逻辑,放在他们的MarketPlace上对外提供就好了。
AWS做的,是一台服务器,所以它即使提供私有云方案,也一定是要联到它的云上的混合云,对它来说,那只不过是放在你自己机房里的一个分布式板卡而已。
与此同时,前端开发者们正在把他们的程序放在Apple的App Store上,或者Alphabet的Anroid Market上。
(有趣的是,Amazon的AWS要占据B的服务端,Apple的iOS和Alphabet的Android要占据C的终端,他们都是A字打头的。在Andy Jassy展示的云市场占有率的PPT上,排在超过一半占有率的AWS后面的两朵云,也是A字打头的。5A。)
11
史上最强的科幻小说作家之一阿西莫夫,1956年某天,被一个念头击中,一气呵成写出了他自己最喜欢的短篇小说,也是我最喜欢的科幻短篇,《最后的问题》。
小说的主角,是一台为全人类服务的,可以解决全人类计算需求的巨大的、唯一的服务器,并在2061年将人类带进新的光明时代。
也是在2061年,它第一次听到两个运维工程师向它问出了最后的问题,那个它一直为之努力到宇宙终结的问题。
它的名字,叫AC,也是A字打头。
当AC真的要来时,我是该欣喜,还是该恐惧?
12
未来已来,只是分布不均。
我们或者可以努力把已来的未来带给还停留在今天的人们,或者可以平静地等待被远处奔袭而来的未来吞没。
或者,我们可以创造崭新的、自己希望的未来。
Your Choice.