10月21日,杭州云栖大会-技术&可持续发展论坛,注册有礼 了解详情
写点什么

AWS 之野望:All World Server

2020 年 4 月 19 日

AWS之野望:All World Server

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


未来已来,只是分布不均。


我们或者可以努力把已来的未来带给还停留在今天的人们,或者可以平静地等待被远处奔袭而来的未来吞没。


或者,我们可以创造崭新的、自己希望的未来。


本文转载自成哥的世界公众号。


原文链接:https://mp.weixin.qq.com/s/9yODyJpAOuEx2fTFbg13hw


2020 年 4 月 19 日 17:17252

评论

发布
暂无评论
发现更多内容

Linux开发coredump文件分析实战分享

良知犹存

Linux

敬畏用户

FunTester

软件测试 测试 用户 FunTester 用户思维

数据库优化之explain 的使用和常用的SQL优化或索引优化

Regan Yue

数据库 数据库优化 10月日更 10 月日更 Regan Yue

如何进行用户故事估算——Ethan分享观后感

Bruce Talk

敏捷 随笔 Agile User Story Product Owner

阿里云云计算助理工程师认证(ACA)50个资源合集和备考题库 易筋 ARTS 打卡 Week 72

John(易筋)

ARTS 打卡计划

v05.05 鸿蒙内核源码分析(任务管理) | 任务池是如何管理的 | 百篇博客分析 HarmonyOS 源码

鸿蒙内核源码分析

HarmonyOS OpenHarmony 鸿蒙系统 鸿蒙OS 任务队列

校友录小程序开发笔记三十一:校庆模块设计与实现

CC同学

模块九作业

河马先生

架构实战营

大神Jeff Dean相关的一些项目

闲云野鹤

SpringBoot 实战:优雅的使用枚举参数(原理篇)

看山

Spring Boot 10月日更 EffectiveJava Effective Spring

风雨兼程,零代码训练营第四期顺利结业

明道云

stm32-HAL使用stop模式后DMA初始化的问题

良知犹存

stm32

一文带你盘点“微服务”中的技术点

Simon郎

微服务 Spring Cloud spring cloud alibaba java

【SpringCloud技术专题】「Hystrix源码」分析故障切换的运作流程

李浩宇/Alex

源码分析 SpringCloud Hystrix 熔断器 10月日更

5款良心工具,专治各种流氓顽固软件!

Jackpop

模块九毕业设计

以吻封笺

模块九作业:设计电商秒杀系统

Felix

【LeetCode】合并两个有序链表Java题解

HQ数字卡

算法 LeetCode 10月日更

产品经理技能手册

俞凡

产品经理 产品管理 认知

小程序中如何显示Markdown文本

Changing Lin

10月日更

别被vector最后一个元素erase错误

良知犹存

c++

业务中台数据一致性方案

慕枫技术笔记

后端 引航计划

技术公众号小白互助网络

Felix

GitHub 微信公众号 自媒体

k8s replicaset controller分析(1)-初始化与启动分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

产品经理职业发展框架

俞凡

产品经理 产品管理 认知

iOS开发独家秘籍-代码块Code Snippets

iOSer

ios 代码 ios开发

stm32-HAL使用usart发送中断判断发送标志库问题

良知犹存

stm32

012云原生之微服务

穿过生命散发芬芳

云原生 10月日更

马拉车算法,其实并不难!!!

秦怀杂货店

数据结构 算法 LeetCode

模块9

脉动

在开源项目或工作项目中使用git建立fork仓库

良知犹存

git

数据cool谈(第1期)数据库寻路,开源有态度

数据cool谈(第1期)数据库寻路,开源有态度

AWS之野望:All World Server-InfoQ