【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

AWS 之野望:All World Server

  • 2020-04-19
  • 本文字数:4594 字

    阅读完需:约 15 分钟

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-04-19 17:17592

评论

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

你问我答:容器平台改造后的安全是如何解决的?

BoCloud博云

云计算 容器 微服务 PaaS 博云

实战解读丨Linux下实现高并发socket最大连接数的配置方法

华为云开发者联盟

Linux TCP socket 高并发

一个银行客户经理的“变形记”

华为云开发者联盟

人工智能 金融科技

oeasy教您玩转linux010206 蒸汽机车 sl

o

LeetCode题解:239. 滑动窗口最大值,单调队列,JavaScript,详细注释

Lee Chen

大前端 LeetCode

给DevOps加点料——融入安全性的DevSecOps

禅道项目管理

DevOps 运维 测试 开发 安全性

又踩Maven的两个坑

xiaoboey

maven Unknown lifecycle phase settings.xml 无效 PowerShell

阿里巴巴发布国内首个公益区块链标准 用技术让公益公开透明

CECBC

区块链 公益

Docker私有化部署gitlab gitlab-runner

Leon

gitlab 持续集成 runner

[翻译] Go Concurrency Patterns: Pipelines and cancellation[Go并发模式]

卓丁

channel pipeline

架构师训练营第十三周总结

张明森

ARTS打卡 第15周

引花眠

微服务 ARTS 打卡计划

握草,你竟然在代码里下毒!

小傅哥

Java 程序员 小傅哥 bug 有毒代码

不支持原子性的 Redis 事务也叫事务吗?

大头星

Java redis 事务

翻转链表,机器学习视觉训练,对数据的人工标注,使信息丢失,John 易筋 ARTS 打卡 Week 16

John(易筋)

大数据 学习 ARTS 打卡计划 翻转链表 Google论文评判人工预处理

Redis 数据同步机制--主从模式

是老郭啊

redis 主从配置 主从同步 redis主从 主从复制

云图说 | 一分钟带你扫盲云容器黑话

华为云开发者联盟

容器 节点 集群

浅析LR.Net工作流引擎

Philips

敏捷开发 工作流 软件开发流程 开发工具

3. 站在使用层面,Bean Validation这些标准接口你需要烂熟于胸

YourBatman

Hibernate-Validator Bean Validation 数据校验

读后感之《任正非:以客户为中心》

王新涵

Golang Package sync 透析

卓丁

sync Go 语言

大数据管理:构建数据自己的“独门独院”

华为云开发者联盟

大数据 数据湖

Go: gops如何与Go运行时交互?

陈思敏捷

gops Go 语言

Spring 5 中文解析测试篇-Spring测试

青年IT男

Spring5 JUnit

有奖征文重磅来袭,来!一起玩把大的!

有只小耳朵

从湖南“软硬兼施”,管窥三湘水畔的智能浪潮

脑极体

程序的机器级表示-数组的分配和访问

引花眠

计算机基础

学习 Java,有什么书籍推荐?学习的方法和过程是怎样的?

沉默王二

Java 学习 程序员 书单

用 Python 实现一个简易版的 Pong 游戏 (一)

Matrix Chan

Python Turtle Python游戏

为什么企业自主开发软件时,都会使用统一的模块化框架式开发平台?

Learun

敏捷开发 程序设计 开发工具 软件设计 技术方案

用函数式写法精简Java代码的一个例子

Sean

Java 函数式编程

AWS之野望:All World Server_文化 & 方法_成哥的世界_InfoQ精选文章