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

阮一峰

日期: 2016年9月10日

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

1、

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

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

2、

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

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

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

3、

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

(1)从今天起,所有的团队都要以服务接口的方式,提供数据和各种功能。

(2)团队之间必须通过接口来通信。

(3)不允许任何其他形式的互操作:不允许直接链接,不允许直接读其他团队的数据,不允许共享内存,不允许任何形式的后门。唯一许可的通信方式,就是通过网络调用服务。

(4)具体的实现技术不做规定,HTTP、Corba、PubSub、自定义协议皆可。

(5)所有的服务接口,必须从一开始就以可以公开作为设计导向,没有例外。这就是说,在设计接口的时候,就默认这个接口可以对外部人员开放,没有讨价还价的余地。

(6)不遵守上面规定,就开除。

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

4.

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

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

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

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

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

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

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

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

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

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

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

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

教训六:不能信任任何人

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

(完)

时间: 2024-08-04 14:42:52

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

想说爱你不容易---微软/亚马逊/阿里云免费云服务大比拼

在我小的时候,有首歌唱起来朗朗上口: "你是那昨天的云 还是今天淋漓的雨 在告别初恋的爱人 还唱着曾经热恋的歌 在人潮汹涌的都市 寻找内心完美的自我 你是不是 有些在意哦 想说爱你并不是很容易的事 那需要太多的勇气 想说忘记你也不是很容易的事 我只有矗立在风中 想你" 演唱者王志文现在都已经能在电视剧里面演爷爷辈的角色了,时光飞逝,今天的云已经不是昨天的云,而今天的云也不再是高高在上的云,所有的云必须都要落地,要服务于百姓,才是我们的基本纲领. 而就国内商业级别的公有云服务商而言,无外

亚马逊海卖助手停止服务 稳住别方 还有这款亚马逊卖家助手

亚马逊官方在2018年8月8日宣布,将于9月28日停止亚马逊海卖助手的相关服务,消息一经推出,另很多亚马逊卖家感到心凉,毕竟用了这么久,而且还是亚马逊官方工具,相较第三方软件而言,安全方面比较有保障,目前尚不知晓亚马逊这一举措的意图.揣测可能是由于免费的原因,无法给亚马逊带来盈利,当然,事实真相到底如何我们不得而知. 不可否认,亚马逊海卖助手的一些功能确实能帮助亚马逊卖家更好的运营管理,而且这项服务是亚马逊官方推出的,无需担心账号安全问题,目前市面上第三方软件的质量参差不齐,甚至有些无良服务商盗

SOA 面向服务的架构

定义 面向服务的架构(SOA,Service-Oriented Architecture)是一个组件“模式” (或 “思想”,它不是一种“技术”),它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言.这使得构件在各种各样的系统中的服务可以以一种统一和通用的方式进行交互. SOA vs Web服务 在理解SOA和Web服务的关系上,经常发生混淆.根据2003年4月的Gar

SOA面向服务的架构理解

?  单一应用架构 ·当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本. ?  垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率. ?  分布式服务架构 ·当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求. ?  流动计算架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问

阿里巴巴和亚马逊的云战争

虎嗅注:云计算在阿里财报中的地位逐渐提升,已经成为阿里巴巴继淘宝.天猫之后最重要的一极,但它在这一领域的竞争对手实在太多,<财经>给它锚定了一个海外强大的竞争对手亚马逊AWS,这一定程度上抬高了阿里云的身价,却又看上去合情合理,毕竟阿里云目前的估值已经达到了390亿美元.那如何讲述二者的故事呢?本文是<财经>杂志的封面文章,载于微信公众号“财经十一人”,原标题为<阿里和亚马逊的云战争>. 谢丽容 梁辰 |文 马克 |编辑 十年前,无论在美国.欧洲还是中国,无论是大公司还

亚马逊——不一样的电商公司

其一: 电商公司就是电子商务公司.电子商务通俗的说就是利用电子工具进行各种商务活动,如网上购物.在线电子支付等.可以说电子商务是传统商业活动的电子化和网络化.离我们最近的就是网购了,通常我们会在淘宝.天猫.聚美优品.亚马逊等购物平台上购买东西,他们已然成为了我们生活的一部分.但我们不曾留意,他们分别代表着不同的电商公司,拥有不同的理念与策略.下面我们将通过与淘宝的对比,谈一下与众不同的电商公司亚马逊公司. 亚马逊公司,是美国最大的一家网络电子商务公司,于2004年进入中国.再他的发展史上有三次定

谷歌云微软云亚马逊云对比

谷歌云 数据中心网络 据市场研究公司Gartner称,云计算是个200亿美元的市场,并且明年将会再增长35%.Google在这个日益增长的领域排名前三位.为了提升在云计算市场的地位,Google将大规模扩充其数据中心网络,用技术迎接挑战,这符合Google的传统. 当前Google有4个数据中心,但许多国家的监管机构要求本国公民的数据不能离开本国.通过建设更多的数据中心,Google能够在遵守当地法律的前提下,更快地向更多企业提供服务.而亚马逊当前有12个数据中心,并且计划再建5个. 未来几个月

亚马逊AWS“潜行”中国

遇到一些亚马逊AWS的潜在竞争对手,他们常说或常问的是:"亚马逊AWS还没有落地中国?"其实,亚马逊AWS从去年宣布进入中国后,已经开始了对中国客户的服务.不过,亚马逊AWS一直在中国采用的还是有限预览的方式,即亚马逊AWS主动邀请一些潜在的客户来使用亚马逊AWS的云计算.大数据服务.可能正因为如此,在很多人的印象中,亚马逊AWS并没有在中国落地. 另外一点,亚马逊AWS宣布进入中国时,也表示将与西部云基地合作.而西部云建地的数据中心一期最早可能要明年四五月才能完成基建任务.所以,运行

亚马逊危险了!面临创业公司和科技巨头的颠覆

由于四面树敌,亚马逊的疯狂扩张战略似乎蕴含着巨大风险. 光是过去 9 个月,这家靠网上卖书起家的电子商务巨头,就凭借着流媒体电视机顶盒.Fire Phone 智能手机和 Local Register 支付服务,挺进了三大硬件领域.亚马逊还发布了本地化服务集市.不限数量的电子书订阅服务.Pantry 杂货配送服务(及其配套的条形码扫描仪),以及一款流媒体音乐服务.它同时还在尝试无人机送货,并向自制剧领域投入了数百万美元. 不仅如此,它旗下还拥有 Zappos.Diapers.com 和 IMDB—