早在2006年,事务处理的开山鼻祖,数据库领域图领奖得主Jim Gray与Werner Vogels 进行了“第一次”对话。对话的主题是“向亚马逊技术平台学习”,而吊诡之处在于,Jim Gray所开创的事务处理是亚马逊电子商务的技术基础。
墨脱ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
最近,Akamai董事Tom Killalea与亚马逊CTO Werner Vogels 进行了一场“第二次”对话。对话的主题是大规模简单存储系统S3的进化设计。而吊诡之处在于,而就在一个月前,一个可以对标S3的最大区块链存储项目Filecoin刚刚升空。
“我认为重要的是要首先意识到亚马逊是一家技术公司”,在“第一次”对话中,Werner Vogels 反复对Jim Gray解释称,亚马逊不应该仅仅被视为一家在线书店,而应该被视为一家科技公司。并且,就是在这次谈话中,亚马逊首次公开了S3,一个简单存储服务。
“Amazon.Com Books”,这个名字并不能反映我们的雄心壮志。Tom Killalea说到。当Tom Killalea在1998年加入亚马逊时(Tom Killalea于2018年3月加入Akamai,担任董事),该公司只是一个销售书籍的网站:一个简单C应用Obidos,一个部署在Berkeley DBs上的键值存储,一个命名为“ACB”的关系数据库(代指“Amazon.Com Books”),这些应用部署在5台服务器上。
不断扩大的客户和订单,让亚马逊放弃了单体架构,走向去中心化的服务化架构。当Jim Gray问及亚马逊最大的经验教训时,Werner Vogels 说道:
“如果不把技术用于服务客户的更大利益上,技术就毫无用处。我们是一家强烈以客户为导向的公司,我们经常使用“从客户逆向工作”的方法。这意味着,在你的思考过程中,从客户开始,然后逆向工作,直到找到满足新客户需求所需的简单而最小的技术。重要的是,来到亚马逊工作的工程师要明白,我们不是为了技术而开发技术,而是为了支持客户。”
“面向服务的架构,我们的扩展方式,我们服务客户的方式——我认为我们最大的成功是亚马逊已经成为一个其他企业可以从中受益的平台。”
通过技术和业务的服务化,亚马逊与用户构建了一个快速反馈周期,进入一个飞速增长的飞轮之中。
2006年3月启动S3时,S3只有8项服务。到2019年,S3已达到262种服务。在与Tom Killalea的谈话中,Werner Vogels 说道:“我完全同意这是空前的规模。即使在今天,即使现在的互联网服务已经达到了令人难以置信的规模,我认为S3仍然比它领先两到三代。”
在2006年的S3发布公告中,亚马逊采用了以下分布式系统设计十大原则来满足Amazon S3的需求:
上面的十个原则,是亚马逊构建大规模分布式系统的方式。S3只是这些设计原则的例子。
原则是灰色的,而客户的需求常青。在上面的原则基础之上,Werner Vogels提出了演化架构。
当时,大多数科技公司提供所有东西和“平台”,他们会提供一本很厚的书和10个不同的合作伙伴,然后告诉客户如何使用技术。而亚马逊没有将自己锁定在自己的技术中,走上了另外一条道路。杰夫.贝佐斯多年前曾说过,那就是构建工具,而不是构建平台,平台是大型软件平台公司提供技术服务的老方式。
“在我们开始S3之前,我们开始意识到我们所做的可能会从根本上改变软件构建和服务使用的方式。但我们不知道这将如何发展,所以更重要的是构建小型、灵活的工具,让客户可以在其上构建(或者我们可以在自己的基础上构建),而不是在某个特定时刻准备好所有东西和“平台”。这不是时间问题,更重要的是,我们坚信,无论我们向S3的接口添加什么,向S3的功能添加什么,都应该由我们的客户驱动——以及下一代客户将如何开始构建他们的系统。”
“在过去的五到十年里,软件发生了根本性的变化。我们需要构建正确的工具,以支持发生根本性变化的速度。这样,你就无法预测,你必须与你的客户一起工作,等待他们如何使用你的工具——特别是如果这些工具是以前从未构建过的——并观察他们做了什么。然后我们坐下来问自己,最小集合是什么。”
“你必须有意识地小心设计API。API是长远的。一旦你把API放在那里,也许你可以提供新版本,但你不能把它从你的客户那里拿走。在API设计中保持保守和最小化可以帮助你构建基本工具,你可以在这些工具上添加更多的功能,或者合作伙伴可以在其之上构建新的层次,或者你可以将不同的构建块组合在一起。这就是我们从一开始的理念:做到极简主义,这样我们就可以让我们的客户来推动将要发生的事情,而不是我们坐在后面的房间里思考:这个世界应该是什么样子。”
这些设计决策在亚马逊的数据湖中得到了体现。基于构建块和工具,S3的作用远远超过了数据湖:围绕着数据库,S3提供了庞大的工具箱(175种不同的服务)。
在访谈中,S3的设计决策还包括:
不要将自己锁定在自己的架构中。Werner Vogels 在回顾S3的设计原则时候,这样说道。一个有效的复杂系统总是从一个有效的简单系统演化而来。一个从零开始设计的复杂系统永远不会工作,也不能通过修补使其工作。你必须从一个简单可行的系统开始。
也许读者不需要去阅读两篇访谈的原文,但需要记住和思考的是本文总结的几点:服务意识、分布式系统设计十大原则、构建工具而不是平台、不要将自己锁定在自己的架构中。
【本文是专栏作者石头的原创文章,转载请通过作者微信公众号补天遗石(butianys)获取授权】
当前题目:不要将自己锁定在自己的架构中
当前网址:http://www.shufengxianlan.com/qtweb/news38/281238.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联