亚马逊如何变成 SOA(面向服务的架构)?

上一篇文章,我摘录了《程序员的呐喊》。这本书有趣的内容太多,今天再摘录一段。

1、

亚马逊公司不仅是世界最大的网络书店,还是世界最大的云服务商。它是怎么实现从电商到云商的转变呢?

一切都是CEO杰夫·贝索斯促成的,他对市场有着超乎常人的理解和预见。

2、

2000年前后,贝索斯有一次在员工大会上提到,各种办公工具、书籍、影音制品都可以数字化,所以也意味着很容易盗版。数字产品可能会利润越来越低,很快就不再产生任何收入了。

所有的民用工业品也都很不妙,服装和电子消费品的消费周期越来越短。连烤炉这种东西,也没人想要去年的型号。总之,卖这些东西,看上去也不太会赚大钱。

亚马逊未来靠什么赚钱,贝索斯不仅忧心忡忡。

3、

2002年,贝索斯突然向全公司发布了一道指令。

(1)从今天起,所有的团队都要以服务接口的方式,提供数据和各种功能。 (2)团队之间必须通过接口来通信。 (3)不允许任何其他形式的互操作:不允许直接链接,不允许直接读其他团队的数据,不允许共享内存,不允许任何形式的后门。唯一许可的通信方式,就是通过网络调用服务。 (4)具体的实现技术不做规定,HTTP、Corba、PubSub、自定义协议皆可。 (5)所有的服务接口,必须从一开始就以可以公开作为设计导向,没有例外。这就是说,在设计接口的时候,就默认这个接口可以对外部人员开放,没有讨价还价的余地。 (6)不遵守上面规定,就开除。

他意识到,亚马逊现有的卖书送书的基础设施,其实可以变成一个非常出色、可定制的计算平台,让用户付费使用。但是前提是,整个基础设施必须改造成面向服务的架构。

4.

接下来的几年里,亚马逊全公司都转向了面向服务的架构(SOA)。这个过程中,工程师们得到了大量的经验教训。

教训一:SOA架构的错误定位,非常麻烦。

一个请求可能要经过20次服务器调用,才能找到问题的真正所在。通常,单单是问题的定位就要花费15分钟到几个小时,除非搭建大量的外围监控和报警措施。

教训二:同事也是潜在的 DOS 攻击者。

公司内部某个小组,会突然对你的服务发起大量请求。除非每个服务都设有严格的用量和限量措施,否则根本无法保证可用性。

教训三:监控和质量保障(QA)是两回事。

监控一个服务的时候,可能会得到"一切正常"的回复。但是很有可能,整个服务唯一还正常工作的部分,就是这个回应"一切正常"的模块。只有完整地调用服务,才能确定服务是正常的。

这意味着,真正监控一个服务,必须做到对所有的服务和数据进行完整的语意检查,否则是看不出问题的。如果做到了这一点,本质上就是在做自动化 QA 了。

教训四:必须有服务发现机制。

面对成百上千的服务时,没有服务发现机制是不可想象的。这又离不开服务注册机制,而它本身也是一个服务。亚马逊有一套统一的服务注册机制,可以通过编程的方式找到所有服务,包括一个服务有哪些API,目前是不是运行正常,在什么位置等。

教训五:必须有沙箱用来调试

如果代码中调用了他人服务,查找问题的难度要高很多,除非有统一的方式在沙箱里运行所有服务,否则几乎不可能进行任何调试。

教训六:不能信任任何人

团队采用服务的方式进行合作以后,基本上就不能信任其他团队了,正如不能信任第三方工程师一样。

(完)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯数据中心

腾讯数据中心基础设备质量检测之电池巡检仪篇

上一篇《腾讯数据中心基础设备质量检测之电流传感器、智能电表篇》成功推送10000+粉丝,截至小编发稿已有260人次的转发+收藏,同时评论区也热闹非凡。小编截取部...

3287
来自专栏顶级程序员

英特尔 CPU 惊天漏洞事件完全详解

简要版: 昨天媒体报道英特尔处理器芯片出现一个底层设计漏洞,主要存在于 Intel x86-64 硬件中,过去十年中生产的现代英特尔处理器都会受影响。漏洞导致...

45811
来自专栏腾讯云数据库(TencentDB)

TDSQL架构及运营介绍

作者介绍:李瑞,高级DBA,拥有丰富的数据库运维运营经验,现负责腾讯云分布式数据库运营相关工作,对数据库的高一致性、高可靠、分布式架构等有深入理解,擅长MySQ...

6159
来自专栏企鹅号快讯

计算机网络的功能与组成

【本章导学】 通过本章的学习,我们希望你能够: 复述计算机网络的组成和作用; 简述计算机网络的分类方法和类型。 ? 本章你需要学习4个知识点,其中标的为本章核心...

3096
来自专栏黑白安全

T-Mobile网站的又曝漏洞:任何人只需一个电话号码就可以访问客户信息

T-Mobile客户:您的数据又一次遭到了威胁。这一次的罪魁祸首似乎是一个名为“copypasta”的bug,一位安全研究人员最近在T-Mobile的网站上公开...

1002
来自专栏hotqin888的专栏

双轨制奖金分配系统,兼顾技术人员老龄化问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

704
来自专栏腾讯大讲堂的专栏

解密Midas、Webank、金融云背后的核心数据库TDSQL【海量服务之道2.0】

如果,你在寻找一款数据库,希望: •在任何情况下,数据都不丢失或错乱; •能7*24小时不间断的对外提供服务,即使故障也不会中断; •能支撑业务量10倍以上的弹...

3109
来自专栏FreeBuf

安全招聘中,如何招到优秀的Web渗透测试人员?

越来越多的企业招聘安全人员,然而安全人员大多草根出身,可谓鱼龙混杂。作为企业,你就必须要知道如何才能招到最优秀的Web渗透人员,而不是“职业骗子”。本文罗列了一...

3246
来自专栏黑白安全

与朝鲜有关的黑客使用谷歌Play商店中的恶意软件追踪脱北者

据外媒Techspot报道, 谷歌Play商店此前曾出现一些看似合法却包含恶意软件的的应用程序并不陌生,但McAfee的研究人员发现了一些与以前不同的内容:针对...

882
来自专栏腾讯Bugly的专栏

鹅厂揭秘——高端大气的App电量测试

如何评价我们开发出来的应用是耗电还是不耗电,如何测试?这就是我们今天讨论的主题——电量测试,一个在移动应用中新出现的测试类型。 作者简介 ? 袁建发 腾讯智能...

4074

扫码关注云+社区

领取腾讯云代金券